Skip to content

Commit cf3f275

Browse files
committed
make DestructuringPattern non-abstract
1 parent 68441bd commit cf3f275

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

javascript/ql/src/LanguageFeatures/NonLinearPattern.ql

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,8 @@
1414

1515
import javascript
1616

17-
class RootDestructuringPattern extends BindingPattern {
17+
class RootDestructuringPattern extends DestructuringPattern {
1818
RootDestructuringPattern() {
19-
this instanceof DestructuringPattern and
2019
not this = any(PropertyPattern p).getValuePattern() and
2120
not this = any(ArrayPattern p).getAnElement()
2221
}

javascript/ql/src/semmle/javascript/Variables.qll

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -406,6 +406,8 @@ class BindingPattern extends @pattern, Expr {
406406
}
407407
}
408408

409+
private class TDestructuringPattern = @arraypattern or @objectpattern;
410+
409411
/**
410412
* A destructuring pattern, that is, either an array pattern or an object pattern.
411413
*
@@ -418,9 +420,9 @@ class BindingPattern extends @pattern, Expr {
418420
* }
419421
* ```
420422
*/
421-
abstract class DestructuringPattern extends BindingPattern {
423+
class DestructuringPattern extends TDestructuringPattern, BindingPattern {
422424
/** Gets the rest pattern of this destructuring pattern, if any. */
423-
abstract Expr getRest();
425+
Expr getRest() { none() } // Overridden in subtypes.
424426
}
425427

426428
/**

0 commit comments

Comments
 (0)