Skip to content

Commit b39ef15

Browse files
committed
JS: Propagate type member hosts through all underlying type steps
1 parent c60b8de commit b39ef15

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

javascript/ql/lib/semmle/javascript/internal/TypeResolution.qll

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
private import javascript
22
private import semmle.javascript.internal.NameResolution::NameResolution
3+
private import semmle.javascript.internal.UnderlyingTypes
34
private import semmle.javascript.dataflow.internal.sharedlib.SummaryTypeTracker as SummaryTypeTracker
45

56
module TypeResolution {
@@ -67,7 +68,7 @@ module TypeResolution {
6768
exists(Node mid | typeMemberHostReaches(host, mid) |
6869
TypeFlow::step(mid, use)
6970
or
70-
mid.(UnionOrIntersectionTypeExpr).getAnElementType() = use
71+
UnderlyingTypes::underlyingTypeStep(mid, use)
7172
)
7273
}
7374

javascript/ql/lib/semmle/javascript/internal/UnderlyingTypes.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ module UnderlyingTypes {
1919
)
2020
}
2121

22-
private predicate underlyingTypeStep(Node node1, Node node2) {
22+
predicate underlyingTypeStep(Node node1, Node node2) {
2323
exists(UnionOrIntersectionTypeExpr type |
2424
node1 = type.getAnElementType() and
2525
node2 = type

0 commit comments

Comments
 (0)