public class ProviderLabel_c extends Label_c implements ProviderLabel
Modifier and Type | Field and Description |
---|---|
protected JifClassType |
classType
The class that this is labelling.
|
protected boolean |
isTrusted |
description, toJava, variables
Constructor and Description |
---|
ProviderLabel_c(JifClassType classType,
LabelToJavaExpr toJava) |
Modifier and Type | Method and Description |
---|---|
JifClassType |
classType() |
java.lang.String |
componentString(java.util.Set<Label> printedLabels)
return a string s such that {s} is a label
|
ConfPolicy |
confProjection() |
boolean |
equalsImpl(polyglot.types.TypeObject t) |
IntegPolicy |
integProjection() |
boolean |
isBottom()
By default, a label is not Bottom
|
boolean |
isCanonical() |
boolean |
isComparable()
Is this label comparable to other labels?
|
boolean |
isCovariant()
Is this label covariant?
|
protected 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 |
isTrusted() |
boolean |
leq_(Label L,
LabelEnv H,
LabelEnv.SearchState state)
Implementation of leq, should only be called by JifTypeSystem
|
ProviderLabel |
position(polyglot.util.Position pos) |
java.lang.String |
toString(java.util.Set<Label> printedLabels)
return a string representation of the label.
|
componentString, copy, description, hasVariableComponents, hasVariables, hasWritersToReaders, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, simplifyImpl, subst, throwTypes, toJava, toJava, toString, variableComponents, variables
typeSystem
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
componentString, copy, description, hasVariableComponents, hasVariables, hasWritersToReaders, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, subst, throwTypes, toJava, toString, variableComponents, variables
toJava
typeSystem
protected JifClassType classType
protected boolean isTrusted
public ProviderLabel_c(JifClassType classType, LabelToJavaExpr toJava)
public ProviderLabel position(polyglot.util.Position pos)
position
in interface ProviderLabel
public JifClassType classType()
classType
in interface ProviderLabel
public ConfPolicy confProjection()
confProjection
in interface Label
confProjection
in class Label_c
public IntegPolicy integProjection()
integProjection
in interface Label
integProjection
in class Label_c
public boolean isBottom()
Label_c
public boolean isTrusted()
isTrusted
in interface ProviderLabel
public boolean isCovariant()
Label
isCovariant
in interface Label
public boolean isComparable()
Label
For example, an UnknownLabel is not comparable to others, neither is a VarLabel. Most other labels are.
isComparable
in interface Label
public boolean isEnumerable()
Label
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.
isEnumerable
in interface Label
public boolean leq_(Label L, LabelEnv H, LabelEnv.SearchState state)
Label
public boolean isRuntimeRepresentable()
isRuntimeRepresentable
in interface Label
isRuntimeRepresentable
in interface Param
public boolean isCanonical()
isCanonical
in interface Param
isCanonical
in interface polyglot.types.TypeObject
protected boolean isDisambiguatedImpl()
Label_c
isDisambiguatedImpl
in class Label_c
public java.lang.String toString(java.util.Set<Label> printedLabels)
Label
public java.lang.String componentString(java.util.Set<Label> printedLabels)
Label
componentString
in interface Label
componentString
in class Label_c
printedLabels
- the set of labels for which auxiliary information should be
omitted.public boolean equalsImpl(polyglot.types.TypeObject t)
equalsImpl
in interface polyglot.types.TypeObject
equalsImpl
in class Label_c