Class DeconstructorPatternNode

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

public class DeconstructorPatternNode extends Node
A node for a deconstrutor pattern.
  • Field Details

    • deconstructorPattern

      protected final Tree deconstructorPattern
      The DeconstructorPatternTree, declared as Tree to permit this file to compile under JDK 20 and earlier.
    • nestedPatterns

      protected final List<Node> nestedPatterns
      A list of nested pattern nodes.
    • bindingVariables

      protected @MonotonicNonNull List<LocalVariableNode> bindingVariables
      A list of nested binding variables. This is lazily initialized and should only be accessed by getBindingVariables().
  • Constructor Details

    • DeconstructorPatternNode

      public DeconstructorPatternNode(TypeMirror type, Tree deconstructorPattern, List<Node> nestedPatterns)
      Creates a DeconstructorPatternNode.
      Parameters:
      type - the type of the node
      deconstructorPattern - the DeconstructorPatternTree
      nestedPatterns - a list of nested pattern nodes
  • Method Details

    • getTree

      @Pure public @Nullable 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
    • getNestedPatterns

      @Pure public List<Node> getNestedPatterns()
      Returns the nested patterns.
      Returns:
      the nested patterns
    • 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
    • getOperands

      @Pure 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
    • getBindingVariables

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