jif.types.label
Class VarLabel_c
java.lang.Object
polyglot.ext.jl.types.TypeObject_c
jif.types.label.Label_c
jif.types.label.VarLabel_c
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Label, VarLabel, Param, polyglot.types.TypeObject, polyglot.util.Copy
public class VarLabel_c
- extends Label_c
- implements VarLabel
An implementation of the VarLabel interface.
- See Also:
- Serialized Form
| Fields inherited from class polyglot.ext.jl.types.TypeObject_c |
position, ts |
| Methods inherited from class jif.types.label.Label_c |
components, componentString, description, hasVariables, isBottom, isDisambiguated, isInvariant, isSingleton, isTop, join, labelCheck, setDescription, simplify, singletonComponent, subst, throwTypes, toJava, toString, toString, variables |
| Methods inherited from class polyglot.ext.jl.types.TypeObject_c |
copy, 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 |
components, componentString, description, hasVariables, isBottom, isDisambiguated, isInvariant, isSingleton, isTop, join, labelCheck, setDescription, simplify, singletonComponent, subst, throwTypes, toJava, toString, variables |
| Methods inherited from interface polyglot.types.TypeObject |
position, typeSystem |
| Methods inherited from interface polyglot.util.Copy |
copy |
VarLabel_c
protected VarLabel_c()
VarLabel_c
public VarLabel_c(java.lang.String name,
java.lang.String description,
JifTypeSystem ts,
polyglot.util.Position pos)
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
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
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
componentString
public java.lang.String componentString(java.util.Set printedLabels)
- Specified by:
componentString in interface Label- Specified by:
componentString in class Label_c
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.ext.jl.types.TypeObject_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.