Merge pull request #6801 from Microsoft/weReallyNeedANewSyntaxKindForTheseExportsToMaster

Port 'export default' fix for JS files to 'master'
This commit is contained in:
Daniel Rosenwasser 2016-02-01 15:22:17 -08:00
commit 078ebb901d
6 changed files with 32 additions and 6 deletions

View file

@ -1071,8 +1071,11 @@ namespace ts {
diagnostics.push(createDiagnosticForNode(node, Diagnostics.import_can_only_be_used_in_a_ts_file));
return true;
case SyntaxKind.ExportAssignment:
diagnostics.push(createDiagnosticForNode(node, Diagnostics.export_can_only_be_used_in_a_ts_file));
return true;
if ((<ExportAssignment>node).isExportEquals) {
diagnostics.push(createDiagnosticForNode(node, Diagnostics.export_can_only_be_used_in_a_ts_file));
return true;
}
break;
case SyntaxKind.ClassDeclaration:
let classDeclaration = <ClassDeclaration>node;
if (checkModifiers(classDeclaration.modifiers) ||

View file

@ -0,0 +1,7 @@
error TS5055: Cannot write file 'tests/cases/conformance/salsa/myFile01.js' because it would overwrite input file.
!!! error TS5055: Cannot write file 'tests/cases/conformance/salsa/myFile01.js' because it would overwrite input file.
==== tests/cases/conformance/salsa/myFile01.js (0 errors) ====
export default "hello";

View file

@ -0,0 +1,7 @@
error TS5055: Cannot write file 'tests/cases/conformance/salsa/myFile02.js' because it would overwrite input file.
!!! error TS5055: Cannot write file 'tests/cases/conformance/salsa/myFile02.js' because it would overwrite input file.
==== tests/cases/conformance/salsa/myFile02.js (0 errors) ====
export default "hello";

View file

@ -1,10 +1,9 @@
tests/cases/compiler/a.js(1,22): error TS2528: A module cannot have multiple default exports.
tests/cases/compiler/a.js(3,1): error TS2528: A module cannot have multiple default exports.
tests/cases/compiler/a.js(3,1): error TS8003: 'export=' can only be used in a .ts file.
tests/cases/compiler/a.js(3,16): error TS1109: Expression expected.
==== tests/cases/compiler/a.js (4 errors) ====
==== tests/cases/compiler/a.js (3 errors) ====
export default class a {
~
!!! error TS2528: A module cannot have multiple default exports.
@ -12,7 +11,5 @@ tests/cases/compiler/a.js(3,16): error TS1109: Expression expected.
export default var a = 10;
~~~~~~~~~~~~~~
!!! error TS2528: A module cannot have multiple default exports.
~~~~~~~~~~~~~~
!!! error TS8003: 'export=' can only be used in a .ts file.
~~~
!!! error TS1109: Expression expected.

View file

@ -0,0 +1,6 @@
// @allowJS: true
// @target: es3
// @module: commonjs
// @filename: myFile01.js
export default "hello";

View file

@ -0,0 +1,6 @@
// @allowJS: true
// @target: es2015
// @module: es2015
// @filename: myFile02.js
export default "hello";