public class VarLabel_c extends Label_c implements VarLabel
VarLabel interface.description, toJava, variables| Modifier | Constructor and Description |
|---|---|
protected |
VarLabel_c() |
|
VarLabel_c(java.lang.String name,
java.lang.String description,
JifTypeSystem ts,
polyglot.util.Position pos) |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
componentString(java.util.Set<Label> printedLabels)
return a string s such that {s} is a label
|
boolean |
equalsImpl(polyglot.types.TypeObject o) |
int |
hashCode() |
boolean |
isCanonical() |
boolean |
isComparable()
Is this label comparable to other labels?
|
boolean |
isCovariant()
Is this label covariant?
|
boolean |
isDisambiguatedImpl()
Check if the label is disambiguated, without recursing into child labels.
|
boolean |
isEnumerable()
Are the components of this label enumerable?
|
boolean |
isRuntimeRepresentable() |
boolean |
leq_(Label L,
LabelEnv env,
LabelEnv.SearchState state)
Implementation of leq, should only be called by JifTypeSystem
|
boolean |
mustRuntimeRepresentable()
Does this var label need to map to a runtime representable label?
|
java.lang.String |
name() |
void |
setMustRuntimeRepresentable()
Set the mustRuntimeRepresentable flag, meaning that any solution for this
VarLabel must be to a runtime representable label.
|
java.util.Set<Variable> |
variableComponents()
The set of variables that this label contains as components.
|
java.util.Set<Variable> |
variables()
The set of variables that this label contains including variables contained
in upper bounds of arg labels.
|
componentString, confProjection, copy, description, hasVariableComponents, hasVariables, hasWritersToReaders, integProjection, isBottom, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, simplifyImpl, subst, throwTypes, toJava, toJava, toString, toStringtypeSystemclone, finalize, getClass, notify, notifyAll, wait, wait, waitcomponentString, confProjection, copy, description, hasVariableComponents, hasVariables, hasWritersToReaders, integProjection, isBottom, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, subst, throwTypes, toJava, toString, toStringtoJavatypeSystemprotected VarLabel_c()
public VarLabel_c(java.lang.String name,
java.lang.String description,
JifTypeSystem ts,
polyglot.util.Position pos)
public boolean isEnumerable()
LabelFor 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.
isEnumerable in interface Labelpublic boolean isComparable()
LabelFor example, an UnknownLabel is not comparable to others, neither is a VarLabel. Most other labels are.
isComparable in interface Labelpublic boolean isCanonical()
isCanonical in interface ParamisCanonical in interface polyglot.types.TypeObjectpublic boolean isDisambiguatedImpl()
Label_cisDisambiguatedImpl in class Label_cpublic boolean isRuntimeRepresentable()
isRuntimeRepresentable in interface LabelisRuntimeRepresentable in interface Parampublic boolean isCovariant()
LabelisCovariant in interface Labelpublic void setMustRuntimeRepresentable()
VariablesetMustRuntimeRepresentable in interface Variablepublic boolean mustRuntimeRepresentable()
VariablemustRuntimeRepresentable in interface Variablepublic java.lang.String componentString(java.util.Set<Label> printedLabels)
LabelcomponentString in interface LabelcomponentString in class Label_cprintedLabels - the set of labels for which auxiliary information should be
omitted.public boolean equalsImpl(polyglot.types.TypeObject o)
equalsImpl in interface polyglot.types.TypeObjectequalsImpl in class Label_cpublic int hashCode()
hashCode in class polyglot.types.TypeObject_cpublic boolean leq_(Label L, LabelEnv env, LabelEnv.SearchState state)
Labelpublic java.util.Set<Variable> variableComponents()
LabelvariableComponents in interface LabelvariableComponents in class Label_cpublic java.util.Set<Variable> variables()
Label