diff --git a/src/compiler/binder.ts b/src/compiler/binder.ts index fcd9b854c49..7cb321a95fa 100644 --- a/src/compiler/binder.ts +++ b/src/compiler/binder.ts @@ -2608,7 +2608,7 @@ namespace ts { return true; } const node = symbol.valueDeclaration; - if (isCallExpression(node)) { + if (node && isCallExpression(node)) { return !!getAssignedExpandoInitializer(node); } let init = !node ? undefined : diff --git a/tests/baselines/reference/propertyAssignmentOnUnresolvedImportedSymbol.errors.txt b/tests/baselines/reference/propertyAssignmentOnUnresolvedImportedSymbol.errors.txt new file mode 100644 index 00000000000..447285b8328 --- /dev/null +++ b/tests/baselines/reference/propertyAssignmentOnUnresolvedImportedSymbol.errors.txt @@ -0,0 +1,11 @@ +tests/cases/conformance/salsa/bug28576.js(1,15): error TS2307: Cannot find module 'arglebaz'. + + +==== tests/cases/conformance/salsa/bug28576.js (1 errors) ==== + import x from 'arglebaz' + ~~~~~~~~~~ +!!! error TS2307: Cannot find module 'arglebaz'. + { + x.bar = 1 + } + \ No newline at end of file diff --git a/tests/baselines/reference/propertyAssignmentOnUnresolvedImportedSymbol.symbols b/tests/baselines/reference/propertyAssignmentOnUnresolvedImportedSymbol.symbols new file mode 100644 index 00000000000..3a190cbaa86 --- /dev/null +++ b/tests/baselines/reference/propertyAssignmentOnUnresolvedImportedSymbol.symbols @@ -0,0 +1,8 @@ +=== tests/cases/conformance/salsa/bug28576.js === +import x from 'arglebaz' +>x : Symbol(x, Decl(bug28576.js, 0, 6)) +{ + x.bar = 1 +>x : Symbol(x, Decl(bug28576.js, 0, 6)) +} + diff --git a/tests/baselines/reference/propertyAssignmentOnUnresolvedImportedSymbol.types b/tests/baselines/reference/propertyAssignmentOnUnresolvedImportedSymbol.types new file mode 100644 index 00000000000..5ff245f8475 --- /dev/null +++ b/tests/baselines/reference/propertyAssignmentOnUnresolvedImportedSymbol.types @@ -0,0 +1,12 @@ +=== tests/cases/conformance/salsa/bug28576.js === +import x from 'arglebaz' +>x : any +{ + x.bar = 1 +>x.bar = 1 : 1 +>x.bar : any +>x : any +>bar : any +>1 : 1 +} + diff --git a/tests/cases/conformance/salsa/propertyAssignmentOnUnresolvedImportedSymbol.ts b/tests/cases/conformance/salsa/propertyAssignmentOnUnresolvedImportedSymbol.ts new file mode 100644 index 00000000000..a879367e06f --- /dev/null +++ b/tests/cases/conformance/salsa/propertyAssignmentOnUnresolvedImportedSymbol.ts @@ -0,0 +1,8 @@ +// @allowJs: true +// @checkJs: true +// @noEmit: true +// @Filename: bug28576.js +import x from 'arglebaz' +{ + x.bar = 1 +}