From b38a81bc736ebdf06b7982ee044b507b18cc2ac3 Mon Sep 17 00:00:00 2001 From: Sheetal Nandi Date: Mon, 12 Oct 2015 14:31:44 -0700 Subject: [PATCH] Emit enabled for JS files --- src/compiler/declarationEmitter.ts | 42 +++++++------------ src/compiler/diagnosticMessages.json | 4 -- src/compiler/emitter.ts | 3 +- src/compiler/utilities.ts | 6 +-- ...tionAmbientVarDeclarationSyntax.errors.txt | 2 + ...sFileCompilationDecoratorSyntax.errors.txt | 2 + ...CompilationEmitBlockedCorrectly.errors.txt | 2 + .../jsFileCompilationEmitDeclarations.js | 3 ++ ...ileCompilationEmitTrippleSlashReference.js | 7 ++++ .../jsFileCompilationEnumSyntax.errors.txt | 2 + ...onsWithJsFileReferenceWithNoOut.errors.txt | 7 ++-- ...eclarationsWithJsFileReferenceWithNoOut.js | 5 +++ ...tionsWithJsFileReferenceWithOut.errors.txt | 18 -------- ...nDeclarationsWithJsFileReferenceWithOut.js | 9 ++++ ...rationsWithJsFileReferenceWithOut.symbols} | 2 +- ...larationsWithJsFileReferenceWithOut.types} | 2 +- ...mpilationExportAssignmentSyntax.errors.txt | 2 + ...tionHeritageClauseSyntaxOfClass.errors.txt | 2 + ...leCompilationImportEqualsSyntax.errors.txt | 2 + ...sFileCompilationInterfaceSyntax.errors.txt | 2 + .../jsFileCompilationModuleSyntax.errors.txt | 2 + ...onsWithJsFileReferenceWithNoOut.errors.txt | 17 ++++++++ ...tDeclarationsWithJsFileReferenceWithOut.js | 2 + ...ileCompilationOptionalParameter.errors.txt | 2 + ...ompilationPropertySyntaxOfClass.errors.txt | 2 + ...lationPublicMethodSyntaxOfClass.errors.txt | 2 + ...pilationPublicParameterModifier.errors.txt | 2 + .../jsFileCompilationRestParameter.js | 1 + ...ationReturnTypeSyntaxOfFunction.errors.txt | 2 + .../jsFileCompilationSyntaxError.errors.txt | 2 + ...sFileCompilationTypeAliasSyntax.errors.txt | 2 + ...ilationTypeArgumentSyntaxOfCall.errors.txt | 2 + ...jsFileCompilationTypeAssertions.errors.txt | 2 + ...sFileCompilationTypeOfParameter.errors.txt | 2 + ...ationTypeParameterSyntaxOfClass.errors.txt | 2 + ...onTypeParameterSyntaxOfFunction.errors.txt | 2 + ...sFileCompilationTypeSyntaxOfVar.errors.txt | 2 + ...lationWithJsEmitPathSameAsInput.errors.txt | 2 + .../reference/jsFileCompilationWithOut.js | 2 + .../jsFileCompilationWithoutOut.errors.txt | 12 ++++++ .../jsFileCompilationWithoutOut.symbols | 10 ----- .../jsFileCompilationWithoutOut.types | 10 ----- .../amd/test.d.ts | 1 + .../amd/test.js | 1 + .../node/test.d.ts | 1 + .../node/test.js | 1 + .../amd/test.d.ts | 1 + .../amd/test.js | 1 + .../node/test.d.ts | 1 + .../node/test.js | 1 + 50 files changed, 136 insertions(+), 80 deletions(-) delete mode 100644 tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.errors.txt rename tests/baselines/reference/{jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.symbols => jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.symbols} (77%) rename tests/baselines/reference/{jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.types => jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.types} (72%) create mode 100644 tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.errors.txt create mode 100644 tests/baselines/reference/jsFileCompilationWithoutOut.errors.txt delete mode 100644 tests/baselines/reference/jsFileCompilationWithoutOut.symbols delete mode 100644 tests/baselines/reference/jsFileCompilationWithoutOut.types diff --git a/src/compiler/declarationEmitter.ts b/src/compiler/declarationEmitter.ts index 9534b22f47..76c3175dcd 100644 --- a/src/compiler/declarationEmitter.ts +++ b/src/compiler/declarationEmitter.ts @@ -69,22 +69,16 @@ namespace ts { if (!compilerOptions.noResolve) { let addedGlobalFileReference = false; forEach(root.referencedFiles, fileReference => { - if (isJavaScript(fileReference.fileName)) { - reportedDeclarationError = true; - diagnostics.push(createFileDiagnostic(root, fileReference.pos, fileReference.end - fileReference.pos, Diagnostics.js_file_cannot_be_referenced_in_ts_file_when_emitting_declarations)); - } - else { - let referencedFile = tryResolveScriptReference(host, root, fileReference); + let referencedFile = tryResolveScriptReference(host, root, fileReference); - // All the references that are not going to be part of same file - if (referencedFile && ((referencedFile.flags & NodeFlags.DeclarationFile) || // This is a declare file reference - shouldEmitToOwnFile(referencedFile, compilerOptions) || // This is referenced file is emitting its own js file - !addedGlobalFileReference)) { // Or the global out file corresponding to this reference was not added + // All the references that are not going to be part of same file + if (referencedFile && ((referencedFile.flags & NodeFlags.DeclarationFile) || // This is a declare file reference + shouldEmitToOwnFile(referencedFile, compilerOptions) || // This is referenced file is emitting its own js file + !addedGlobalFileReference)) { // Or the global out file corresponding to this reference was not added - writeReferencePath(referencedFile); - if (!isExternalModuleOrDeclarationFile(referencedFile)) { - addedGlobalFileReference = true; - } + writeReferencePath(referencedFile); + if (!isExternalModuleOrDeclarationFile(referencedFile)) { + addedGlobalFileReference = true; } } }); @@ -111,24 +105,18 @@ namespace ts { // Emit references corresponding to this file let emittedReferencedFiles: SourceFile[] = []; forEach(host.getSourceFiles(), sourceFile => { - if (!isExternalModuleOrDeclarationFile(sourceFile) && !isJavaScript(sourceFile.fileName)) { + if (!isExternalModuleOrDeclarationFile(sourceFile)) { // Check what references need to be added if (!compilerOptions.noResolve) { forEach(sourceFile.referencedFiles, fileReference => { - if (isJavaScript(fileReference.fileName)) { - reportedDeclarationError = true; - diagnostics.push(createFileDiagnostic(sourceFile, fileReference.pos, fileReference.end - fileReference.pos, Diagnostics.js_file_cannot_be_referenced_in_ts_file_when_emitting_declarations)); - } - else { - let referencedFile = tryResolveScriptReference(host, sourceFile, fileReference); + let referencedFile = tryResolveScriptReference(host, sourceFile, fileReference); - // If the reference file is a declaration file or an external module, emit that reference - if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && - !contains(emittedReferencedFiles, referencedFile))) { // If the file reference was not already emitted + // If the reference file is a declaration file or an external module, emit that reference + if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && + !contains(emittedReferencedFiles, referencedFile))) { // If the file reference was not already emitted - writeReferencePath(referencedFile); - emittedReferencedFiles.push(referencedFile); - } + writeReferencePath(referencedFile); + emittedReferencedFiles.push(referencedFile); } }); } diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 00e13ba634..d1beacfeaa 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -2465,10 +2465,6 @@ "category": "Error", "code": 8017 }, - ".js file cannot be referenced in .ts file when emitting declarations.": { - "category": "Error", - "code": 8018 - }, "Only identifiers/qualified-names with optional type arguments are currently supported in a class 'extends' clauses.": { "category": "Error", diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index ea2fd36889..ff60a5927b 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -342,7 +342,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi emitFile(getEmitFileNames(targetSourceFile, host), targetSourceFile); } else if (!isDeclarationFile(targetSourceFile) && - !isJavaScript(targetSourceFile.fileName) && (compilerOptions.outFile || compilerOptions.out)) { emitFile(getBundledEmitFileNames(compilerOptions)); } @@ -462,7 +461,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, Promi } else { forEach(host.getSourceFiles(), sourceFile => { - if (!isJavaScript(sourceFile.fileName) && !isExternalModuleOrDeclarationFile(sourceFile)) { + if (!isExternalModuleOrDeclarationFile(sourceFile)) { emitSourceFile(sourceFile); } }); diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index f8a1af6f5c..f4dd2c02c8 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -1769,7 +1769,7 @@ namespace ts { } export function getEmitFileNames(sourceFile: SourceFile, host: EmitHost) { - if (!isDeclarationFile(sourceFile) && !isJavaScript(sourceFile.fileName)) { + if (!isDeclarationFile(sourceFile)) { let options = host.getCompilerOptions(); let jsFilePath: string; if (shouldEmitToOwnFile(sourceFile, options)) { @@ -1835,12 +1835,12 @@ namespace ts { } export function shouldEmitToOwnFile(sourceFile: SourceFile, compilerOptions: CompilerOptions): boolean { - if (!isDeclarationFile(sourceFile) && !isJavaScript(sourceFile.fileName)) { + if (!isDeclarationFile(sourceFile)) { if ((isExternalModule(sourceFile) || !(compilerOptions.outFile || compilerOptions.out))) { // 1. in-browser single file compilation scenario // 2. non supported extension file return compilerOptions.isolatedModules || - forEach(supportedTypeScriptExtensions, extension => fileExtensionIs(sourceFile.fileName, extension)); + forEach(getSupportedExtensions(compilerOptions), extension => fileExtensionIs(sourceFile.fileName, extension)); } return false; } diff --git a/tests/baselines/reference/jsFileCompilationAmbientVarDeclarationSyntax.errors.txt b/tests/baselines/reference/jsFileCompilationAmbientVarDeclarationSyntax.errors.txt index a210385d99..b0732afea7 100644 --- a/tests/baselines/reference/jsFileCompilationAmbientVarDeclarationSyntax.errors.txt +++ b/tests/baselines/reference/jsFileCompilationAmbientVarDeclarationSyntax.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,1): error TS8009: 'declare' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== declare var v; ~~~~~~~ diff --git a/tests/baselines/reference/jsFileCompilationDecoratorSyntax.errors.txt b/tests/baselines/reference/jsFileCompilationDecoratorSyntax.errors.txt index 6017ddc7a1..b7fec2eefc 100644 --- a/tests/baselines/reference/jsFileCompilationDecoratorSyntax.errors.txt +++ b/tests/baselines/reference/jsFileCompilationDecoratorSyntax.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,1): error TS8017: 'decorators' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== @internal class C { } ~~~~~~~~~ diff --git a/tests/baselines/reference/jsFileCompilationEmitBlockedCorrectly.errors.txt b/tests/baselines/reference/jsFileCompilationEmitBlockedCorrectly.errors.txt index eb9e11e574..5861e73f49 100644 --- a/tests/baselines/reference/jsFileCompilationEmitBlockedCorrectly.errors.txt +++ b/tests/baselines/reference/jsFileCompilationEmitBlockedCorrectly.errors.txt @@ -1,7 +1,9 @@ error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. +error TS5056: Cannot write file 'tests/cases/compiler/a.js' since one or more input files would emit into it. !!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. +!!! error TS5056: Cannot write file 'tests/cases/compiler/a.js' since one or more input files would emit into it. ==== tests/cases/compiler/a.ts (0 errors) ==== class c { } diff --git a/tests/baselines/reference/jsFileCompilationEmitDeclarations.js b/tests/baselines/reference/jsFileCompilationEmitDeclarations.js index 4c9f6802fd..c6711e4e85 100644 --- a/tests/baselines/reference/jsFileCompilationEmitDeclarations.js +++ b/tests/baselines/reference/jsFileCompilationEmitDeclarations.js @@ -15,8 +15,11 @@ var c = (function () { } return c; })(); +function foo() { +} //// [out.d.ts] declare class c { } +declare function foo(): void; diff --git a/tests/baselines/reference/jsFileCompilationEmitTrippleSlashReference.js b/tests/baselines/reference/jsFileCompilationEmitTrippleSlashReference.js index 33077f3038..04f36213b1 100644 --- a/tests/baselines/reference/jsFileCompilationEmitTrippleSlashReference.js +++ b/tests/baselines/reference/jsFileCompilationEmitTrippleSlashReference.js @@ -19,8 +19,15 @@ var c = (function () { } return c; })(); +function bar() { +} +/// +function foo() { +} //// [out.d.ts] declare class c { } +declare function bar(): void; +declare function foo(): void; diff --git a/tests/baselines/reference/jsFileCompilationEnumSyntax.errors.txt b/tests/baselines/reference/jsFileCompilationEnumSyntax.errors.txt index 6b9d97e55b..e9fd9cc31b 100644 --- a/tests/baselines/reference/jsFileCompilationEnumSyntax.errors.txt +++ b/tests/baselines/reference/jsFileCompilationEnumSyntax.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,6): error TS8015: 'enum declarations' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== enum E { } ~ diff --git a/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.errors.txt b/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.errors.txt index 1d6ddb3ed3..9be6b3f1cc 100644 --- a/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.errors.txt +++ b/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.errors.txt @@ -1,14 +1,13 @@ -tests/cases/compiler/b.ts(1,1): error TS8018: .js file cannot be referenced in .ts file when emitting declarations. +error TS5055: Cannot write file 'tests/cases/compiler/c.js' which is one of the input files. +!!! error TS5055: Cannot write file 'tests/cases/compiler/c.js' which is one of the input files. ==== tests/cases/compiler/a.ts (0 errors) ==== class c { } -==== tests/cases/compiler/b.ts (1 errors) ==== +==== tests/cases/compiler/b.ts (0 errors) ==== /// - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS8018: .js file cannot be referenced in .ts file when emitting declarations. // error on above reference path when emitting declarations function foo() { } diff --git a/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js b/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js index 6bd76de881..07d6fb812c 100644 --- a/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js +++ b/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithNoOut.js @@ -30,3 +30,8 @@ function foo() { //// [a.d.ts] declare class c { } +//// [c.d.ts] +declare function bar(): void; +//// [b.d.ts] +/// +declare function foo(): void; diff --git a/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.errors.txt b/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.errors.txt deleted file mode 100644 index a658130e10..0000000000 --- a/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.errors.txt +++ /dev/null @@ -1,18 +0,0 @@ -tests/cases/compiler/b.ts(1,1): error TS8018: .js file cannot be referenced in .ts file when emitting declarations. - - -==== tests/cases/compiler/a.ts (0 errors) ==== - class c { - } - -==== tests/cases/compiler/b.ts (1 errors) ==== - /// - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -!!! error TS8018: .js file cannot be referenced in .ts file when emitting declarations. - // error on above reference when emitting declarations - function foo() { - } - -==== tests/cases/compiler/c.js (0 errors) ==== - function bar() { - } \ No newline at end of file diff --git a/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.js b/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.js index 99dd961db4..0d1939d720 100644 --- a/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.js +++ b/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.js @@ -20,7 +20,16 @@ var c = (function () { } return c; })(); +function bar() { +} /// // error on above reference when emitting declarations function foo() { } + + +//// [out.d.ts] +declare class c { +} +declare function bar(): void; +declare function foo(): void; diff --git a/tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.symbols b/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.symbols similarity index 77% rename from tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.symbols rename to tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.symbols index 06b80b144a..544fe53f42 100644 --- a/tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.symbols +++ b/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.symbols @@ -5,7 +5,7 @@ class c { === tests/cases/compiler/b.ts === /// -// no error on above reference path since not emitting declarations +// error on above reference when emitting declarations function foo() { >foo : Symbol(foo, Decl(b.ts, 0, 0)) } diff --git a/tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.types b/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.types similarity index 72% rename from tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.types rename to tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.types index ea9b48061c..8aafb9f61d 100644 --- a/tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.types +++ b/tests/baselines/reference/jsFileCompilationErrorOnDeclarationsWithJsFileReferenceWithOut.types @@ -5,7 +5,7 @@ class c { === tests/cases/compiler/b.ts === /// -// no error on above reference path since not emitting declarations +// error on above reference when emitting declarations function foo() { >foo : () => void } diff --git a/tests/baselines/reference/jsFileCompilationExportAssignmentSyntax.errors.txt b/tests/baselines/reference/jsFileCompilationExportAssignmentSyntax.errors.txt index a349e2bca1..27371222dc 100644 --- a/tests/baselines/reference/jsFileCompilationExportAssignmentSyntax.errors.txt +++ b/tests/baselines/reference/jsFileCompilationExportAssignmentSyntax.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,1): error TS8003: 'export=' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== export = b; ~~~~~~~~~~~ diff --git a/tests/baselines/reference/jsFileCompilationHeritageClauseSyntaxOfClass.errors.txt b/tests/baselines/reference/jsFileCompilationHeritageClauseSyntaxOfClass.errors.txt index df014047b3..c7d080404a 100644 --- a/tests/baselines/reference/jsFileCompilationHeritageClauseSyntaxOfClass.errors.txt +++ b/tests/baselines/reference/jsFileCompilationHeritageClauseSyntaxOfClass.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,9): error TS8005: 'implements clauses' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== class C implements D { } ~~~~~~~~~~~~ diff --git a/tests/baselines/reference/jsFileCompilationImportEqualsSyntax.errors.txt b/tests/baselines/reference/jsFileCompilationImportEqualsSyntax.errors.txt index e53bf2ac86..36ab7aab18 100644 --- a/tests/baselines/reference/jsFileCompilationImportEqualsSyntax.errors.txt +++ b/tests/baselines/reference/jsFileCompilationImportEqualsSyntax.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,1): error TS8002: 'import ... =' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== import a = b; ~~~~~~~~~~~~~ diff --git a/tests/baselines/reference/jsFileCompilationInterfaceSyntax.errors.txt b/tests/baselines/reference/jsFileCompilationInterfaceSyntax.errors.txt index c46c3c05b3..3089aeecb4 100644 --- a/tests/baselines/reference/jsFileCompilationInterfaceSyntax.errors.txt +++ b/tests/baselines/reference/jsFileCompilationInterfaceSyntax.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,11): error TS8006: 'interface declarations' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== interface I { } ~ diff --git a/tests/baselines/reference/jsFileCompilationModuleSyntax.errors.txt b/tests/baselines/reference/jsFileCompilationModuleSyntax.errors.txt index 8748064cc9..d85819b858 100644 --- a/tests/baselines/reference/jsFileCompilationModuleSyntax.errors.txt +++ b/tests/baselines/reference/jsFileCompilationModuleSyntax.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,8): error TS8007: 'module declarations' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== module M { } ~ diff --git a/tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.errors.txt b/tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.errors.txt new file mode 100644 index 0000000000..06bfd61c7a --- /dev/null +++ b/tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithNoOut.errors.txt @@ -0,0 +1,17 @@ +error TS5055: Cannot write file 'tests/cases/compiler/c.js' which is one of the input files. + + +!!! error TS5055: Cannot write file 'tests/cases/compiler/c.js' which is one of the input files. +==== tests/cases/compiler/a.ts (0 errors) ==== + class c { + } + +==== tests/cases/compiler/b.ts (0 errors) ==== + /// + // no error on above reference path since not emitting declarations + function foo() { + } + +==== tests/cases/compiler/c.js (0 errors) ==== + function bar() { + } \ No newline at end of file diff --git a/tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithOut.js b/tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithOut.js index 5541225344..fae4936b6c 100644 --- a/tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithOut.js +++ b/tests/baselines/reference/jsFileCompilationNoErrorWithoutDeclarationsWithJsFileReferenceWithOut.js @@ -20,6 +20,8 @@ var c = (function () { } return c; })(); +function bar() { +} /// //no error on above reference since not emitting declarations function foo() { diff --git a/tests/baselines/reference/jsFileCompilationOptionalParameter.errors.txt b/tests/baselines/reference/jsFileCompilationOptionalParameter.errors.txt index 68b131d39f..6d9e3c5919 100644 --- a/tests/baselines/reference/jsFileCompilationOptionalParameter.errors.txt +++ b/tests/baselines/reference/jsFileCompilationOptionalParameter.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,13): error TS8009: '?' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== function F(p?) { } ~ diff --git a/tests/baselines/reference/jsFileCompilationPropertySyntaxOfClass.errors.txt b/tests/baselines/reference/jsFileCompilationPropertySyntaxOfClass.errors.txt index 0ecf6f3c66..5a35e68bce 100644 --- a/tests/baselines/reference/jsFileCompilationPropertySyntaxOfClass.errors.txt +++ b/tests/baselines/reference/jsFileCompilationPropertySyntaxOfClass.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,11): error TS8014: 'property declarations' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== class C { v } ~ diff --git a/tests/baselines/reference/jsFileCompilationPublicMethodSyntaxOfClass.errors.txt b/tests/baselines/reference/jsFileCompilationPublicMethodSyntaxOfClass.errors.txt index 907775c7be..a6d47e5fbe 100644 --- a/tests/baselines/reference/jsFileCompilationPublicMethodSyntaxOfClass.errors.txt +++ b/tests/baselines/reference/jsFileCompilationPublicMethodSyntaxOfClass.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(2,5): error TS8009: 'public' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== class C { public foo() { diff --git a/tests/baselines/reference/jsFileCompilationPublicParameterModifier.errors.txt b/tests/baselines/reference/jsFileCompilationPublicParameterModifier.errors.txt index e5072278f4..fa3e0e34a7 100644 --- a/tests/baselines/reference/jsFileCompilationPublicParameterModifier.errors.txt +++ b/tests/baselines/reference/jsFileCompilationPublicParameterModifier.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,23): error TS8012: 'parameter modifiers' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== class C { constructor(public x) { }} ~~~~~~ diff --git a/tests/baselines/reference/jsFileCompilationRestParameter.js b/tests/baselines/reference/jsFileCompilationRestParameter.js index d28299c543..bcba97af02 100644 --- a/tests/baselines/reference/jsFileCompilationRestParameter.js +++ b/tests/baselines/reference/jsFileCompilationRestParameter.js @@ -2,3 +2,4 @@ function foo(...a) { } //// [b.js] +function foo(...a) { } diff --git a/tests/baselines/reference/jsFileCompilationReturnTypeSyntaxOfFunction.errors.txt b/tests/baselines/reference/jsFileCompilationReturnTypeSyntaxOfFunction.errors.txt index 50746dcfc8..8b83a9d1f9 100644 --- a/tests/baselines/reference/jsFileCompilationReturnTypeSyntaxOfFunction.errors.txt +++ b/tests/baselines/reference/jsFileCompilationReturnTypeSyntaxOfFunction.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,15): error TS8010: 'types' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== function F(): number { } ~~~~~~ diff --git a/tests/baselines/reference/jsFileCompilationSyntaxError.errors.txt b/tests/baselines/reference/jsFileCompilationSyntaxError.errors.txt index 1ca6e25178..b06375e8a6 100644 --- a/tests/baselines/reference/jsFileCompilationSyntaxError.errors.txt +++ b/tests/baselines/reference/jsFileCompilationSyntaxError.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(3,6): error TS1223: 'type' tag already specified. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== /** * @type {number} diff --git a/tests/baselines/reference/jsFileCompilationTypeAliasSyntax.errors.txt b/tests/baselines/reference/jsFileCompilationTypeAliasSyntax.errors.txt index 6af5751ea8..a0724e452b 100644 --- a/tests/baselines/reference/jsFileCompilationTypeAliasSyntax.errors.txt +++ b/tests/baselines/reference/jsFileCompilationTypeAliasSyntax.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,1): error TS8008: 'type aliases' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== type a = b; ~~~~~~~~~~~ diff --git a/tests/baselines/reference/jsFileCompilationTypeArgumentSyntaxOfCall.errors.txt b/tests/baselines/reference/jsFileCompilationTypeArgumentSyntaxOfCall.errors.txt index cade211aa6..acefc2ff56 100644 --- a/tests/baselines/reference/jsFileCompilationTypeArgumentSyntaxOfCall.errors.txt +++ b/tests/baselines/reference/jsFileCompilationTypeArgumentSyntaxOfCall.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,5): error TS8011: 'type arguments' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== Foo(); ~~~~~~ diff --git a/tests/baselines/reference/jsFileCompilationTypeAssertions.errors.txt b/tests/baselines/reference/jsFileCompilationTypeAssertions.errors.txt index 6d4ef23dcc..669e83688c 100644 --- a/tests/baselines/reference/jsFileCompilationTypeAssertions.errors.txt +++ b/tests/baselines/reference/jsFileCompilationTypeAssertions.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,27): error TS17002: Expected corresponding JSX closing tag for 'string'. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== var v = undefined; diff --git a/tests/baselines/reference/jsFileCompilationTypeOfParameter.errors.txt b/tests/baselines/reference/jsFileCompilationTypeOfParameter.errors.txt index ae3fd23c6e..69fa625194 100644 --- a/tests/baselines/reference/jsFileCompilationTypeOfParameter.errors.txt +++ b/tests/baselines/reference/jsFileCompilationTypeOfParameter.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,15): error TS8010: 'types' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== function F(a: number) { } ~~~~~~ diff --git a/tests/baselines/reference/jsFileCompilationTypeParameterSyntaxOfClass.errors.txt b/tests/baselines/reference/jsFileCompilationTypeParameterSyntaxOfClass.errors.txt index 708ff37813..f279896c4e 100644 --- a/tests/baselines/reference/jsFileCompilationTypeParameterSyntaxOfClass.errors.txt +++ b/tests/baselines/reference/jsFileCompilationTypeParameterSyntaxOfClass.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,9): error TS8004: 'type parameter declarations' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== class C { } ~ diff --git a/tests/baselines/reference/jsFileCompilationTypeParameterSyntaxOfFunction.errors.txt b/tests/baselines/reference/jsFileCompilationTypeParameterSyntaxOfFunction.errors.txt index 391e8f476d..9b056bcae5 100644 --- a/tests/baselines/reference/jsFileCompilationTypeParameterSyntaxOfFunction.errors.txt +++ b/tests/baselines/reference/jsFileCompilationTypeParameterSyntaxOfFunction.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,12): error TS8004: 'type parameter declarations' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== function F() { } ~ diff --git a/tests/baselines/reference/jsFileCompilationTypeSyntaxOfVar.errors.txt b/tests/baselines/reference/jsFileCompilationTypeSyntaxOfVar.errors.txt index a4486a5d49..080cb580bf 100644 --- a/tests/baselines/reference/jsFileCompilationTypeSyntaxOfVar.errors.txt +++ b/tests/baselines/reference/jsFileCompilationTypeSyntaxOfVar.errors.txt @@ -1,6 +1,8 @@ +error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. tests/cases/compiler/a.js(1,8): error TS8010: 'types' can only be used in a .ts file. +!!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. ==== tests/cases/compiler/a.js (1 errors) ==== var v: () => number; ~~~~~~~~~~~~ diff --git a/tests/baselines/reference/jsFileCompilationWithJsEmitPathSameAsInput.errors.txt b/tests/baselines/reference/jsFileCompilationWithJsEmitPathSameAsInput.errors.txt index 09e07a67bf..134c95dee1 100644 --- a/tests/baselines/reference/jsFileCompilationWithJsEmitPathSameAsInput.errors.txt +++ b/tests/baselines/reference/jsFileCompilationWithJsEmitPathSameAsInput.errors.txt @@ -1,7 +1,9 @@ error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. +error TS5056: Cannot write file 'tests/cases/compiler/a.js' since one or more input files would emit into it. !!! error TS5055: Cannot write file 'tests/cases/compiler/a.js' which is one of the input files. +!!! error TS5056: Cannot write file 'tests/cases/compiler/a.js' since one or more input files would emit into it. ==== tests/cases/compiler/a.ts (0 errors) ==== class c { } diff --git a/tests/baselines/reference/jsFileCompilationWithOut.js b/tests/baselines/reference/jsFileCompilationWithOut.js index 7bab7b973a..32d0261061 100644 --- a/tests/baselines/reference/jsFileCompilationWithOut.js +++ b/tests/baselines/reference/jsFileCompilationWithOut.js @@ -15,3 +15,5 @@ var c = (function () { } return c; })(); +function foo() { +} diff --git a/tests/baselines/reference/jsFileCompilationWithoutOut.errors.txt b/tests/baselines/reference/jsFileCompilationWithoutOut.errors.txt new file mode 100644 index 0000000000..3531296e01 --- /dev/null +++ b/tests/baselines/reference/jsFileCompilationWithoutOut.errors.txt @@ -0,0 +1,12 @@ +error TS5055: Cannot write file 'tests/cases/compiler/b.js' which is one of the input files. + + +!!! error TS5055: Cannot write file 'tests/cases/compiler/b.js' which is one of the input files. +==== tests/cases/compiler/a.ts (0 errors) ==== + class c { + } + +==== tests/cases/compiler/b.js (0 errors) ==== + function foo() { + } + \ No newline at end of file diff --git a/tests/baselines/reference/jsFileCompilationWithoutOut.symbols b/tests/baselines/reference/jsFileCompilationWithoutOut.symbols deleted file mode 100644 index 5260b8d6cf..0000000000 --- a/tests/baselines/reference/jsFileCompilationWithoutOut.symbols +++ /dev/null @@ -1,10 +0,0 @@ -=== tests/cases/compiler/a.ts === -class c { ->c : Symbol(c, Decl(a.ts, 0, 0)) -} - -=== tests/cases/compiler/b.js === -function foo() { ->foo : Symbol(foo, Decl(b.js, 0, 0)) -} - diff --git a/tests/baselines/reference/jsFileCompilationWithoutOut.types b/tests/baselines/reference/jsFileCompilationWithoutOut.types deleted file mode 100644 index dce83eeb8e..0000000000 --- a/tests/baselines/reference/jsFileCompilationWithoutOut.types +++ /dev/null @@ -1,10 +0,0 @@ -=== tests/cases/compiler/a.ts === -class c { ->c : c -} - -=== tests/cases/compiler/b.js === -function foo() { ->foo : () => void -} - diff --git a/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/amd/test.d.ts b/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/amd/test.d.ts index 4c0b898931..bbae04a30b 100644 --- a/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/amd/test.d.ts +++ b/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/amd/test.d.ts @@ -1 +1,2 @@ declare var test: number; +declare var test2: number; diff --git a/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/amd/test.js b/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/amd/test.js index e757934f20..f211570346 100644 --- a/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/amd/test.js +++ b/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/amd/test.js @@ -1 +1,2 @@ var test = 10; +var test2 = 10; // Should get compiled diff --git a/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/node/test.d.ts b/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/node/test.d.ts index 4c0b898931..bbae04a30b 100644 --- a/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/node/test.d.ts +++ b/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/node/test.d.ts @@ -1 +1,2 @@ declare var test: number; +declare var test2: number; diff --git a/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/node/test.js b/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/node/test.js index e757934f20..f211570346 100644 --- a/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/node/test.js +++ b/tests/baselines/reference/project/jsFileCompilationDifferentNamesNotSpecifiedWithJsExtensions/node/test.js @@ -1 +1,2 @@ var test = 10; +var test2 = 10; // Should get compiled diff --git a/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/amd/test.d.ts b/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/amd/test.d.ts index 4c0b898931..bbae04a30b 100644 --- a/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/amd/test.d.ts +++ b/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/amd/test.d.ts @@ -1 +1,2 @@ declare var test: number; +declare var test2: number; diff --git a/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/amd/test.js b/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/amd/test.js index e757934f20..f211570346 100644 --- a/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/amd/test.js +++ b/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/amd/test.js @@ -1 +1,2 @@ var test = 10; +var test2 = 10; // Should get compiled diff --git a/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/node/test.d.ts b/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/node/test.d.ts index 4c0b898931..bbae04a30b 100644 --- a/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/node/test.d.ts +++ b/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/node/test.d.ts @@ -1 +1,2 @@ declare var test: number; +declare var test2: number; diff --git a/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/node/test.js b/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/node/test.js index e757934f20..f211570346 100644 --- a/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/node/test.js +++ b/tests/baselines/reference/project/jsFileCompilationDifferentNamesSpecifiedWithJsExtensions/node/test.js @@ -1 +1,2 @@ var test = 10; +var test2 = 10; // Should get compiled