Class InstanceOfNode

java.lang.Object
org.checkerframework.dataflow.cfg.node.Node
org.checkerframework.dataflow.cfg.node.InstanceOfNode
All Implemented Interfaces:
org.plumelib.util.UniqueId

public class InstanceOfNode extends Node
A node for the instanceof operator:

x instanceof Point

  • Field Details

    • operand

      protected final Node operand
      The value being tested.
    • refType

      protected final TypeMirror refType
      The reference type being tested against.
    • tree

      protected final InstanceOfTree tree
      The tree associated with this node.
    • patternNode

      protected final @Nullable Node patternNode
      The node of the pattern if one exists.
    • types

      protected final Types types
      For Types.isSameType.
    • bindingVariables

      protected @MonotonicNonNull List<LocalVariableNode> bindingVariables
      A list of all binding variables in this instanceof. This is lazily initialized, use getBindingVariables().
  • Constructor Details

    • InstanceOfNode

      public InstanceOfNode(InstanceOfTree tree, Node operand, TypeMirror refType, Types types)
      Create an InstanceOfNode.
      Parameters:
      tree - instanceof tree
      operand - the expression in the instanceof tree
      refType - the type in the instanceof
      types - types util
    • InstanceOfNode

      public InstanceOfNode(InstanceOfTree tree, Node operand, @Nullable Node patternNode, TypeMirror refType, Types types)
      Create an InstanceOfNode.
      Parameters:
      tree - instanceof tree
      operand - the expression in the instanceof tree
      patternNode - the pattern node or null if there is none
      refType - the type in the instanceof
      types - types util
  • Method Details

    • getOperand

      public Node getOperand()
    • getBindingVariable

      @Deprecated public @Nullable LocalVariableNode getBindingVariable()
      Deprecated.
      Returns the binding variable for this instanceof, or null if one does not exist.
      Returns:
      the binding variable for this instanceof, or null if one does not exist
    • getBindingVariables

      public List<LocalVariableNode> getBindingVariables()
      Return all the binding variables in this instanceof.
      Returns:
      all the binding variables in this instanceof
    • getPatternNode

      public @Nullable Node getPatternNode()
      Returns the pattern for this instanceof, or null if one does not exist.
      Returns:
      the pattern for this instanceof, or null if one does not exist
    • getRefType

      public TypeMirror getRefType()
      The reference type being tested against.
      Returns:
      the reference type
    • getTree

      public InstanceOfTree getTree()
      Description copied from class: Node
      Returns the Tree in the abstract syntax tree, or null if no corresponding tree exists. For instance, this is the case for an ImplicitThisNode.
      Specified by:
      getTree in class Node
      Returns:
      the corresponding Tree or null
    • accept

      public <R, P> R accept(NodeVisitor<R,P> visitor, P p)
      Description copied from class: Node
      Accept method of the visitor pattern.
      Specified by:
      accept in class Node
      Type Parameters:
      R - result type of the operation
      P - parameter type
      Parameters:
      visitor - the visitor to be applied to this node
      p - the parameter for this operation
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • equals

      public boolean equals(@Nullable Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getOperands

      @SideEffectFree public Collection<Node> getOperands()
      Description copied from class: Node
      Returns a collection containing all of the operand Nodes of this Node.
      Specified by:
      getOperands in class Node
      Returns:
      a collection containing all of the operand Nodes of this Node