Skip to content

Commit 828c37e

Browse files
committed
Merge pull request #4730 from Microsoft/fix4727
prerocess `export import` declarations correctly
2 parents 2816fde + 7e17396 commit 828c37e

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

src/services/services.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2152,6 +2152,7 @@ namespace ts {
21522152
//
21532153
// export * from "mod"
21542154
// export {a as b} from "mod"
2155+
// export import i = require("mod")
21552156

21562157
while (token !== SyntaxKind.EndOfFileToken) {
21572158
if (token === SyntaxKind.DeclareKeyword) {
@@ -2276,6 +2277,25 @@ namespace ts {
22762277
}
22772278
}
22782279
}
2280+
else if (token === SyntaxKind.ImportKeyword) {
2281+
token = scanner.scan();
2282+
if (token === SyntaxKind.Identifier || isKeyword(token)) {
2283+
token = scanner.scan();
2284+
if (token === SyntaxKind.EqualsToken) {
2285+
token = scanner.scan();
2286+
if (token === SyntaxKind.RequireKeyword) {
2287+
token = scanner.scan();
2288+
if (token === SyntaxKind.OpenParenToken) {
2289+
token = scanner.scan();
2290+
if (token === SyntaxKind.StringLiteral) {
2291+
// export import i = require("mod");
2292+
recordModuleName();
2293+
}
2294+
}
2295+
}
2296+
}
2297+
}
2298+
}
22792299
}
22802300
token = scanner.scan();
22812301
}

tests/cases/unittests/services/preProcessFile.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,20 @@ describe('PreProcessFile:', function () {
173173
isLibFile: false
174174
})
175175
});
176+
177+
it("Correctly handeles export import declarations", function () {
178+
test("export import a = require(\"m1\");",
179+
true,
180+
{
181+
referencedFiles: [],
182+
importedFiles: [
183+
{ fileName: "m1", pos: 26, end: 28 }
184+
],
185+
ambientExternalModules: undefined,
186+
isLibFile: false
187+
})
188+
});
189+
176190
});
177191
});
178192

0 commit comments

Comments
 (0)