@@ -23,6 +23,8 @@ private predicate possiblyAttribute(Expr e, string name) {
2323 )
2424}
2525
26+ final private class FinalExpr = Expr ;
27+
2628/**
2729 * A bracketed list of expressions.
2830 *
@@ -34,15 +36,16 @@ private predicate possiblyAttribute(Expr e, string name) {
3436 *
3537 * We also allow singleton lists, as in `[a][b]`.
3638 */
37- abstract private class BracketedListOfExpressions extends Expr {
39+ abstract private class BracketedListOfExpressions extends FinalExpr {
3840 /** Gets the `i`th element expression of this list. */
3941 abstract Expr getElement ( int i ) ;
4042}
4143
4244/**
4345 * An array expression viewed as a bracketed list of expressions.
4446 */
45- private class ArrayExprIsABracketedListOfExpressions extends ArrayExpr , BracketedListOfExpressions {
47+ private class ArrayExprIsABracketedListOfExpressions extends BracketedListOfExpressions instanceof ArrayExpr
48+ {
4649 /** Gets the `i`th element of this array literal. */
4750 override Expr getElement ( int i ) { result = ArrayExpr .super .getElement ( i ) }
4851}
@@ -52,7 +55,7 @@ private class ArrayExprIsABracketedListOfExpressions extends ArrayExpr, Brackete
5255 * and is hence parsed as an index expression.
5356 *
5457 * 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()`
5659 * and `getLastToken()`.
5760 */
5861private class IndexExprIndexIsBracketedListOfExpressions extends BracketedListOfExpressions {
@@ -71,12 +74,12 @@ private class IndexExprIndexIsBracketedListOfExpressions extends BracketedListOf
7174 not this instanceof SeqExpr and i = 0 and result = this
7275 }
7376
74- override Token getFirstToken ( ) {
77+ Token getFirstToken ( ) {
7578 // include opening bracket
7679 result = BracketedListOfExpressions .super .getFirstToken ( ) .getPreviousToken ( )
7780 }
7881
79- override Token getLastToken ( ) {
82+ Token getLastToken ( ) {
8083 // include closing bracket
8184 result = BracketedListOfExpressions .super .getLastToken ( ) .getNextToken ( )
8285 }
0 commit comments