Skip to content

Commit

Permalink
Merge pull request #23957 from paulkoerbitz/16675-better-error-messag…
Browse files Browse the repository at this point in the history
…e-for-dynamic-import

Fix #16675: Better error message for dynamic import with ES2015 modules
  • Loading branch information
mhegazy authored May 9, 2018
2 parents e27fb06 + 89d2bae commit 9ea4d93
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 16 deletions.
2 changes: 1 addition & 1 deletion src/compiler/checker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28131,7 +28131,7 @@ namespace ts {

function checkGrammarImportCallExpression(node: ImportCall): boolean {
if (moduleKind === ModuleKind.ES2015) {
return grammarErrorOnNode(node, Diagnostics.Dynamic_import_cannot_be_used_when_targeting_ECMAScript_2015_modules);
return grammarErrorOnNode(node, Diagnostics.Dynamic_import_is_only_supported_when_module_flag_is_commonjs_or_esNext);
}

if (node.typeArguments) {
Expand Down
2 changes: 1 addition & 1 deletion src/compiler/diagnosticMessages.json
Original file line number Diff line number Diff line change
Expand Up @@ -895,7 +895,7 @@
"category": "Error",
"code": 1322
},
"Dynamic import cannot be used when targeting ECMAScript 2015 modules.": {
"Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.": {
"category": "Error",
"code": 1323
},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
tests/cases/conformance/dynamicImport/1.ts(1,1): error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
tests/cases/conformance/dynamicImport/1.ts(2,10): error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
tests/cases/conformance/dynamicImport/1.ts(8,16): error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
tests/cases/conformance/dynamicImport/1.ts(1,1): error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.
tests/cases/conformance/dynamicImport/1.ts(2,10): error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.
tests/cases/conformance/dynamicImport/1.ts(8,16): error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.


==== tests/cases/conformance/dynamicImport/0.ts (0 errors) ====
Expand All @@ -9,16 +9,16 @@ tests/cases/conformance/dynamicImport/1.ts(8,16): error TS1323: Dynamic import c
==== tests/cases/conformance/dynamicImport/1.ts (3 errors) ====
import("./0");
~~~~~~~~~~~~~
!!! error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
!!! error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.
var p1 = import("./0");
~~~~~~~~~~~~~
!!! error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
!!! error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.
p1.then(zero => {
return zero.foo();
})

function foo() {
const p2 = import("./0");
~~~~~~~~~~~~~
!!! error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
!!! error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
tests/cases/conformance/dynamicImport/index.ts(2,18): error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
tests/cases/conformance/dynamicImport/index.ts(2,32): error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
tests/cases/conformance/dynamicImport/index.ts(2,18): error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.
tests/cases/conformance/dynamicImport/index.ts(2,32): error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.


==== tests/cases/conformance/dynamicImport/foo.ts (0 errors) ====
Expand All @@ -9,7 +9,7 @@ tests/cases/conformance/dynamicImport/index.ts(2,32): error TS1323: Dynamic impo
async function foo() {
return await import((await import("./foo")).default);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
!!! error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.
~~~~~~~~~~~~~~~
!!! error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
!!! error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
tests/cases/conformance/dynamicImport/index.ts(2,18): error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
tests/cases/conformance/dynamicImport/index.ts(2,32): error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
tests/cases/conformance/dynamicImport/index.ts(2,18): error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.
tests/cases/conformance/dynamicImport/index.ts(2,32): error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.


==== tests/cases/conformance/dynamicImport/foo.ts (0 errors) ====
Expand All @@ -9,7 +9,7 @@ tests/cases/conformance/dynamicImport/index.ts(2,32): error TS1323: Dynamic impo
async function foo() {
return await import((await import("./foo")).default);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!!! error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
!!! error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.
~~~~~~~~~~~~~~~
!!! error TS1323: Dynamic import cannot be used when targeting ECMAScript 2015 modules.
!!! error TS1323: Dynamic import is only supported when '--module' flag is 'commonjs' or 'esNext'.
}

0 comments on commit 9ea4d93

Please sign in to comment.