File tree Expand file tree Collapse file tree 3 files changed +23
-2
lines changed
lib/semmle/javascript/internal
test/library-tests/UnderlyingTypes Expand file tree Collapse file tree 3 files changed +23
-2
lines changed Original file line number Diff line number Diff line change @@ -10,7 +10,8 @@ private import javascript
10
10
module TypeResolution {
11
11
private class NodeBase =
12
12
@expr or @typeexpr or @lexical_name or @toplevel or @function_decl_stmt or @class_decl_stmt or
13
- @namespace_declaration or @enum_declaration or @jsdoc_type_expr;
13
+ @namespace_declaration or @enum_declaration or @interface_declaration or
14
+ @type_alias_declaration or @jsdoc_type_expr;
14
15
15
16
/**
16
17
* A node in a graph which we use to perform name and type resolution.
Original file line number Diff line number Diff line change @@ -74,7 +74,7 @@ module UnderlyingTypes {
74
74
private predicate subtypeStep ( Node node1 , Node node2 ) {
75
75
exists ( ClassOrInterface cls |
76
76
(
77
- node1 = cls .getSuperClass ( ) or // TODO: test that type flow actually reaches the super class
77
+ node1 = cls .getSuperClass ( ) or
78
78
node1 = cls .getASuperInterface ( )
79
79
) and
80
80
node2 = cls
Original file line number Diff line number Diff line change
1
+ import * as express from 'express' ;
2
+
3
+ interface MyRequest extends express . Request {
4
+
5
+ }
6
+
7
+ function t1 ( req : MyRequest ) { // $ hasUnderlyingType='express'.Request
8
+ }
9
+
10
+ class MyRequestClass extends express . Request {
11
+ }
12
+
13
+ function t2 ( req : MyRequestClass ) { // $ hasUnderlyingType='express'.Request
14
+ }
15
+
16
+ class MyRequestClass2 implements express . Request {
17
+ }
18
+
19
+ function t3 ( req : MyRequestClass2 ) { // $ hasUnderlyingType='express'.Request
20
+ }
You can’t perform that action at this time.
0 commit comments