From 7e1739604a81b9f18ee43b96b1801e9cbfda10bb Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Thu, 10 Sep 2015 13:24:45 -0700 Subject: [PATCH] Fix #4727: prerocess `export import` declarations correctelly --- src/services/services.ts | 20 +++++++++++++++++++ .../unittests/services/preProcessFile.ts | 14 +++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/services/services.ts b/src/services/services.ts index b174f240875ae..58f59843078bc 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2152,6 +2152,7 @@ namespace ts { // // export * from "mod" // export {a as b} from "mod" + // export import i = require("mod") while (token !== SyntaxKind.EndOfFileToken) { if (token === SyntaxKind.DeclareKeyword) { @@ -2276,6 +2277,25 @@ namespace ts { } } } + else if (token === SyntaxKind.ImportKeyword) { + token = scanner.scan(); + if (token === SyntaxKind.Identifier || isKeyword(token)) { + token = scanner.scan(); + if (token === SyntaxKind.EqualsToken) { + token = scanner.scan(); + if (token === SyntaxKind.RequireKeyword) { + token = scanner.scan(); + if (token === SyntaxKind.OpenParenToken) { + token = scanner.scan(); + if (token === SyntaxKind.StringLiteral) { + // export import i = require("mod"); + recordModuleName(); + } + } + } + } + } + } } token = scanner.scan(); } diff --git a/tests/cases/unittests/services/preProcessFile.ts b/tests/cases/unittests/services/preProcessFile.ts index 982c45f0f2d5e..7b64506921207 100644 --- a/tests/cases/unittests/services/preProcessFile.ts +++ b/tests/cases/unittests/services/preProcessFile.ts @@ -173,6 +173,20 @@ describe('PreProcessFile:', function () { isLibFile: false }) }); + + it("Correctly handeles export import declarations", function () { + test("export import a = require(\"m1\");", + true, + { + referencedFiles: [], + importedFiles: [ + { fileName: "m1", pos: 26, end: 28 } + ], + ambientExternalModules: undefined, + isLibFile: false + }) + }); + }); });