public class WritersToReadersLabel_c extends Label_c implements WritersToReadersLabel
DynamicLabel interface.description, toJava, variables| Constructor and Description |
|---|
WritersToReadersLabel_c(Label label,
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 |
hasWritersToReaders()
Does the label contain any writersToReaders constructs?
|
IntegPolicy |
integProjection() |
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() |
Label |
label()
The nested label.
|
boolean |
leq_(Label L,
LabelEnv env,
LabelEnv.SearchState state)
Implementation of leq, should only be called by JifTypeSystem
|
Label |
subst(LabelSubstitution substitution) |
java.util.List<polyglot.types.Type> |
throwTypes(polyglot.types.TypeSystem ts)
If the label is runtime representable, when it is evaluated at runtime it
may throw exceptions.
|
java.lang.String |
toString(java.util.Set<Label> printedLabels)
return a string representation of the label.
|
Label |
transform(LabelEnv env)
Apply this operator to the nested label.
|
protected static Label |
transformImpl(Label label) |
protected static ConfPolicy |
transformIntegToConf(IntegPolicy pol) |
componentString, confProjection, copy, description, hasVariableComponents, hasVariables, isBottom, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, simplifyImpl, toJava, toJava, toString, variableComponents, variablestypeSystemclone, finalize, getClass, notify, notifyAll, wait, wait, waitcomponentString, confProjection, copy, description, hasVariableComponents, hasVariables, isBottom, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, toJava, toString, variableComponents, variablestoJavatypeSystempublic WritersToReadersLabel_c(Label label, JifTypeSystem ts, polyglot.util.Position pos)
public Label label()
WritersToReadersLabellabel in interface WritersToReadersLabelpublic boolean isRuntimeRepresentable()
isRuntimeRepresentable in interface LabelisRuntimeRepresentable in interface Parampublic boolean isCovariant()
LabelisCovariant 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.TypeObjectprotected boolean isDisambiguatedImpl()
Label_cisDisambiguatedImpl in class Label_cpublic 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 IntegPolicy integProjection()
integProjection in interface LabelintegProjection in class Label_cpublic 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 java.lang.String toString(java.util.Set<Label> printedLabels)
Labelpublic 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 leq_(Label L, LabelEnv env, LabelEnv.SearchState state)
Labelpublic java.util.List<polyglot.types.Type> throwTypes(polyglot.types.TypeSystem ts)
LabelthrowTypes in interface LabelthrowTypes in class Label_cpublic Label subst(LabelSubstitution substitution) throws polyglot.types.SemanticException
public boolean hasWritersToReaders()
LabelhasWritersToReaders in interface LabelhasWritersToReaders in class Label_cpublic Label transform(LabelEnv env)
WritersToReadersLabeltransform in interface WritersToReadersLabelprotected static ConfPolicy transformIntegToConf(IntegPolicy pol)