Skip to content

Commit 0a1a65e

Browse files
committed
JS: Avoid overriding Expr predicates in xUnit.qll
1 parent fa7295f commit 0a1a65e

File tree

1 file changed

+8
-5
lines changed
  • javascript/ql/lib/semmle/javascript/frameworks

1 file changed

+8
-5
lines changed

javascript/ql/lib/semmle/javascript/frameworks/xUnit.qll

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -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
*/
5861
private 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

Comments
 (0)