|
1 | 1 | package org.checkerframework.dataflow.cfg.node;
|
2 | 2 |
|
3 | 3 | import com.sun.source.tree.ArrayAccessTree;
|
| 4 | +import com.sun.source.tree.EnhancedForLoopTree; |
4 | 5 | import com.sun.source.tree.ExpressionTree;
|
5 | 6 | import com.sun.source.tree.Tree;
|
6 | 7 | import java.util.Arrays;
|
@@ -39,6 +40,14 @@ public class ArrayAccessNode extends Node {
|
39 | 40 | */
|
40 | 41 | protected @Nullable ExpressionTree arrayExpression;
|
41 | 42 |
|
| 43 | + /** |
| 44 | + * If this ArrayAccessNode is a node for an array access desugared from an enhanced for loop, then |
| 45 | + * the {@code enhancedForLoop} field is the {@code EnhancedForLoopTree} AST node. |
| 46 | + * |
| 47 | + * <p>Is set by {@link #setEnhancedForLoop}. |
| 48 | + */ |
| 49 | + protected @Nullable EnhancedForLoopTree enhancedForLoop; |
| 50 | + |
42 | 51 | /**
|
43 | 52 | * Create an ArrayAccessNode.
|
44 | 53 | *
|
@@ -75,6 +84,27 @@ public void setArrayExpression(@Nullable ExpressionTree arrayExpression) {
|
75 | 84 | this.arrayExpression = arrayExpression;
|
76 | 85 | }
|
77 | 86 |
|
| 87 | + /** |
| 88 | + * If this ArrayAccessNode is a node for an array access desugared from an enhanced for loop, then |
| 89 | + * return the {@code EnhancedForLoopTree} AST node. Otherwise, return null. |
| 90 | + * |
| 91 | + * @return the {@code EnhancedForLoopTree}, or null if this is not an array access desugared from |
| 92 | + * an enhanced for loop |
| 93 | + */ |
| 94 | + public @Nullable EnhancedForLoopTree getEnhancedForLoop() { |
| 95 | + return enhancedForLoop; |
| 96 | + } |
| 97 | + |
| 98 | + /** |
| 99 | + * Set the enhanced for loop from which {@code this} is desugared from. |
| 100 | + * |
| 101 | + * @param enhancedForLoop the {@code EnhancedForLoopTree} |
| 102 | + * @see #getEnhancedForLoop() |
| 103 | + */ |
| 104 | + public void setEnhancedForLoop(@Nullable EnhancedForLoopTree enhancedForLoop) { |
| 105 | + this.enhancedForLoop = enhancedForLoop; |
| 106 | + } |
| 107 | + |
78 | 108 | /**
|
79 | 109 | * Get the node that represents the array expression being accessed.
|
80 | 110 | *
|
|
0 commit comments