Class LocalVariableNode

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

public class LocalVariableNode extends Node
A node for a local variable or a parameter:
   identifier
 
We allow local variable uses introduced by the CFGBuilder without corresponding AST Trees.
  • Field Details

    • tree

      protected final Tree tree
      The tree for the local variable.
    • receiver

      protected final @Nullable Node receiver
      The receiver node for the local variable, null otherwise.
  • Constructor Details

    • LocalVariableNode

      public LocalVariableNode(Tree tree)
      Create a new local variable node for the given tree.
      Parameters:
      tree - the tree for the local variable: a VariableTree or an IdentifierTree
    • LocalVariableNode

      public LocalVariableNode(Tree tree, @Nullable Node receiver)
      Create a new local variable node for the given tree and receiver.
      Parameters:
      tree - the tree for the local variable: a VariableTree or an IdentifierTree
      receiver - the receiver for the local variable, or null if none
  • Method Details

    • getElement

      public VariableElement getElement()
      Returns the element associated with this local variable.
      Returns:
      the element associated with this local variable
    • getReceiver

      public @Nullable Node getReceiver()
      The receiver node for the local variable, null otherwise.
    • getName

      public String getName()
    • getTree

      public Tree 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