Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## jif.types.label
Class ArgLabel_c

    java.lang.Object
      polyglot.types.TypeObject_c
          jif.types.label.Label_c
              jif.types.label.ArgLabel_c

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, ArgLabel, Label, Param, polyglot.types.TypeObject, polyglot.util.Copy

    public class ArgLabel_c

extends Label_c
implements ArgLabel

This label is used as the label of the real argument. The purpose is to avoid having to re-interpret labels at each call.

See Also:
  Serialized Form

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
`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)`

Method Summary
`java.lang.String` | `componentString(java.util.Set printedLabels)`
`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()`

Methods inherited from class jif.types.label.Label_c
`componentString, confProjection, copy, hasVariableComponents, hasVariables, hasWritersToReaders, integProjection, isBottom, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, simplifyImpl, throwTypes, 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, hasVariableComponents, hasVariables, hasWritersToReaders, integProjection, isBottom, isDisambiguated, isInvariant, isTop, labelCheck, normalize, setDescription, simplify, throwTypes, toJava, toString, variableComponents, variables`

Methods inherited from interface polyglot.types.TypeObject
`position, typeSystem`

Methods inherited from interface polyglot.util.Copy
`copy`

Constructor Detail

### ArgLabel_c

    protected ArgLabel_c()

### ArgLabel_c

    public ArgLabel_c(JifTypeSystem ts,
                      polyglot.types.VarInstance vi,
                      polyglot.types.CodeInstance ci,
                      polyglot.util.Position pos)

### ArgLabel_c

    public ArgLabel_c(JifTypeSystem ts,
                      polyglot.types.ProcedureInstance pi,
                      java.lang.String name,
                      polyglot.util.Position pos)

Method Detail

### formalInstance

    public polyglot.types.VarInstance formalInstance()

  Specified by:
    `formalInstance` in interface `ArgLabel`

### upperBound

    public Label upperBound()

  Specified by:
    `upperBound` in interface `ArgLabel`

### name

    public java.lang.String name()

  Specified by:
    `name` in interface `ArgLabel`

### setName

    public void setName(java.lang.String name)

  Specified by:
    `setName` in interface `ArgLabel`

### setUpperBound

    public void setUpperBound(Label upperBound)

  Specified by:
    `setUpperBound` in interface `ArgLabel`

### setCodeInstance

    public void setCodeInstance(polyglot.types.CodeInstance ci)

  Specified by:
    `setCodeInstance` in interface `ArgLabel`

### isRuntimeRepresentable

    public boolean isRuntimeRepresentable()

  Specified by:
    `isRuntimeRepresentable` in interface `Label`
  Specified by:
    `isRuntimeRepresentable` in interface `Param`

### isCovariant

    public boolean isCovariant()

  Description copied from interface: `Label`
  Is this label covariant?

  Specified by:
    `isCovariant` in interface `Label`

### isComparable

    public boolean isComparable()

  Description copied from interface: `Label`
  Is this label comparable to other labels?

  For example, an UnknownLabel is not comparable to others, neither is a VarLabel. Most other labels are.

  Specified by:
    `isComparable` in interface `Label`

### isCanonical

    public boolean isCanonical()

  Specified by:
    `isCanonical` in interface `Param`
  Specified by:
    `isCanonical` in interface `polyglot.types.TypeObject`

### isEnumerable

    public boolean isEnumerable()

  Description copied from interface: `Label`
  Are the components of this label enumerable?

  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.

  Specified by:
    `isEnumerable` in interface `Label`

### isDisambiguatedImpl

    protected boolean isDisambiguatedImpl()

  Description copied from class: `Label_c`
  Check if the label is disambiguated, without recursing into child labels.

  Specified by:
    `isDisambiguatedImpl` in class `Label_c`

### equalsImpl

    public boolean equalsImpl(polyglot.types.TypeObject o)

  Specified by:
    `equalsImpl` in interface `polyglot.types.TypeObject`
  Specified by:
    `equalsImpl` in class `Label_c`

### hashCode

    public int hashCode()

  Overrides:
    `hashCode` in class `polyglot.types.TypeObject_c`

### componentString

    public java.lang.String componentString(java.util.Set printedLabels)

  Specified by:
    `componentString` in interface `Label`
  Specified by:
    `componentString` in class `Label_c`

### leq_

    public boolean leq_(Label L,
                        LabelEnv env,
                        LabelEnv.SearchState state)

  Description copied from interface: `Label`
  Implementation of leq, should only be called by JifTypeSystem

  Specified by:
    `leq_` in interface `Label`
  Parameters:
    `L` - 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.

### subst

    public Label subst(LabelSubstitution substitution)
                throws polyglot.types.SemanticException

  Specified by:
    `subst` in interface `Label`
  Overrides:
    `subst` in class `Label_c`
  Parameters:
    `substitution` - The `LabelSubstitution` to apply to this label
  Returns:
    the result of applying labelSubst to this label.
  Throws:
    `polyglot.types.SemanticException`

### description

    public java.lang.String description()

  Specified by:
    `description` in interface `Label`
  Overrides:
    `description` in class `Label_c`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD