From eba4d3673931dc748cdf5b0e4633646b23a0deb9 Mon Sep 17 00:00:00 2001 From: kingwl <805037171@163.com> Date: Thu, 14 Dec 2017 09:26:05 +0800 Subject: [PATCH] error if import empty object form module not existed --- src/compiler/checker.ts | 5 ++++- .../reference/importEmptyFromModuleNotExisted.errors.txt | 8 ++++++++ .../reference/importEmptyFromModuleNotExisted.js | 7 +++++++ .../reference/importEmptyFromModuleNotExisted.symbols | 4 ++++ .../reference/importEmptyFromModuleNotExisted.types | 4 ++++ .../es6/modules/importEmptyFromModuleNotExisted.ts | 1 + 6 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/importEmptyFromModuleNotExisted.errors.txt create mode 100644 tests/baselines/reference/importEmptyFromModuleNotExisted.js create mode 100644 tests/baselines/reference/importEmptyFromModuleNotExisted.symbols create mode 100644 tests/baselines/reference/importEmptyFromModuleNotExisted.types create mode 100644 tests/cases/conformance/es6/modules/importEmptyFromModuleNotExisted.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index bb7f8d013fc..0c44bd928a7 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -23852,7 +23852,10 @@ namespace ts { checkImportBinding(importClause.namedBindings); } else { - forEach(importClause.namedBindings.elements, checkImportBinding); + const moduleExisted = resolveExternalModuleName(node, node.moduleSpecifier); + if (moduleExisted) { + forEach(importClause.namedBindings.elements, checkImportBinding); + } } } } diff --git a/tests/baselines/reference/importEmptyFromModuleNotExisted.errors.txt b/tests/baselines/reference/importEmptyFromModuleNotExisted.errors.txt new file mode 100644 index 00000000000..99ccd49c489 --- /dev/null +++ b/tests/baselines/reference/importEmptyFromModuleNotExisted.errors.txt @@ -0,0 +1,8 @@ +tests/cases/conformance/es6/modules/importEmptyFromModuleNotExisted.ts(1,16): error TS2307: Cannot find module 'module-not-existed'. + + +==== tests/cases/conformance/es6/modules/importEmptyFromModuleNotExisted.ts (1 errors) ==== + import {} from 'module-not-existed' + ~~~~~~~~~~~~~~~~~~~~ +!!! error TS2307: Cannot find module 'module-not-existed'. + \ No newline at end of file diff --git a/tests/baselines/reference/importEmptyFromModuleNotExisted.js b/tests/baselines/reference/importEmptyFromModuleNotExisted.js new file mode 100644 index 00000000000..aa08db2e99e --- /dev/null +++ b/tests/baselines/reference/importEmptyFromModuleNotExisted.js @@ -0,0 +1,7 @@ +//// [importEmptyFromModuleNotExisted.ts] +import {} from 'module-not-existed' + + +//// [importEmptyFromModuleNotExisted.js] +"use strict"; +exports.__esModule = true; diff --git a/tests/baselines/reference/importEmptyFromModuleNotExisted.symbols b/tests/baselines/reference/importEmptyFromModuleNotExisted.symbols new file mode 100644 index 00000000000..ea0425ff26c --- /dev/null +++ b/tests/baselines/reference/importEmptyFromModuleNotExisted.symbols @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/modules/importEmptyFromModuleNotExisted.ts === +import {} from 'module-not-existed' +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/baselines/reference/importEmptyFromModuleNotExisted.types b/tests/baselines/reference/importEmptyFromModuleNotExisted.types new file mode 100644 index 00000000000..ea0425ff26c --- /dev/null +++ b/tests/baselines/reference/importEmptyFromModuleNotExisted.types @@ -0,0 +1,4 @@ +=== tests/cases/conformance/es6/modules/importEmptyFromModuleNotExisted.ts === +import {} from 'module-not-existed' +No type information for this code. +No type information for this code. \ No newline at end of file diff --git a/tests/cases/conformance/es6/modules/importEmptyFromModuleNotExisted.ts b/tests/cases/conformance/es6/modules/importEmptyFromModuleNotExisted.ts new file mode 100644 index 00000000000..36bca3e9619 --- /dev/null +++ b/tests/cases/conformance/es6/modules/importEmptyFromModuleNotExisted.ts @@ -0,0 +1 @@ +import {} from 'module-not-existed'