jif.types

## Interface JifProcedureInstance

- All Superinterfaces:
    java.lang.Cloneable, polyglot.types.CodeInstance, polyglot.util.Copy<polyglot.types.TypeObject>, polyglot.types.ProcedureInstance, java.io.Serializable, polyglot.types.TypeObject
  All Known Subinterfaces:
    JifConstructorInstance, JifMethodInstance
  All Known Implementing Classes:
    JifConstructorInstance_c, JifMethodInstance_c

      public interface JifProcedureInstance
      extends polyglot.types.ProcedureInstance

  Jif procedure instance. A wrapper of all the type information related to a procedure.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface polyglot.util.Copy

      `polyglot.util.Copy.Util`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<Assertion>` | `constraints()`
    `polyglot.types.ReferenceType` | `container()`
    `java.lang.String` | `debugString()`
    `boolean` | `isDefaultPCBound()`
    `boolean` | `isDefaultReturnLabel()`
    `Label` | `pcBound()`
    `ProviderLabel` | `provider()`
    `Label` | `returnLabel()`
    `void` | `setConstraints(java.util.List<Assertion> constraints)`
    `void` | `setPCBound(Label startLabel, boolean isDefault)`
    `void` | `setReturnLabel(Label returnLabel, boolean isDefault)`
    `void` | `subst(LabelSubstitution subst)`
    `void` | `subst(VarMap bounds)`

    - ### Methods inherited from interface polyglot.types.ProcedureInstance

      `callValid, callValidImpl, designator, formalTypes, hasFormals, hasFormalsImpl, moreSpecific, moreSpecificImpl, setFormalTypes, setThrowTypes, signature, throwsSubset, throwsSubsetImpl, throwTypes`

    - ### Methods inherited from interface polyglot.types.CodeInstance

      `flags`

    - ### Methods inherited from interface polyglot.types.TypeObject

      `equalsImpl, isCanonical, position, typeSystem`

    - ### Methods inherited from interface polyglot.util.Copy

      `copy`

- - ### Method Detail

    - #### pcBound

          Label pcBound()

    - #### returnLabel

          Label returnLabel()

    - #### constraints

          java.util.List<Assertion> constraints()

    - #### setPCBound

          void setPCBound(Label startLabel,
                          boolean isDefault)

    - #### setReturnLabel

          void setReturnLabel(Label returnLabel,
                              boolean isDefault)

    - #### setConstraints

          void setConstraints(java.util.List<Assertion> constraints)

    - #### isDefaultPCBound

          boolean isDefaultPCBound()

    - #### isDefaultReturnLabel

          boolean isDefaultReturnLabel()

    - #### debugString

          java.lang.String debugString()

    - #### subst

          void subst(VarMap bounds)

    - #### subst

          void subst(LabelSubstitution subst)
              throws polyglot.types.SemanticException

      Throws:
        `polyglot.types.SemanticException`

    - #### container

          polyglot.types.ReferenceType container()

    - #### provider

          ProviderLabel provider()

      Returns:
        the provider label of the enclosing class.