Skip to content

Commit af0d316

Browse files
authored
Merge pull request github#5862 from asgerf/js/has-underlying-type
Approved by erik-krogh, max-schaefer
2 parents 9b0c24a + 3e5dc1e commit af0d316

File tree

5 files changed

+14
-2
lines changed

5 files changed

+14
-2
lines changed

javascript/ql/src/semmle/javascript/TypeScript.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -725,7 +725,7 @@ class TypeAccess extends @typeaccess, TypeExpr, TypeRef {
725725
spec.getImportedName() = exportedName and
726726
this = spec.getLocal().(TypeDecl).getLocalTypeName().getAnAccess()
727727
or
728-
spec instanceof ImportNamespaceSpecifier and
728+
(spec instanceof ImportNamespaceSpecifier or spec instanceof ImportDefaultSpecifier) and
729729
this =
730730
spec.getLocal().(LocalNamespaceDecl).getLocalNamespaceName().getAMemberAccess(exportedName)
731731
)

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,6 @@ module DataFlow {
239239
private TypeAnnotation getFallbackTypeAnnotation() {
240240
exists(BindingPattern pattern |
241241
this = valueNode(pattern) and
242-
not ast_node_type(pattern, _) and
243242
result = pattern.getTypeAnnotation()
244243
)
245244
or
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
1+
underlyingTypeNode
2+
| foo | Bar | foo.ts:3:1:5:1 | use (instance (member Bar (member exports (module foo)))) |
3+
| foo | Bar | foo.ts:3:12:3:12 | use (instance (member Bar (member exports (module foo)))) |
4+
#select
15
| tst.ts:8:14:8:16 | arg | Base in global scope |
26
| tst.ts:8:14:8:16 | arg | Sub in global scope |

javascript/ql/test/library-tests/TypeScript/HasUnderlyingType/HasUnderlyingType.ql

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,7 @@ import javascript
33
from Expr e, TypeName typeName
44
where e.getType().hasUnderlyingTypeName(typeName)
55
select e, typeName
6+
7+
query API::Node underlyingTypeNode(string mod, string name) {
8+
result = API::Node::ofType(mod, name)
9+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import foo from "foo";
2+
3+
function f(x: foo.Bar) {
4+
return x;
5+
}

0 commit comments

Comments
 (0)