@@ -23,6 +23,8 @@ private predicate possiblyAttribute(Expr e, string name) {
23
23
)
24
24
}
25
25
26
+ final private class FinalExpr = Expr ;
27
+
26
28
/**
27
29
* A bracketed list of expressions.
28
30
*
@@ -34,15 +36,16 @@ private predicate possiblyAttribute(Expr e, string name) {
34
36
*
35
37
* We also allow singleton lists, as in `[a][b]`.
36
38
*/
37
- abstract private class BracketedListOfExpressions extends Expr {
39
+ abstract private class BracketedListOfExpressions extends FinalExpr {
38
40
/** Gets the `i`th element expression of this list. */
39
41
abstract Expr getElement ( int i ) ;
40
42
}
41
43
42
44
/**
43
45
* An array expression viewed as a bracketed list of expressions.
44
46
*/
45
- private class ArrayExprIsABracketedListOfExpressions extends ArrayExpr , BracketedListOfExpressions {
47
+ private class ArrayExprIsABracketedListOfExpressions extends BracketedListOfExpressions instanceof ArrayExpr
48
+ {
46
49
/** Gets the `i`th element of this array literal. */
47
50
override Expr getElement ( int i ) { result = ArrayExpr .super .getElement ( i ) }
48
51
}
@@ -52,7 +55,7 @@ private class ArrayExprIsABracketedListOfExpressions extends ArrayExpr, Brackete
52
55
* and is hence parsed as an index expression.
53
56
*
54
57
* Note that the index expression itself does not include the opening and
55
- * closing brackets, for which we compensate by overriding `getFirstToken()`
58
+ * closing brackets, for which we compensate by shadowing `getFirstToken()`
56
59
* and `getLastToken()`.
57
60
*/
58
61
private class IndexExprIndexIsBracketedListOfExpressions extends BracketedListOfExpressions {
@@ -71,12 +74,12 @@ private class IndexExprIndexIsBracketedListOfExpressions extends BracketedListOf
71
74
not this instanceof SeqExpr and i = 0 and result = this
72
75
}
73
76
74
- override Token getFirstToken ( ) {
77
+ Token getFirstToken ( ) {
75
78
// include opening bracket
76
79
result = BracketedListOfExpressions .super .getFirstToken ( ) .getPreviousToken ( )
77
80
}
78
81
79
- override Token getLastToken ( ) {
82
+ Token getLastToken ( ) {
80
83
// include closing bracket
81
84
result = BracketedListOfExpressions .super .getLastToken ( ) .getNextToken ( )
82
85
}
0 commit comments