public class AccessPathUninterpreted extends AccessPathRoot
class C {
final label{} lb;
int{*this.lb} f;
...
}
and the field access
bar().f;
where bar is a method that returns an object of class C, the type system
needs to allow the field access even though access path "bar()" is not final.
This is achieved through the use of AccessPathUninterpreted, so that the
label of the field access bar().f is "{* <>.lb}", where <>is a
AccessPathUninterpreted.AccessPath,
JifInstantiator,
Serialized Form| Constructor and Description |
|---|
AccessPathUninterpreted(polyglot.ast.Expr expr,
polyglot.util.Position pos) |
AccessPathUninterpreted(java.lang.String expr,
polyglot.util.Position pos) |
AccessPathUninterpreted(java.lang.String expr,
polyglot.util.Position pos,
boolean allowSubst) |
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(java.lang.Object o) |
int |
hashCode() |
boolean |
isCanonical() |
boolean |
isNeverNull() |
boolean |
isUninterpreted() |
AccessPath |
subst(AccessPathRoot r,
AccessPath e)
Return the result of substituting the root r with the access path
e.
|
java.lang.String |
toString() |
polyglot.types.Type |
type()
The type of the access path (when the access path is regarded
as an expression).
|
equivalentTo, labelcheck, rootcopy, exprString, position, throwTypes, verifypublic AccessPathUninterpreted(polyglot.ast.Expr expr,
polyglot.util.Position pos)
public AccessPathUninterpreted(java.lang.String expr,
polyglot.util.Position pos)
public AccessPathUninterpreted(java.lang.String expr,
polyglot.util.Position pos,
boolean allowSubst)
public boolean isCanonical()
isCanonical in class AccessPathpublic boolean isNeverNull()
isNeverNull in class AccessPathpublic boolean isUninterpreted()
isUninterpreted in class AccessPathRootpublic AccessPath subst(AccessPathRoot r, AccessPath e)
AccessPathsubst in class AccessPathpublic java.lang.String toString()
toString in class java.lang.Objectpublic boolean equals(java.lang.Object o)
equals in class AccessPathpublic int hashCode()
hashCode in class AccessPathpublic polyglot.types.Type type()
AccessPathtype in class AccessPath