public class ArgLabel_c extends Label_c implements ArgLabel
description, toJava, variables| Modifier | Constructor and Description |
|---|---|
protected |
ArgLabel_c() |
|
ArgLabel_c(JifTypeSystem ts,
polyglot.types.ProcedureInstance pi,
java.lang.String name,
polyglot.util.Position pos) |
|
ArgLabel_c(JifTypeSystem ts,
polyglot.types.VarInstance vi,
polyglot.types.CodeInstance ci,
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
|
java.lang.String |
description() |
boolean |
equalsImpl(polyglot.types.TypeObject o) |
polyglot.types.VarInstance |
formalInstance() |
int |
hashCode() |
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 |
leq_(Label L,
LabelEnv env,
LabelEnv.SearchState state)
Implementation of leq, should only be called by JifTypeSystem
|
java.lang.String |
name() |
void |
setCodeInstance(polyglot.types.CodeInstance ci) |
void |
setName(java.lang.String name) |
void |
setUpperBound(Label upperBound) |
Label |
subst(LabelSubstitution substitution) |
Label |
upperBound() |
componentString, confProjection, copy, hasVariableComponents, hasVariables, hasWritersToReaders, integProjection, isBottom, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, simplifyImpl, throwTypes, toJava, toJava, toString, toString, variableComponents, variablestypeSystemclone, finalize, getClass, notify, notifyAll, wait, wait, waitcomponentString, confProjection, copy, hasVariableComponents, hasVariables, hasWritersToReaders, integProjection, isBottom, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, throwTypes, toJava, toString, toString, variableComponents, variablestoJavatypeSystemprotected ArgLabel_c()
public ArgLabel_c(JifTypeSystem ts, polyglot.types.VarInstance vi, polyglot.types.CodeInstance ci, polyglot.util.Position pos)
public ArgLabel_c(JifTypeSystem ts, polyglot.types.ProcedureInstance pi, java.lang.String name, polyglot.util.Position pos)
public polyglot.types.VarInstance formalInstance()
formalInstance in interface ArgLabelpublic Label upperBound()
upperBound in interface ArgLabelpublic void setUpperBound(Label upperBound)
setUpperBound in interface ArgLabelpublic void setCodeInstance(polyglot.types.CodeInstance ci)
setCodeInstance in interface ArgLabelpublic 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.TypeObjectpublic 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 Labelprotected boolean isDisambiguatedImpl()
Label_cisDisambiguatedImpl 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<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 Label subst(LabelSubstitution substitution) throws polyglot.types.SemanticException
public java.lang.String description()
description in interface Labeldescription in class Label_c