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 FormConstructor 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, root
copy, exprString, position, throwTypes, verify
public 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 AccessPath
public boolean isNeverNull()
isNeverNull
in class AccessPath
public boolean isUninterpreted()
isUninterpreted
in class AccessPathRoot
public AccessPath subst(AccessPathRoot r, AccessPath e)
AccessPath
subst
in class AccessPath
public java.lang.String toString()
toString
in class java.lang.Object
public boolean equals(java.lang.Object o)
equals
in class AccessPath
public int hashCode()
hashCode
in class AccessPath
public polyglot.types.Type type()
AccessPath
type
in class AccessPath