@@ -12,20 +12,25 @@ namespace ts {
12
12
} ;
13
13
const importedFiles : FileReference [ ] = [ ] ;
14
14
let ambientExternalModules : { ref : FileReference , depth : number } [ ] ;
15
+ let lastToken : SyntaxKind ;
16
+ let currentToken : SyntaxKind ;
15
17
let braceNesting = 0 ;
16
18
// assume that text represent an external module if it contains at least one top level import/export
17
19
// ambient modules that are found inside external modules are interpreted as module augmentations
18
20
let externalModule = false ;
19
21
20
22
function nextToken ( ) {
21
- const token = scanner . scan ( ) ;
22
- if ( token === SyntaxKind . OpenBraceToken ) {
23
+ if ( currentToken ) {
24
+ lastToken = currentToken ;
25
+ }
26
+ currentToken = scanner . scan ( ) ;
27
+ if ( currentToken === SyntaxKind . OpenBraceToken ) {
23
28
braceNesting ++ ;
24
29
}
25
- else if ( token === SyntaxKind . CloseBraceToken ) {
30
+ else if ( currentToken === SyntaxKind . CloseBraceToken ) {
26
31
braceNesting -- ;
27
32
}
28
- return token ;
33
+ return currentToken ;
29
34
}
30
35
31
36
function getFileReference ( ) {
@@ -77,6 +82,9 @@ namespace ts {
77
82
* Returns true if at least one token was consumed from the stream
78
83
*/
79
84
function tryConsumeImport ( ) : boolean {
85
+ if ( lastToken === SyntaxKind . DotToken ) {
86
+ return false ;
87
+ }
80
88
let token = scanner . getToken ( ) ;
81
89
if ( token === SyntaxKind . ImportKeyword ) {
82
90
token = nextToken ( ) ;
@@ -295,16 +303,13 @@ namespace ts {
295
303
296
304
// Do not look for:
297
305
// AnySymbol.import("mod")
306
+ // AnySymbol.nested.import("mod")
298
307
299
308
while ( true ) {
300
309
const token = scanner . getToken ( ) ;
301
310
if ( token === SyntaxKind . EndOfFileToken ) {
302
311
break ;
303
312
}
304
- if ( token === SyntaxKind . DotToken ) {
305
- nextToken ( ) ; // jump over anything directly following the dot
306
- nextToken ( ) ;
307
- }
308
313
309
314
// check if at least one of alternative have moved scanner forward
310
315
if ( tryConsumeDeclare ( ) ||
0 commit comments