File tree Expand file tree Collapse file tree 5 files changed +96
-1
lines changed Expand file tree Collapse file tree 5 files changed +96
-1
lines changed Original file line number Diff line number Diff line change @@ -93,7 +93,8 @@ module ts {
93
93
getFullyQualifiedName : getFullyQualifiedName ,
94
94
getResolvedSignature : getResolvedSignature ,
95
95
getEnumMemberValue : getEnumMemberValue ,
96
- isValidPropertyAccess : isValidPropertyAccess
96
+ isValidPropertyAccess : isValidPropertyAccess ,
97
+ getAliasedSymbol : resolveImport
97
98
} ;
98
99
99
100
var undefinedSymbol = createSymbol ( SymbolFlags . Property | SymbolFlags . Transient , "undefined" ) ;
Original file line number Diff line number Diff line change @@ -657,6 +657,7 @@ module ts {
657
657
getEnumMemberValue ( node : EnumMember ) : number ;
658
658
659
659
isValidPropertyAccess ( node : PropertyAccess , propertyName : string ) : boolean ;
660
+ getAliasedSymbol ( symbol : Symbol ) : Symbol ;
660
661
}
661
662
662
663
export interface TextWriter {
Original file line number Diff line number Diff line change @@ -2147,6 +2147,12 @@ module ts {
2147
2147
2148
2148
if ( mappedNode . kind === SyntaxKind . Identifier || mappedNode . kind === SyntaxKind . QualifiedName || mappedNode . kind === SyntaxKind . PropertyAccess ) {
2149
2149
var symbol = typeInfoResolver . getSymbolInfo ( mappedNode ) ;
2150
+
2151
+ // This is an alias, follow what it aliases
2152
+ while ( symbol && symbol . flags & SymbolFlags . Import ) {
2153
+ symbol = typeInfoResolver . getAliasedSymbol ( symbol ) ;
2154
+ }
2155
+
2150
2156
if ( symbol && symbol . flags & SymbolFlags . HasExports ) {
2151
2157
// Extract module or enum members
2152
2158
forEachValue ( symbol . exports , symbol => {
Original file line number Diff line number Diff line change
1
+ /// <reference path='fourslash.ts' />
2
+
3
+ ////module M {
4
+ //// export interface I { }
5
+ //// export class C {
6
+ //// static property;
7
+ //// }
8
+ //// export enum E {
9
+ //// value = 0
10
+ //// }
11
+ //// export module N {
12
+ //// export var v;
13
+ //// }
14
+ //// export var V = 0;
15
+ //// export function F() { }
16
+ //// export import A = M;
17
+ //// }
18
+ ////
19
+ ////import m = M;
20
+ ////import c = M.C;
21
+ ////import e = M.E;
22
+ ////import n = M.N;
23
+ ////import v = M.V;
24
+ ////import f = M.F;
25
+ ////import a = M.A;
26
+ ////
27
+ ////m./*1*/;
28
+ ////c./*2*/;
29
+ ////e./*3*/;
30
+ ////n./*4*/;
31
+ ////v./*5*/;
32
+ ////f./*6*/;
33
+ ////a./*7*/;
34
+
35
+
36
+ // Module m
37
+ goTo . marker ( "1" ) ;
38
+ verify . memberListContains ( "I" ) ;
39
+ verify . memberListContains ( "C" ) ;
40
+ verify . memberListContains ( "E" ) ;
41
+ verify . memberListContains ( "N" ) ;
42
+ verify . memberListContains ( "V" ) ;
43
+ verify . memberListContains ( "F" ) ;
44
+ verify . memberListContains ( "A" ) ;
45
+
46
+ // Class C
47
+ goTo . marker ( "2" ) ;
48
+ verify . memberListContains ( "property" ) ;
49
+
50
+ // Enum E
51
+ goTo . marker ( "3" ) ;
52
+ verify . memberListContains ( "value" ) ;
53
+
54
+ // Module N
55
+ goTo . marker ( "4" ) ;
56
+ verify . memberListContains ( "v" ) ;
57
+
58
+ // var V
59
+ goTo . marker ( "5" ) ;
60
+ verify . memberListContains ( "toFixed" ) ;
61
+
62
+ // function F
63
+ goTo . marker ( "6" ) ;
64
+ verify . memberListContains ( "call" ) ;
65
+
66
+ // alias a
67
+ goTo . marker ( "7" ) ;
68
+ verify . memberListContains ( "I" ) ;
69
+ verify . memberListContains ( "C" ) ;
70
+ verify . memberListContains ( "E" ) ;
71
+ verify . memberListContains ( "N" ) ;
72
+ verify . memberListContains ( "V" ) ;
73
+ verify . memberListContains ( "F" ) ;
74
+ verify . memberListContains ( "A" ) ;
Original file line number Diff line number Diff line change
1
+ /// <reference path='fourslash.ts' />
2
+
3
+ ////declare module 'foobar' {
4
+ //// interface Q { x: number; }
5
+ //// }
6
+ ////declare module 'thing' {
7
+ //// import x = require('foobar');
8
+ //// var m: x./*1*/;
9
+ //// }
10
+
11
+ // Q does not show up in member list of x
12
+ goTo . marker ( "1" ) ;
13
+ verify . memberListContains ( "Q" ) ;
You can’t perform that action at this time.
0 commit comments