Merge pull request #4730 from Microsoft/fix4727

prerocess `export import` declarations correctly
This commit is contained in:
Mohamed Hegazy 2015-09-10 14:19:30 -07:00
commit 828c37e72b
2 changed files with 34 additions and 0 deletions

View file

@ -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();
}

View file

@ -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
})
});
});
});