Skip to content

Commit 37ddccf

Browse files
committed
JS: Merge DestructuringPatternNode into ValueNode
1 parent b3161b1 commit 37ddccf

2 files changed

Lines changed: 4 additions & 29 deletions

File tree

javascript/ql/src/semmle/javascript/dataflow/DataFlow.qll

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -368,30 +368,6 @@ module DataFlow {
368368
override ASTNode getAstNode() { result = rest }
369369
}
370370

371-
/**
372-
* A node in the data flow graph which corresponds to the value destructured by an
373-
* object or array pattern.
374-
*/
375-
private class DestructuringPatternNode extends Node, TDestructuringPatternNode {
376-
DestructuringPattern pattern;
377-
378-
DestructuringPatternNode() { this = TDestructuringPatternNode(pattern) }
379-
380-
override BasicBlock getBasicBlock() { result = pattern.getBasicBlock() }
381-
382-
override predicate hasLocationInfo(
383-
string filepath, int startline, int startcolumn, int endline, int endcolumn
384-
) {
385-
pattern.getLocation().hasLocationInfo(filepath, startline, startcolumn, endline, endcolumn)
386-
}
387-
388-
override string toString() { result = pattern.toString() }
389-
390-
override File getFile() { result = pattern.getFile() }
391-
392-
override ASTNode getAstNode() { result = pattern }
393-
}
394-
395371
/**
396372
* A node in the data flow graph which corresponds to an element pattern of an
397373
* array pattern.
@@ -828,7 +804,7 @@ module DataFlow {
828804
/** Gets the value pattern of this property pattern. */
829805
Expr getValuePattern() { result = prop.getValuePattern() }
830806

831-
override Node getBase() { result = TDestructuringPatternNode(prop.getObjectPattern()) }
807+
override Node getBase() { result = TValueNode(prop.getObjectPattern()) }
832808

833809
override Expr getPropertyNameExpr() { result = prop.getNameExpr() }
834810

@@ -841,7 +817,7 @@ module DataFlow {
841817
* for `[ ...elts ] = arr`.
842818
*/
843819
private class RestPatternAsPropRead extends PropRead, RestPatternNode {
844-
override Node getBase() { result = TDestructuringPatternNode(pattern) }
820+
override Node getBase() { result = TValueNode(pattern) }
845821

846822
override Expr getPropertyNameExpr() { none() }
847823

@@ -854,7 +830,7 @@ module DataFlow {
854830
* for `y`.
855831
*/
856832
private class ElementPatternAsPropRead extends PropRead, ElementPatternNode {
857-
override Node getBase() { result = TDestructuringPatternNode(pattern) }
833+
override Node getBase() { result = TValueNode(pattern) }
858834

859835
override Expr getPropertyNameExpr() { none() }
860836

@@ -1332,7 +1308,7 @@ module DataFlow {
13321308
result = TSsaDefNode(ssa)
13331309
)
13341310
or
1335-
result = TDestructuringPatternNode(lvalue)
1311+
result = TValueNode(lvalue.(DestructuringPattern))
13361312
or
13371313
result = TUnusedParameterNode(lvalue)
13381314
}

javascript/ql/src/semmle/javascript/dataflow/internal/DataFlowNode.qll

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ newtype TNode =
1515
TCapturedVariableNode(LocalVariable v) { v.isCaptured() } or
1616
TPropNode(@property p) or
1717
TRestPatternNode(DestructuringPattern dp, Expr rest) { rest = dp.getRest() } or
18-
TDestructuringPatternNode(DestructuringPattern dp) or
1918
TElementPatternNode(ArrayPattern ap, Expr p) { p = ap.getElement(_) } or
2019
TElementNode(ArrayExpr arr, Expr e) { e = arr.getAnElement() } or
2120
TReflectiveCallNode(MethodCallExpr ce, string kind) {

0 commit comments

Comments
 (0)