jif.types

## Class JifMethodInstance_c

- java.lang.Object
- - polyglot.types.TypeObject_c
  - - polyglot.types.ProcedureInstance_c
    - - polyglot.types.MethodInstance_c
      - - jif.types.JifMethodInstance_c

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, JifMethodInstance, JifProcedureInstance, polyglot.types.CodeInstance, polyglot.types.Declaration, polyglot.types.FunctionInstance, polyglot.types.MemberInstance, polyglot.types.MethodInstance, polyglot.types.ProcedureInstance, polyglot.types.TypeObject, polyglot.util.Copy<polyglot.types.TypeObject>

      public class JifMethodInstance_c
      extends polyglot.types.MethodInstance_c
      implements JifMethodInstance

  An implementation of the `JifMethodInstance` interface.
  See Also:
    Serialized Form

- - ### Nested Class Summary

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

      `polyglot.util.Copy.Util`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.List<Assertion>` | `constraints`
    `protected boolean` | `isDefaultPCBound`
    `protected boolean` | `isDefaultReturnLabel`
    `protected Label` | `pcBound`
    `protected Label` | `returnLabel`

    - ### Fields inherited from class polyglot.types.MethodInstance_c

      `decl, name, returnType`

    - ### Fields inherited from class polyglot.types.ProcedureInstance_c

      `container, flags, formalTypes, throwTypes`

    - ### Fields inherited from class polyglot.types.TypeObject_c

      `position, ts`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JifMethodInstance_c(JifTypeSystem ts, polyglot.util.Position pos, polyglot.types.ReferenceType container, polyglot.types.Flags flags, polyglot.types.Type returnType, java.lang.String name, Label pcBound, boolean isDefaultPCBound, java.util.List<? extends polyglot.types.Type> formalTypes, java.util.List<Label> formalArgLabels, Label returnLabel, boolean isDefaultReturnLabel, java.util.List<? extends polyglot.types.Type> excTypes, java.util.List<Assertion> constraints)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<Assertion>` | `constraints()`
    `java.lang.String` | `debugString()`
    `java.lang.String` | `fullSignature()`
    `boolean` | `isCanonical()`
    `boolean` | `isDefaultPCBound()`
    `boolean` | `isDefaultReturnLabel()`
    `Label` | `pcBound()`
    `ProviderLabel` | `provider()`
    `Label` | `returnLabel()`
    `Label` | `returnValueLabel()`
    `void` | `setConstraints(java.util.List<Assertion> constraints)`
    `void` | `setPCBound(Label pcBound, boolean isDefault)`
    `void` | `setReturnLabel(Label returnLabel, boolean isDefault)`
    `java.lang.String` | `signature()`
    `void` | `subst(LabelSubstitution subst)`
    `void` | `subst(VarMap bounds)`
    `java.lang.String` | `toString()`

    - ### Methods inherited from class polyglot.types.MethodInstance_c

      `canOverride, canOverrideImpl, canOverrideImpl, checkOverride, container, declaration, designator, equalsImpl, flags, formalTypes, hashCode, implemented, implementedImpl, implementedImplAux, isSameMethod, isSameMethodImpl, methodCallValid, methodCallValidImpl, name, name, orig, overrides, overridesImpl, returnType, returnType, setDeclaration, setName, setReturnType, throwTypes`

    - ### Methods inherited from class polyglot.types.ProcedureInstance_c

      `callValid, callValidImpl, container, flags, formalTypes, hasFormals, hasFormalsImpl, listIsCanonical, moreSpecific, moreSpecificImpl, setContainer, setFlags, setFormalTypes, setThrowTypes, throwsSubset, throwsSubsetImpl, throwTypes`

    - ### Methods inherited from class polyglot.types.TypeObject_c

      `copy, equals, position, typeSystem`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

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

      `canOverride, canOverrideImpl, checkOverride, container, flags, formalTypes, implemented, implementedImpl, isSameMethod, isSameMethodImpl, methodCallValid, methodCallValidImpl, name, name, orig, overrides, overridesImpl, returnType, setName, throwTypes`

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

      `returnType, setReturnType`

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

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

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

      `flags`

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

      `equalsImpl, position, typeSystem`

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

      `copy`

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

      `container, flags, setContainer, setFlags`

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

      `declaration, setDeclaration`

    - ### Methods inherited from interface jif.types.JifProcedureInstance

      `container`

