From dd0a2e0340dd83d7bc3d19ec9f7be3bddf8de76e Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Mon, 1 Feb 2016 13:21:02 -0800 Subject: [PATCH 1/4] Added tests. --- tests/cases/conformance/salsa/exportDefaultInJsFile01.ts | 6 ++++++ tests/cases/conformance/salsa/exportDefaultInJsFile02.ts | 6 ++++++ 2 files changed, 12 insertions(+) create mode 100644 tests/cases/conformance/salsa/exportDefaultInJsFile01.ts create mode 100644 tests/cases/conformance/salsa/exportDefaultInJsFile02.ts diff --git a/tests/cases/conformance/salsa/exportDefaultInJsFile01.ts b/tests/cases/conformance/salsa/exportDefaultInJsFile01.ts new file mode 100644 index 0000000000..bf2f3a4e99 --- /dev/null +++ b/tests/cases/conformance/salsa/exportDefaultInJsFile01.ts @@ -0,0 +1,6 @@ +// @allowJS: true +// @target: es3 +// @module: commonjs + +// @filename: myFile01.js +export default "hello"; \ No newline at end of file diff --git a/tests/cases/conformance/salsa/exportDefaultInJsFile02.ts b/tests/cases/conformance/salsa/exportDefaultInJsFile02.ts new file mode 100644 index 0000000000..1075b135f1 --- /dev/null +++ b/tests/cases/conformance/salsa/exportDefaultInJsFile02.ts @@ -0,0 +1,6 @@ +// @allowJS: true +// @target: es2015 +// @module: es2015 + +// @filename: myFile02.js +export default "hello"; \ No newline at end of file From bf4b63d3ba0e318ada17ae05ccdda5a007c11405 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Mon, 1 Feb 2016 13:28:58 -0800 Subject: [PATCH 2/4] Only error on 'export =' declarations. --- src/compiler/program.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 8ec821cb66..9a06a49370 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -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 ((node).isExportEquals) { + diagnostics.push(createDiagnosticForNode(node, Diagnostics.export_can_only_be_used_in_a_ts_file)); + return true; + } + break; case SyntaxKind.ClassDeclaration: let classDeclaration = node; if (checkModifiers(classDeclaration.modifiers) || From 25d21406263452517f949c796bc11b62b6c0b176 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Mon, 1 Feb 2016 13:29:49 -0800 Subject: [PATCH 3/4] Accepted baselines. --- .../baselines/reference/exportDefaultInJsFile01.errors.txt | 7 +++++++ .../baselines/reference/exportDefaultInJsFile02.errors.txt | 7 +++++++ 2 files changed, 14 insertions(+) create mode 100644 tests/baselines/reference/exportDefaultInJsFile01.errors.txt create mode 100644 tests/baselines/reference/exportDefaultInJsFile02.errors.txt diff --git a/tests/baselines/reference/exportDefaultInJsFile01.errors.txt b/tests/baselines/reference/exportDefaultInJsFile01.errors.txt new file mode 100644 index 0000000000..34035e1e14 --- /dev/null +++ b/tests/baselines/reference/exportDefaultInJsFile01.errors.txt @@ -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"; \ No newline at end of file diff --git a/tests/baselines/reference/exportDefaultInJsFile02.errors.txt b/tests/baselines/reference/exportDefaultInJsFile02.errors.txt new file mode 100644 index 0000000000..5e17306e06 --- /dev/null +++ b/tests/baselines/reference/exportDefaultInJsFile02.errors.txt @@ -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"; \ No newline at end of file From 73d9a941c8a848f40cd5b5216e8cbee9b985d11f Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Mon, 1 Feb 2016 14:15:52 -0800 Subject: [PATCH 4/4] Accepted that other baseline. --- .../jsFileCompilationBindMultipleDefaultExports.errors.txt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tests/baselines/reference/jsFileCompilationBindMultipleDefaultExports.errors.txt b/tests/baselines/reference/jsFileCompilationBindMultipleDefaultExports.errors.txt index 733f66922a..05fecf03d3 100644 --- a/tests/baselines/reference/jsFileCompilationBindMultipleDefaultExports.errors.txt +++ b/tests/baselines/reference/jsFileCompilationBindMultipleDefaultExports.errors.txt @@ -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. \ No newline at end of file