jif.types.label
Class ThisLabel_c
java.lang.Object
polyglot.types.TypeObject_c
jif.types.label.Label_c
jif.types.label.ThisLabel_c
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Label, ThisLabel, Param, polyglot.types.TypeObject, polyglot.util.Copy
public class ThisLabel_c
- extends Label_c
- implements ThisLabel
- See Also:
- Serialized Form
| Fields inherited from class polyglot.types.TypeObject_c |
position, ts |
| Methods inherited from class jif.types.label.Label_c |
componentString, confProjection, copy, description, hasVariableComponents, hasVariables, hasWritersToReaders, integProjection, isBottom, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, simplifyImpl, subst, throwTypes, toJava, toString, toString, variableComponents |
| Methods inherited from class polyglot.types.TypeObject_c |
equals, position, typeSystem |
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface jif.types.label.Label |
componentString, confProjection, description, hasVariableComponents, hasVariables, hasWritersToReaders, integProjection, isBottom, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, subst, throwTypes, toJava, toString, variableComponents |
| Methods inherited from interface polyglot.types.TypeObject |
position, typeSystem |
| Methods inherited from interface polyglot.util.Copy |
copy |
ThisLabel_c
public ThisLabel_c(JifTypeSystem ts,
polyglot.types.ReferenceType ct,
polyglot.util.Position pos)
isRuntimeRepresentable
public boolean isRuntimeRepresentable()
- Specified by:
isRuntimeRepresentable in interface Label- Specified by:
isRuntimeRepresentable in interface Param
isCovariant
public boolean isCovariant()
- Description copied from interface:
Label
- Is this label covariant?
- Specified by:
isCovariant in interface Label
isComparable
public boolean isComparable()
- Description copied from interface:
Label
- Is this label comparable to other labels?
For example, an UnknownLabel is not comparable to others, neither is a
VarLabel. Most other labels are.
- Specified by:
isComparable in interface Label
isCanonical
public boolean isCanonical()
- Specified by:
isCanonical in interface Param- Specified by:
isCanonical in interface polyglot.types.TypeObject
isDisambiguatedImpl
public boolean isDisambiguatedImpl()
- Description copied from class:
Label_c
- Check if the label is disambiguated, without recursing into child labels.
- Specified by:
isDisambiguatedImpl in class Label_c
isEnumerable
public boolean isEnumerable()
- Description copied from interface:
Label
- Are the components of this label enumerable?
For example, Singletons are enumerable, JoinLabels are enumerable,
RuntimeLabel (the label of all runtime representable components) is not
enumerable.
NOTE: The components of a label are not neccessarily stuck together with
a join operation. For example, the MeetLabel uses the meet operation
between its components.
- Specified by:
isEnumerable in interface Label
classType
public polyglot.types.ReferenceType classType()
- Specified by:
classType in interface ThisLabel
equalsImpl
public boolean equalsImpl(polyglot.types.TypeObject o)
- Specified by:
equalsImpl in interface polyglot.types.TypeObject- Specified by:
equalsImpl in class Label_c
hashCode
public int hashCode()
- Overrides:
hashCode in class polyglot.types.TypeObject_c
componentString
public java.lang.String componentString(java.util.Set printedLabels)
- Specified by:
componentString in interface Label- Specified by:
componentString in class Label_c
leq_
public boolean leq_(Label L,
LabelEnv env,
LabelEnv.SearchState state)
- Description copied from interface:
Label
- Implementation of leq, should only be called by JifTypeSystem
- Specified by:
leq_ in interface Label
- Parameters:
L - the label to determine if this label is leq to. This label
always satisfies !this.equals(L)env - the label environment (including principal hierarchy). Will
always be non-null.
variables
public java.util.Set variables()
- Description copied from interface:
Label
- The set of variables that this label contains including variables contained
in upper bounds of arg labels.
- Specified by:
variables in interface Label- Overrides:
variables in class Label_c