- - ### Field Detail

    - #### pcBound

          protected Label pcBound

    - #### returnLabel

          protected Label returnLabel

    - #### constraints

          protected java.util.List<Assertion> constraints

    - #### isDefaultPCBound

          protected boolean isDefaultPCBound

    - #### isDefaultReturnLabel

          protected boolean isDefaultReturnLabel

  - ### Constructor Detail

    - #### JifMethodInstance_c

          public JifMethodInstance_c(JifTypeSystem ts,
                                     polyglot.util.Position pos,
                                     polyglot.types.ReferenceType container,
                                     polyglot.types.Flags flags,
                                     polyglot.types.Type returnType,
                                     java.lang.String name,
                                     Label pcBound,
                                     boolean isDefaultPCBound,
                                     java.util.List<? extends polyglot.types.Type> formalTypes,
                                     java.util.List<Label> formalArgLabels,
                                     Label returnLabel,
                                     boolean isDefaultReturnLabel,
                                     java.util.List<? extends polyglot.types.Type> excTypes,
                                     java.util.List<Assertion> constraints)

  - ### Method Detail

    - #### pcBound

          public Label pcBound()

      Specified by:
        `pcBound` in interface `JifProcedureInstance`

    - #### setPCBound

          public void setPCBound(Label pcBound,
                                 boolean isDefault)

      Specified by:
        `setPCBound` in interface `JifProcedureInstance`

    - #### isDefaultPCBound

          public boolean isDefaultPCBound()

      Specified by:
        `isDefaultPCBound` in interface `JifProcedureInstance`

    - #### returnLabel

          public Label returnLabel()

      Specified by:
        `returnLabel` in interface `JifProcedureInstance`

    - #### setReturnLabel

          public void setReturnLabel(Label returnLabel,
                                     boolean isDefault)

      Specified by:
        `setReturnLabel` in interface `JifProcedureInstance`

    - #### isDefaultReturnLabel

          public boolean isDefaultReturnLabel()

      Specified by:
        `isDefaultReturnLabel` in interface `JifProcedureInstance`

    - #### returnValueLabel

          public Label returnValueLabel()

      Specified by:
        `returnValueLabel` in interface `JifMethodInstance`

    - #### constraints

          public java.util.List<Assertion> constraints()

      Specified by:
        `constraints` in interface `JifProcedureInstance`

    - #### setConstraints

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

      Specified by:
        `setConstraints` in interface `JifProcedureInstance`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `polyglot.types.MethodInstance_c`

    - #### isCanonical

          public boolean isCanonical()

      Specified by:
        `isCanonical` in interface `polyglot.types.TypeObject`
      Overrides:
        `isCanonical` in class `polyglot.types.MethodInstance_c`

    - #### subst

          public void subst(VarMap bounds)

      Specified by:
        `subst` in interface `JifProcedureInstance`

    - #### subst

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

      Specified by:
        `subst` in interface `JifProcedureInstance`
      Throws:
        `polyglot.types.SemanticException`

    - #### debugString

          public java.lang.String debugString()

      Specified by:
        `debugString` in interface `JifProcedureInstance`

    - #### signature

          public java.lang.String signature()

      Specified by:
        `signature` in interface `polyglot.types.ProcedureInstance`
      Overrides:
        `signature` in class `polyglot.types.MethodInstance_c`

    - #### fullSignature

          public java.lang.String fullSignature()

    - #### provider

          public ProviderLabel provider()

      Specified by:
        `provider` in interface `JifProcedureInstance`
      Returns:
        the provider label of the enclosing class.