@@ -13,14 +13,12 @@ namespace ts {
1313 const importedFiles : FileReference [ ] = [ ] ;
1414 let ambientExternalModules : { ref : FileReference , depth : number } [ ] ;
1515 let braceNesting = 0 ;
16- let lastToken : SyntaxKind ;
1716 // assume that text represent an external module if it contains at least one top level import/export
1817 // ambient modules that are found inside external modules are interpreted as module augmentations
1918 let externalModule = false ;
2019
2120 function nextToken ( ) {
2221 const token = scanner . scan ( ) ;
23- lastToken = token ;
2422 if ( token === SyntaxKind . OpenBraceToken ) {
2523 braceNesting ++ ;
2624 }
@@ -79,9 +77,8 @@ namespace ts {
7977 * Returns true if at least one token was consumed from the stream
8078 */
8179 function tryConsumeImport ( ) : boolean {
82- const lastTokenWasDot = lastToken === SyntaxKind . DotToken ;
8380 let token = scanner . getToken ( ) ;
84- if ( token === SyntaxKind . ImportKeyword && ! lastTokenWasDot ) {
81+ if ( token === SyntaxKind . ImportKeyword ) {
8582 token = nextToken ( ) ;
8683 if ( token === SyntaxKind . OpenParenToken ) {
8784 token = nextToken ( ) ;
@@ -300,9 +297,14 @@ namespace ts {
300297 // AnySymbol.import("mod")
301298
302299 while ( true ) {
303- if ( scanner . getToken ( ) === SyntaxKind . EndOfFileToken ) {
300+ const token = scanner . getToken ( ) ;
301+ if ( token === SyntaxKind . EndOfFileToken ) {
304302 break ;
305303 }
304+ if ( token === SyntaxKind . DotToken ) {
305+ nextToken ( ) ; // jump over anything directly following the dot
306+ nextToken ( ) ;
307+ }
306308
307309 // check if at least one of alternative have moved scanner forward
308310 if ( tryConsumeDeclare ( ) ||
0 commit comments