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
1010module TypeResolution {
1111 private class NodeBase =
1212 @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;
1415
1516 /**
1617 * 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 {
7474 private predicate subtypeStep ( Node node1 , Node node2 ) {
7575 exists ( ClassOrInterface cls |
7676 (
77- node1 = cls .getSuperClass ( ) or // TODO: test that type flow actually reaches the super class
77+ node1 = cls .getSuperClass ( ) or
7878 node1 = cls .getASuperInterface ( )
7979 ) and
8080 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