jif.extension

## Class JifCallDel

- java.lang.Object
- - polyglot.ast.JLDel_c
  - - jif.extension.JifDel_c
    - - jif.extension.JifCallDel

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, JifDel, polyglot.ast.CallOps, polyglot.ast.ExprOps, polyglot.ast.JLDel, polyglot.ast.NodeOps, polyglot.ast.ProcedureCallOps, polyglot.util.Copy<polyglot.ast.JLDel>

      public class JifCallDel
      extends JifDel_c
      implements polyglot.ast.CallOps

  The Jif extension of the `Call` node.
  See Also:
    `Call_c`, 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<VarLabel>` | `argVarLabels`
    `protected java.util.List<VarLabel>` | `paramVarLabels`
    `protected VarLabel` | `receiverVarLabel`

    - ### Fields inherited from class jif.extension.JifDel_c

      `fatalExceptions`

    - ### Fields inherited from class polyglot.ast.JLDel_c

      `instance`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JifCallDel()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `constantValue(polyglot.ast.Lang lang)`
    `boolean` | `constantValueSet(polyglot.ast.Lang lang)`
    `polyglot.types.Type` | `findContainer(polyglot.types.TypeSystem ts, polyglot.types.MethodInstance mi)`
    `polyglot.types.ReferenceType` | `findTargetType()`
    `boolean` | `isConstant(polyglot.ast.Lang lang)`
    `void` | `printArgs(polyglot.util.CodeWriter w, polyglot.visit.PrettyPrinter tr)`
    `void` | `setFatalExceptions(polyglot.types.TypeSystem ts, polyglot.util.SubtypeSet fatalExceptions)` Set the exceptions thrown by this node that are treated as fatal.
    `void` | `setTargetIsNeverNull(boolean neverNull)`
    `boolean` | `targetIsNeverNull()`
    `java.util.List<polyglot.types.Type>` | `throwTypes(polyglot.types.TypeSystem ts)` List of Types of exceptions that might get thrown.
    `polyglot.ast.Node` | `typeCheck(polyglot.visit.TypeChecker tc)`
    `polyglot.visit.NodeVisitor` | `typeCheckEnter(polyglot.visit.TypeChecker tc)`
    `polyglot.ast.Node` | `typeCheckNullTarget(polyglot.visit.TypeChecker tc, java.util.List<polyglot.types.Type> argTypes)`

    - ### Methods inherited from class jif.extension.JifDel_c

      `buildTypes, fatalExceptions, translate`

    - ### Methods inherited from class polyglot.ast.JLDel_c

      `addDecls, buildTypesEnter, checkConstants, childExpectedType, copy, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, extRewrite, extRewriteEnter, extRewriteOverride, init, jl, lang, node, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, typeCheckOverride, visitChild, visitChildren, visitList`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### receiverVarLabel

          protected VarLabel receiverVarLabel

    - #### argVarLabels

          protected java.util.List<VarLabel> argVarLabels

    - #### paramVarLabels

          protected java.util.List<VarLabel> paramVarLabels

  - ### Constructor Detail

    - #### JifCallDel

          public JifCallDel()

  - ### Method Detail

    - #### setTargetIsNeverNull

          public void setTargetIsNeverNull(boolean neverNull)

    - #### targetIsNeverNull

          public boolean targetIsNeverNull()

    - #### throwTypes

          public java.util.List<polyglot.types.Type> throwTypes(polyglot.types.TypeSystem ts)

      List of Types of exceptions that might get thrown. This differs from the method defined in Call_c in that it does not throw a null pointer exception if the receiver is guaranteed to be non-null. Always returns all declared exceptions (expected by call checker).
      Specified by:
        `throwTypes` in interface `polyglot.ast.NodeOps`
      Overrides:
        `throwTypes` in class `JifDel_c`

    - #### setFatalExceptions

          public void setFatalExceptions(polyglot.types.TypeSystem ts,
                                         polyglot.util.SubtypeSet fatalExceptions)

      Description copied from class: `JifDel_c`
      Set the exceptions thrown by this node that are treated as fatal.
      Specified by:
        `setFatalExceptions` in interface `JifDel`
      Overrides:
        `setFatalExceptions` in class `JifDel_c`

    - #### typeCheckEnter

          public polyglot.visit.NodeVisitor typeCheckEnter(polyglot.visit.TypeChecker tc)
                                                    throws polyglot.types.SemanticException

      Specified by:
        `typeCheckEnter` in interface `polyglot.ast.NodeOps`
      Overrides:
        `typeCheckEnter` in class `polyglot.ast.JLDel_c`
      Throws:
        `polyglot.types.SemanticException`

    - #### typeCheck

          public polyglot.ast.Node typeCheck(polyglot.visit.TypeChecker tc)
                                      throws polyglot.types.SemanticException

      Specified by:
        `typeCheck` in interface `polyglot.ast.NodeOps`
      Overrides:
        `typeCheck` in class `polyglot.ast.JLDel_c`
      Throws:
        `polyglot.types.SemanticException`

    - #### findContainer

          public polyglot.types.Type findContainer(polyglot.types.TypeSystem ts,
                                                   polyglot.types.MethodInstance mi)

      Specified by:
        `findContainer` in interface `polyglot.ast.CallOps`

    - #### findTargetType

          public polyglot.types.ReferenceType findTargetType()
                                                      throws polyglot.types.SemanticException

      Specified by:
        `findTargetType` in interface `polyglot.ast.CallOps`
      Throws:
        `polyglot.types.SemanticException`

    - #### typeCheckNullTarget

          public polyglot.ast.Node typeCheckNullTarget(polyglot.visit.TypeChecker tc,
                                                       java.util.List<polyglot.types.Type> argTypes)
                                                throws polyglot.types.SemanticException

      Specified by:
        `typeCheckNullTarget` in interface `polyglot.ast.CallOps`
      Throws:
        `polyglot.types.SemanticException`

    - #### printArgs

          public void printArgs(polyglot.util.CodeWriter w,
                                polyglot.visit.PrettyPrinter tr)

      Specified by:
        `printArgs` in interface `polyglot.ast.ProcedureCallOps`

    - #### constantValueSet

          public boolean constantValueSet(polyglot.ast.Lang lang)

      Specified by:
        `constantValueSet` in interface `polyglot.ast.ExprOps`

    - #### isConstant

          public boolean isConstant(polyglot.ast.Lang lang)

      Specified by:
        `isConstant` in interface `polyglot.ast.ExprOps`

    - #### constantValue

          public java.lang.Object constantValue(polyglot.ast.Lang lang)

      Specified by:
        `constantValue` in interface `polyglot.ast.ExprOps`