|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectpolyglot.types.TypeObject_c
jif.types.label.Label_c
jif.types.label.WritersToReadersLabel_c
public class WritersToReadersLabel_c
An implementation of the DynamicLabel interface.
| Field Summary |
|---|
| Fields inherited from class jif.types.label.Label_c |
|---|
description, toJava, variables |
| Fields inherited from class polyglot.types.TypeObject_c |
|---|
position, ts |
| Constructor Summary | |
|---|---|
WritersToReadersLabel_c(Label label,
JifTypeSystem ts,
polyglot.util.Position pos)
|
|
| Method Summary | |
|---|---|
java.lang.String |
componentString(java.util.Set printedLabels)
|
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 |
throwTypes(polyglot.types.TypeSystem ts)
If the label is runtime representable, when it is evaluated at runtime it may throw exceptions. |
Label |
transform(LabelEnv env)
Apply this operator to the nested label. |
protected static Label |
transformImpl(Label label)
|
protected static ConfPolicy |
transformIntegToConf(IntegPolicy pol)
|
| Methods inherited from class jif.types.label.Label_c |
|---|
componentString, confProjection, copy, description, hasVariableComponents, hasVariables, isBottom, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, simplifyImpl, toJava, toString, toString, variableComponents, variables |
| 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, isBottom, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, toJava, toString, variableComponents, variables |
| Methods inherited from interface polyglot.types.TypeObject |
|---|
position, typeSystem |
| Methods inherited from interface polyglot.util.Copy |
|---|
copy |
| Constructor Detail |
|---|
public WritersToReadersLabel_c(Label label,
JifTypeSystem ts,
polyglot.util.Position pos)
| Method Detail |
|---|
public Label label()
WritersToReadersLabel
label in interface WritersToReadersLabelpublic boolean isRuntimeRepresentable()
isRuntimeRepresentable in interface LabelisRuntimeRepresentable in interface Parampublic boolean isCovariant()
Label
isCovariant 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_c
isDisambiguatedImpl 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 componentString(java.util.Set printedLabels)
componentString in interface LabelcomponentString in class Label_c
public boolean leq_(Label L,
LabelEnv env,
LabelEnv.SearchState state)
Label
leq_ in interface LabelL - 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.public java.util.List throwTypes(polyglot.types.TypeSystem ts)
Label
throwTypes in interface LabelthrowTypes in class Label_c
public Label subst(LabelSubstitution substitution)
throws polyglot.types.SemanticException
subst in interface Labelsubst in class Label_csubstitution - The LabelSubstitution to apply to this
label
polyglot.types.SemanticExceptionpublic boolean hasWritersToReaders()
Label
hasWritersToReaders in interface LabelhasWritersToReaders in class Label_cpublic Label transform(LabelEnv env)
WritersToReadersLabel
transform in interface WritersToReadersLabelprotected static Label transformImpl(Label label)
protected static ConfPolicy transformIntegToConf(IntegPolicy pol)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||