From 66a363f449dd565a43fb78363612ff007073ebc4 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Thu, 5 Feb 2015 15:50:18 -0800 Subject: [PATCH] Simplify the API for emitting and reporting exit statuses to callers. --- src/compiler/emitter.ts | 16 +---- src/compiler/program.ts | 8 +-- src/compiler/tsc.ts | 55 ++++++++++------- src/compiler/types.ts | 30 ++++------ src/harness/fourslash.ts | 5 +- src/services/services.ts | 4 +- .../baselines/reference/APISample_compile.js | 25 ++++---- .../reference/APISample_compile.types | 58 ++++++++---------- tests/baselines/reference/APISample_linter.js | 15 ++--- .../reference/APISample_linter.types | 35 ++++------- .../reference/APISample_transform.js | 15 ++--- .../reference/APISample_transform.types | 35 ++++------- .../baselines/reference/APISample_watcher.js | 23 ++++--- .../reference/APISample_watcher.types | 60 ++++++++----------- ...etEmitOutputDeclarationMultiFiles.baseline | 4 +- ...etEmitOutputDeclarationSingleFile.baseline | 2 +- .../getEmitOutputExternalModule.baseline | 2 +- .../getEmitOutputExternalModule2.baseline | 2 +- .../reference/getEmitOutputMapRoots.baseline | 2 +- .../reference/getEmitOutputNoErrors.baseline | 2 +- .../getEmitOutputOnlyOneFile.baseline | 2 +- .../getEmitOutputSingleFile.baseline | 2 +- .../getEmitOutputSingleFile2.baseline | 2 +- .../reference/getEmitOutputSourceMap.baseline | 2 +- .../getEmitOutputSourceMap2.baseline | 4 +- .../getEmitOutputSourceRoot.baseline | 2 +- ...getEmitOutputSourceRootMultiFiles.baseline | 4 +- .../getEmitOutputWithDeclarationFile.baseline | 4 +- ...getEmitOutputWithDeclarationFile2.baseline | 6 +- ...getEmitOutputWithDeclarationFile3.baseline | 2 +- ...mitOutputWithEarlySyntacticErrors.baseline | 2 +- .../getEmitOutputWithEmitterErrors.baseline | 3 +- .../getEmitOutputWithEmitterErrors2.baseline | 3 +- .../getEmitOutputWithSemanticErrors.baseline | 2 +- .../getEmitOutputWithSemanticErrors2.baseline | 2 +- ...ithSemanticErrorsForMultipleFiles.baseline | 2 +- ...thSemanticErrorsForMultipleFiles2.baseline | 2 +- ...thSyntacticErrorsForMultipleFiles.baseline | 2 +- ...hSyntacticErrorsForMultipleFiles2.baseline | 2 +- .../getEmitOutputWithSyntaxErrors.baseline | 2 +- tests/cases/compiler/APISample_compile.ts | 5 +- tests/cases/compiler/APISample_watcher.ts | 4 +- 42 files changed, 199 insertions(+), 260 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index c2f03cc8aa3..3b3351ada69 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1508,7 +1508,8 @@ module ts { // @internal // targetSourceFile is when users only want one file in entire project to be emitted. This is used in compilerOnSave feature - export function emitFiles(resolver: EmitResolver, host: EmitHost, targetSourceFile: SourceFile): EmitResult { + export function emitFiles(resolver: EmitResolver, host: EmitHost, targetSourceFile: SourceFile): EmitResult + { var compilerOptions = host.getCompilerOptions(); var languageVersion = compilerOptions.target || ScriptTarget.ES3; var sourceMapDataList: SourceMapData[] = compilerOptions.sourceMap ? [] : undefined; @@ -1541,19 +1542,8 @@ module ts { // Sort and make the unique list of diagnostics diagnostics = sortAndDeduplicateDiagnostics(diagnostics); - // Update returnCode if there is any EmitterError - var hasEmitterError = forEach(diagnostics, diagnostic => diagnostic.category === DiagnosticCategory.Error); - - // Check and update returnCode for syntactic and semantic - var emitResultStatus: EmitReturnStatus; - if (hasEmitterError) { - emitResultStatus = EmitReturnStatus.EmitErrorsEncountered; - } else { - emitResultStatus = EmitReturnStatus.Succeeded; - } - return { - emitResultStatus, + emitSkipped: false, diagnostics, sourceMaps: sourceMapDataList }; diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 1c919de9c69..e933c54bc1e 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -174,20 +174,20 @@ module ts { // If the noEmitOnError flag is set, then check if we have any errors so far. If so, // immediately bail out. if (options.noEmitOnError && getPreEmitDiagnostics(this).length > 0) { - return { diagnostics: [], sourceMaps: undefined, emitResultStatus: EmitReturnStatus.DiagnosticsPresent_AllOutputsSkipped }; + return { diagnostics: [], sourceMaps: undefined, emitSkipped: true }; } var start = new Date().getTime(); - var result = emitFiles( + var emitResult = emitFiles( getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile), getEmitHost(writeFileCallback), sourceFile); emitTime += new Date().getTime() - start; - return result; + return emitResult; } - + function getSourceFile(fileName: string) { fileName = host.getCanonicalFileName(fileName); return hasProperty(filesByName, fileName) ? filesByName[fileName] : undefined; diff --git a/src/compiler/tsc.ts b/src/compiler/tsc.ts index 541a64b6473..4bcd0856ca8 100644 --- a/src/compiler/tsc.ts +++ b/src/compiler/tsc.ts @@ -165,7 +165,7 @@ module ts { if (commandLine.options.locale) { if (!isJSONSupported()) { reportDiagnostic(createCompilerDiagnostic(Diagnostics.The_current_host_does_not_support_the_0_option, "--locale")); - return sys.exit(EmitReturnStatus.CompilerOptionsErrors); + return sys.exit(ExitStatus.DiagnosticsPresent_OutputsSkipped); } validateLocaleAndSetLanguage(commandLine.options.locale, commandLine.errors); } @@ -174,29 +174,29 @@ module ts { // setting up localization, report them and quit. if (commandLine.errors.length > 0) { reportDiagnostics(commandLine.errors); - return sys.exit(EmitReturnStatus.CompilerOptionsErrors); + return sys.exit(ExitStatus.DiagnosticsPresent_OutputsSkipped); } if (commandLine.options.version) { reportDiagnostic(createCompilerDiagnostic(Diagnostics.Version_0, version)); - return sys.exit(EmitReturnStatus.Succeeded); + return sys.exit(ExitStatus.Success); } if (commandLine.options.help) { printVersion(); printHelp(); - return sys.exit(EmitReturnStatus.Succeeded); + return sys.exit(ExitStatus.Success); } if (commandLine.options.project) { if (!isJSONSupported()) { reportDiagnostic(createCompilerDiagnostic(Diagnostics.The_current_host_does_not_support_the_0_option, "--project")); - return sys.exit(EmitReturnStatus.CompilerOptionsErrors); + return sys.exit(ExitStatus.DiagnosticsPresent_OutputsSkipped); } configFileName = normalizePath(combinePaths(commandLine.options.project, "tsconfig.json")); if (commandLine.fileNames.length !== 0) { reportDiagnostic(createCompilerDiagnostic(Diagnostics.Option_project_cannot_be_mixed_with_source_files_on_a_command_line)); - return sys.exit(EmitReturnStatus.CompilerOptionsErrors); + return sys.exit(ExitStatus.DiagnosticsPresent_OutputsSkipped); } } else if (commandLine.fileNames.length === 0 && isJSONSupported()) { @@ -206,13 +206,13 @@ module ts { if (commandLine.fileNames.length === 0 && !configFileName) { printVersion(); printHelp(); - return sys.exit(EmitReturnStatus.CompilerOptionsErrors); + return sys.exit(ExitStatus.Success); } if (commandLine.options.watch) { if (!sys.watchFile) { reportDiagnostic(createCompilerDiagnostic(Diagnostics.The_current_host_does_not_support_the_0_option, "--watch")); - return sys.exit(EmitReturnStatus.CompilerOptionsErrors); + return sys.exit(ExitStatus.DiagnosticsPresent_OutputsSkipped); } if (configFileName) { configFileWatcher = sys.watchFile(configFileName, configFileChanged); @@ -229,12 +229,12 @@ module ts { var configObject = readConfigFile(configFileName); if (!configObject) { reportDiagnostic(createCompilerDiagnostic(Diagnostics.Unable_to_open_file_0, configFileName)); - return sys.exit(EmitReturnStatus.CompilerOptionsErrors); + return sys.exit(ExitStatus.DiagnosticsPresent_OutputsSkipped); } var configParseResult = parseConfigFile(configObject, getDirectoryPath(configFileName)); if (configParseResult.errors.length > 0) { reportDiagnostics(configParseResult.errors); - return sys.exit(EmitReturnStatus.CompilerOptionsErrors); + return sys.exit(ExitStatus.DiagnosticsPresent_OutputsSkipped); } rootFileNames = configParseResult.fileNames; compilerOptions = extend(commandLine.options, configParseResult.options); @@ -362,33 +362,46 @@ module ts { return { program, exitStatus }; - function compileProgram(): EmitReturnStatus { + function compileProgram(): ExitStatus { // First get any syntactic errors. - var errors = program.getSyntacticDiagnostics(); - reportDiagnostics(errors); + var diagnostics = program.getSyntacticDiagnostics(); + reportDiagnostics(diagnostics); // If we didn't have any syntactic errors, then also try getting the global and // semantic errors. - if (errors.length === 0) { - var errors = program.getGlobalDiagnostics(); - reportDiagnostics(errors); + if (diagnostics.length === 0) { + var diagnostics = program.getGlobalDiagnostics(); + reportDiagnostics(diagnostics); - if (errors.length === 0) { - var errors = program.getSemanticDiagnostics(); - reportDiagnostics(errors); + if (diagnostics.length === 0) { + var diagnostics = program.getSemanticDiagnostics(); + reportDiagnostics(diagnostics); } } // If the user doesn't want us to emit, then we're done at this point. if (compilerOptions.noEmit) { - return EmitReturnStatus.Succeeded; + return diagnostics.length + ? ExitStatus.DiagnosticsPresent_OutputsSkipped + : ExitStatus.Success; } // Otherwise, emit and report any errors we ran into. var emitOutput = program.emit(); reportDiagnostics(emitOutput.diagnostics); - return emitOutput.emitResultStatus; + // If the emitter didn't emit anything, then pass that value along. + if (emitOutput.emitSkipped) { + return ExitStatus.DiagnosticsPresent_OutputsSkipped; + } + + // The emitter emitted something, inform the caller if that happened in the presence + // of diagnostics or not. + if (diagnostics.length > 0 || emitOutput.diagnostics.length > 0) { + ExitStatus.DiagnosticsPresent_OutputsGenerated; + } + + return ExitStatus.Success; } } diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 7bb1ff1a738..23da074815a 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -981,31 +981,21 @@ module ts { } // Return code used by getEmitOutput function to indicate status of the function - export enum EmitReturnStatus { - // All outputs generated if requested (.js, .map, .d.ts), no errors reported - Succeeded = 0, + export enum ExitStatus { + // Compiler ran successfully. Either this was a simple do-nothing compilation (for example, + // when -version or -help was provided, or this was a normal compilation, no diagnostics + // were produced, and all outputs were generated successfully. + Success = 0, - // No .js, .map or d.ts generated because of diagnostics and the presence of the - // -noEmitOnError optoin. - DiagnosticsPresent_AllOutputsSkipped = 1, + // Diagnostics were produced and because of them no code was generated. + DiagnosticsPresent_OutputsSkipped = 1, - // .js and .map generated. However, diagnostics were generated as well. - // No .d.ts was requested or generated. - DiagnosticsPresent_JavaScriptGenerated = 2, - - // .js, .map generated. .d.ts was requested but was not generated due to the - // presence of diagnostics. - DiagnosticsPresent_JavaScriptGenerated_DeclarationNotGenerated = 3, - - // Emitter errors occurred during emitting process. - EmitErrorsEncountered = 4, - - // Errors occurred in parsing compiler options, nothing generated - CompilerOptionsErrors = 5, + // Diagnostics were produced and outputs were generated in spite of them. + DiagnosticsPresent_OutputsGenerated = 2, } export interface EmitResult { - emitResultStatus: EmitReturnStatus; + emitSkipped: boolean; diagnostics: Diagnostic[]; sourceMaps: SourceMapData[]; // Array of sourceMapData if compiler emitted sourcemaps } diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index a5a34aaa4c3..cd9d4288cdd 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -1140,11 +1140,10 @@ module FourSlash { // Loop through all the emittedFiles and emit them one by one emitFiles.forEach(emitFile => { var emitOutput = this.languageService.getEmitOutput(emitFile.fileName); - var emitOutputStatus = emitOutput.emitOutputStatus; // Print emitOutputStatus in readable format - resultString += "EmitOutputStatus : " + ts.EmitReturnStatus[emitOutputStatus] + ts.sys.newLine; + resultString += "EmitSkipped: " + emitOutput.emitSkipped + ts.sys.newLine; - if (emitOutputStatus !== ts.EmitReturnStatus.Succeeded) { + if (emitOutput.emitSkipped) { resultString += "Diagnostics:" + ts.sys.newLine; var diagnostics = ts.getPreEmitDiagnostics(this.languageService.getProgram()); for (var i = 0, n = diagnostics.length; i < n; i++) { diff --git a/src/services/services.ts b/src/services/services.ts index 7e01f4798a5..cd69a4f2117 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1122,7 +1122,7 @@ module ts { export interface EmitOutput { outputFiles: OutputFile[]; - emitOutputStatus: EmitReturnStatus; + emitSkipped: boolean; } export const enum OutputFileType { @@ -4664,7 +4664,7 @@ module ts { return { outputFiles, - emitOutputStatus: emitOutput.emitResultStatus + emitSkipped: emitOutput.emitSkipped }; } diff --git a/tests/baselines/reference/APISample_compile.js b/tests/baselines/reference/APISample_compile.js index 1d893639576..26a59c433b9 100644 --- a/tests/baselines/reference/APISample_compile.js +++ b/tests/baselines/reference/APISample_compile.js @@ -25,8 +25,9 @@ export function compile(fileNames: string[], options: ts.CompilerOptions): void console.log(`${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${ts.flattenDiagnosticMessageText(diagnostic.messageText, os.EOL)}`); }); - console.log(`Process exiting with code '${emitResult.emitResultStatus}'.`); - process.exit(emitResult.emitResultStatus); + var exitCode = emitResult.emitSkipped ? 1 : 0; + console.log(`Process exiting with code '${exitCode}'.`); + process.exit(exitCode); } compile(process.argv.slice(2), { @@ -777,16 +778,13 @@ declare module "typescript" { sourceMapMappings: string; sourceMapDecodedMappings: SourceMapSpan[]; } - enum EmitReturnStatus { - Succeeded = 0, - DiagnosticsPresent_AllOutputsSkipped = 1, - DiagnosticsPresent_JavaScriptGenerated = 2, - DiagnosticsPresent_JavaScriptGenerated_DeclarationNotGenerated = 3, - EmitErrorsEncountered = 4, - CompilerOptionsErrors = 5, + enum ExitStatus { + Success = 0, + DiagnosticsPresent_OutputsSkipped = 1, + DiagnosticsPresent_OutputsGenerated = 2, } interface EmitResult { - emitResultStatus: EmitReturnStatus; + emitSkipped: boolean; diagnostics: Diagnostic[]; sourceMaps: SourceMapData[]; } @@ -1723,7 +1721,7 @@ declare module "typescript" { } interface EmitOutput { outputFiles: OutputFile[]; - emitOutputStatus: EmitReturnStatus; + emitSkipped: boolean; } const enum OutputFileType { JavaScript = 0, @@ -1926,8 +1924,9 @@ function compile(fileNames, options) { var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); console.log(diagnostic.file.fileName + " (" + lineChar.line + "," + lineChar.character + "): " + ts.flattenDiagnosticMessageText(diagnostic.messageText, os.EOL)); }); - console.log("Process exiting with code '" + emitResult.emitResultStatus + "'."); - process.exit(emitResult.emitResultStatus); + var exitCode = emitResult.emitSkipped ? 1 : 0; + console.log("Process exiting with code '" + exitCode + "'."); + process.exit(exitCode); } exports.compile = compile; compile(process.argv.slice(2), { diff --git a/tests/baselines/reference/APISample_compile.types b/tests/baselines/reference/APISample_compile.types index e5d69bbcfd2..43b79049e8b 100644 --- a/tests/baselines/reference/APISample_compile.types +++ b/tests/baselines/reference/APISample_compile.types @@ -104,23 +104,26 @@ export function compile(fileNames: string[], options: ts.CompilerOptions): void }); - console.log(`Process exiting with code '${emitResult.emitResultStatus}'.`); ->console.log(`Process exiting with code '${emitResult.emitResultStatus}'.`) : any + var exitCode = emitResult.emitSkipped ? 1 : 0; +>exitCode : number +>emitResult.emitSkipped ? 1 : 0 : number +>emitResult.emitSkipped : boolean +>emitResult : ts.EmitResult +>emitSkipped : boolean + + console.log(`Process exiting with code '${exitCode}'.`); +>console.log(`Process exiting with code '${exitCode}'.`) : any >console.log : any >console : any >log : any ->emitResult.emitResultStatus : ts.EmitReturnStatus ->emitResult : ts.EmitResult ->emitResultStatus : ts.EmitReturnStatus +>exitCode : number - process.exit(emitResult.emitResultStatus); ->process.exit(emitResult.emitResultStatus) : any + process.exit(exitCode); +>process.exit(exitCode) : any >process.exit : any >process : any >exit : any ->emitResult.emitResultStatus : ts.EmitReturnStatus ->emitResult : ts.EmitResult ->emitResultStatus : ts.EmitReturnStatus +>exitCode : number } compile(process.argv.slice(2), { @@ -2349,33 +2352,23 @@ declare module "typescript" { >sourceMapDecodedMappings : SourceMapSpan[] >SourceMapSpan : SourceMapSpan } - enum EmitReturnStatus { ->EmitReturnStatus : EmitReturnStatus + enum ExitStatus { +>ExitStatus : ExitStatus - Succeeded = 0, ->Succeeded : EmitReturnStatus + Success = 0, +>Success : ExitStatus - DiagnosticsPresent_AllOutputsSkipped = 1, ->DiagnosticsPresent_AllOutputsSkipped : EmitReturnStatus + DiagnosticsPresent_OutputsSkipped = 1, +>DiagnosticsPresent_OutputsSkipped : ExitStatus - DiagnosticsPresent_JavaScriptGenerated = 2, ->DiagnosticsPresent_JavaScriptGenerated : EmitReturnStatus - - DiagnosticsPresent_JavaScriptGenerated_DeclarationNotGenerated = 3, ->DiagnosticsPresent_JavaScriptGenerated_DeclarationNotGenerated : EmitReturnStatus - - EmitErrorsEncountered = 4, ->EmitErrorsEncountered : EmitReturnStatus - - CompilerOptionsErrors = 5, ->CompilerOptionsErrors : EmitReturnStatus + DiagnosticsPresent_OutputsGenerated = 2, +>DiagnosticsPresent_OutputsGenerated : ExitStatus } interface EmitResult { >EmitResult : EmitResult - emitResultStatus: EmitReturnStatus; ->emitResultStatus : EmitReturnStatus ->EmitReturnStatus : EmitReturnStatus + emitSkipped: boolean; +>emitSkipped : boolean diagnostics: Diagnostic[]; >diagnostics : Diagnostic[] @@ -5496,9 +5489,8 @@ declare module "typescript" { >outputFiles : OutputFile[] >OutputFile : OutputFile - emitOutputStatus: EmitReturnStatus; ->emitOutputStatus : EmitReturnStatus ->EmitReturnStatus : EmitReturnStatus + emitSkipped: boolean; +>emitSkipped : boolean } const enum OutputFileType { >OutputFileType : OutputFileType diff --git a/tests/baselines/reference/APISample_linter.js b/tests/baselines/reference/APISample_linter.js index 6edb6399bf9..89e9aed992c 100644 --- a/tests/baselines/reference/APISample_linter.js +++ b/tests/baselines/reference/APISample_linter.js @@ -809,16 +809,13 @@ declare module "typescript" { sourceMapMappings: string; sourceMapDecodedMappings: SourceMapSpan[]; } - enum EmitReturnStatus { - Succeeded = 0, - DiagnosticsPresent_AllOutputsSkipped = 1, - DiagnosticsPresent_JavaScriptGenerated = 2, - DiagnosticsPresent_JavaScriptGenerated_DeclarationNotGenerated = 3, - EmitErrorsEncountered = 4, - CompilerOptionsErrors = 5, + enum ExitStatus { + Success = 0, + DiagnosticsPresent_OutputsSkipped = 1, + DiagnosticsPresent_OutputsGenerated = 2, } interface EmitResult { - emitResultStatus: EmitReturnStatus; + emitSkipped: boolean; diagnostics: Diagnostic[]; sourceMaps: SourceMapData[]; } @@ -1755,7 +1752,7 @@ declare module "typescript" { } interface EmitOutput { outputFiles: OutputFile[]; - emitOutputStatus: EmitReturnStatus; + emitSkipped: boolean; } const enum OutputFileType { JavaScript = 0, diff --git a/tests/baselines/reference/APISample_linter.types b/tests/baselines/reference/APISample_linter.types index 4ce2c4d92db..846781e64ad 100644 --- a/tests/baselines/reference/APISample_linter.types +++ b/tests/baselines/reference/APISample_linter.types @@ -2496,33 +2496,23 @@ declare module "typescript" { >sourceMapDecodedMappings : SourceMapSpan[] >SourceMapSpan : SourceMapSpan } - enum EmitReturnStatus { ->EmitReturnStatus : EmitReturnStatus + enum ExitStatus { +>ExitStatus : ExitStatus - Succeeded = 0, ->Succeeded : EmitReturnStatus + Success = 0, +>Success : ExitStatus - DiagnosticsPresent_AllOutputsSkipped = 1, ->DiagnosticsPresent_AllOutputsSkipped : EmitReturnStatus + DiagnosticsPresent_OutputsSkipped = 1, +>DiagnosticsPresent_OutputsSkipped : ExitStatus - DiagnosticsPresent_JavaScriptGenerated = 2, ->DiagnosticsPresent_JavaScriptGenerated : EmitReturnStatus - - DiagnosticsPresent_JavaScriptGenerated_DeclarationNotGenerated = 3, ->DiagnosticsPresent_JavaScriptGenerated_DeclarationNotGenerated : EmitReturnStatus - - EmitErrorsEncountered = 4, ->EmitErrorsEncountered : EmitReturnStatus - - CompilerOptionsErrors = 5, ->CompilerOptionsErrors : EmitReturnStatus + DiagnosticsPresent_OutputsGenerated = 2, +>DiagnosticsPresent_OutputsGenerated : ExitStatus } interface EmitResult { >EmitResult : EmitResult - emitResultStatus: EmitReturnStatus; ->emitResultStatus : EmitReturnStatus ->EmitReturnStatus : EmitReturnStatus + emitSkipped: boolean; +>emitSkipped : boolean diagnostics: Diagnostic[]; >diagnostics : Diagnostic[] @@ -5643,9 +5633,8 @@ declare module "typescript" { >outputFiles : OutputFile[] >OutputFile : OutputFile - emitOutputStatus: EmitReturnStatus; ->emitOutputStatus : EmitReturnStatus ->EmitReturnStatus : EmitReturnStatus + emitSkipped: boolean; +>emitSkipped : boolean } const enum OutputFileType { >OutputFileType : OutputFileType diff --git a/tests/baselines/reference/APISample_transform.js b/tests/baselines/reference/APISample_transform.js index 023e3c5fa06..a4b102d8efb 100644 --- a/tests/baselines/reference/APISample_transform.js +++ b/tests/baselines/reference/APISample_transform.js @@ -810,16 +810,13 @@ declare module "typescript" { sourceMapMappings: string; sourceMapDecodedMappings: SourceMapSpan[]; } - enum EmitReturnStatus { - Succeeded = 0, - DiagnosticsPresent_AllOutputsSkipped = 1, - DiagnosticsPresent_JavaScriptGenerated = 2, - DiagnosticsPresent_JavaScriptGenerated_DeclarationNotGenerated = 3, - EmitErrorsEncountered = 4, - CompilerOptionsErrors = 5, + enum ExitStatus { + Success = 0, + DiagnosticsPresent_OutputsSkipped = 1, + DiagnosticsPresent_OutputsGenerated = 2, } interface EmitResult { - emitResultStatus: EmitReturnStatus; + emitSkipped: boolean; diagnostics: Diagnostic[]; sourceMaps: SourceMapData[]; } @@ -1756,7 +1753,7 @@ declare module "typescript" { } interface EmitOutput { outputFiles: OutputFile[]; - emitOutputStatus: EmitReturnStatus; + emitSkipped: boolean; } const enum OutputFileType { JavaScript = 0, diff --git a/tests/baselines/reference/APISample_transform.types b/tests/baselines/reference/APISample_transform.types index 445cd50a205..5f1859b13e7 100644 --- a/tests/baselines/reference/APISample_transform.types +++ b/tests/baselines/reference/APISample_transform.types @@ -2448,33 +2448,23 @@ declare module "typescript" { >sourceMapDecodedMappings : SourceMapSpan[] >SourceMapSpan : SourceMapSpan } - enum EmitReturnStatus { ->EmitReturnStatus : EmitReturnStatus + enum ExitStatus { +>ExitStatus : ExitStatus - Succeeded = 0, ->Succeeded : EmitReturnStatus + Success = 0, +>Success : ExitStatus - DiagnosticsPresent_AllOutputsSkipped = 1, ->DiagnosticsPresent_AllOutputsSkipped : EmitReturnStatus + DiagnosticsPresent_OutputsSkipped = 1, +>DiagnosticsPresent_OutputsSkipped : ExitStatus - DiagnosticsPresent_JavaScriptGenerated = 2, ->DiagnosticsPresent_JavaScriptGenerated : EmitReturnStatus - - DiagnosticsPresent_JavaScriptGenerated_DeclarationNotGenerated = 3, ->DiagnosticsPresent_JavaScriptGenerated_DeclarationNotGenerated : EmitReturnStatus - - EmitErrorsEncountered = 4, ->EmitErrorsEncountered : EmitReturnStatus - - CompilerOptionsErrors = 5, ->CompilerOptionsErrors : EmitReturnStatus + DiagnosticsPresent_OutputsGenerated = 2, +>DiagnosticsPresent_OutputsGenerated : ExitStatus } interface EmitResult { >EmitResult : EmitResult - emitResultStatus: EmitReturnStatus; ->emitResultStatus : EmitReturnStatus ->EmitReturnStatus : EmitReturnStatus + emitSkipped: boolean; +>emitSkipped : boolean diagnostics: Diagnostic[]; >diagnostics : Diagnostic[] @@ -5595,9 +5585,8 @@ declare module "typescript" { >outputFiles : OutputFile[] >OutputFile : OutputFile - emitOutputStatus: EmitReturnStatus; ->emitOutputStatus : EmitReturnStatus ->EmitReturnStatus : EmitReturnStatus + emitSkipped: boolean; +>emitSkipped : boolean } const enum OutputFileType { >OutputFileType : OutputFileType diff --git a/tests/baselines/reference/APISample_watcher.js b/tests/baselines/reference/APISample_watcher.js index 9bdd3d71d07..4f3fb5cdc47 100644 --- a/tests/baselines/reference/APISample_watcher.js +++ b/tests/baselines/reference/APISample_watcher.js @@ -67,7 +67,7 @@ function watch(rootFileNames: string[], options: ts.CompilerOptions) { function emitFile(fileName: string) { var output = services.getEmitOutput(fileName); - if (output.emitOutputStatus === ts.EmitReturnStatus.Succeeded) { + if (!output.emitSkipped) { console.log(`Emitting ${fileName}`); } else { @@ -88,7 +88,7 @@ function watch(rootFileNames: string[], options: ts.CompilerOptions) { allDiagnostics.forEach(diagnostic => { if (diagnostic.file) { var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); - console.log(` Error ${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); + console.log(` Error ${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}`); } else { console.log(` Error: ${diagnostic.messageText}`); @@ -847,16 +847,13 @@ declare module "typescript" { sourceMapMappings: string; sourceMapDecodedMappings: SourceMapSpan[]; } - enum EmitReturnStatus { - Succeeded = 0, - DiagnosticsPresent_AllOutputsSkipped = 1, - DiagnosticsPresent_JavaScriptGenerated = 2, - DiagnosticsPresent_JavaScriptGenerated_DeclarationNotGenerated = 3, - EmitErrorsEncountered = 4, - CompilerOptionsErrors = 5, + enum ExitStatus { + Success = 0, + DiagnosticsPresent_OutputsSkipped = 1, + DiagnosticsPresent_OutputsGenerated = 2, } interface EmitResult { - emitResultStatus: EmitReturnStatus; + emitSkipped: boolean; diagnostics: Diagnostic[]; sourceMaps: SourceMapData[]; } @@ -1793,7 +1790,7 @@ declare module "typescript" { } interface EmitOutput { outputFiles: OutputFile[]; - emitOutputStatus: EmitReturnStatus; + emitSkipped: boolean; } const enum OutputFileType { JavaScript = 0, @@ -2028,7 +2025,7 @@ function watch(rootFileNames, options) { }); function emitFile(fileName) { var output = services.getEmitOutput(fileName); - if (output.emitOutputStatus === 0 /* Succeeded */) { + if (!output.emitSkipped) { console.log("Emitting " + fileName); } else { @@ -2044,7 +2041,7 @@ function watch(rootFileNames, options) { allDiagnostics.forEach(function (diagnostic) { if (diagnostic.file) { var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); - console.log(" Error " + diagnostic.file.fileName + " (" + lineChar.line + "," + lineChar.character + "): " + diagnostic.messageText); + console.log(" Error " + diagnostic.file.fileName + " (" + lineChar.line + "," + lineChar.character + "): " + ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n")); } else { console.log(" Error: " + diagnostic.messageText); diff --git a/tests/baselines/reference/APISample_watcher.types b/tests/baselines/reference/APISample_watcher.types index 1c4efc7b5db..e990ec362ea 100644 --- a/tests/baselines/reference/APISample_watcher.types +++ b/tests/baselines/reference/APISample_watcher.types @@ -233,16 +233,11 @@ function watch(rootFileNames: string[], options: ts.CompilerOptions) { >getEmitOutput : (fileName: string) => ts.EmitOutput >fileName : string - if (output.emitOutputStatus === ts.EmitReturnStatus.Succeeded) { ->output.emitOutputStatus === ts.EmitReturnStatus.Succeeded : boolean ->output.emitOutputStatus : ts.EmitReturnStatus + if (!output.emitSkipped) { +>!output.emitSkipped : boolean +>output.emitSkipped : boolean >output : ts.EmitOutput ->emitOutputStatus : ts.EmitReturnStatus ->ts.EmitReturnStatus.Succeeded : ts.EmitReturnStatus ->ts.EmitReturnStatus : typeof ts.EmitReturnStatus ->ts : typeof ts ->EmitReturnStatus : typeof ts.EmitReturnStatus ->Succeeded : ts.EmitReturnStatus +>emitSkipped : boolean console.log(`Emitting ${fileName}`); >console.log(`Emitting ${fileName}`) : any @@ -322,11 +317,11 @@ function watch(rootFileNames: string[], options: ts.CompilerOptions) { >fileName : string allDiagnostics.forEach(diagnostic => { ->allDiagnostics.forEach(diagnostic => { if (diagnostic.file) { var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); console.log(` Error ${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); } else { console.log(` Error: ${diagnostic.messageText}`); } }) : void +>allDiagnostics.forEach(diagnostic => { if (diagnostic.file) { var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); console.log(` Error ${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}`); } else { console.log(` Error: ${diagnostic.messageText}`); } }) : void >allDiagnostics.forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void >allDiagnostics : ts.Diagnostic[] >forEach : (callbackfn: (value: ts.Diagnostic, index: number, array: ts.Diagnostic[]) => void, thisArg?: any) => void ->diagnostic => { if (diagnostic.file) { var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); console.log(` Error ${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); } else { console.log(` Error: ${diagnostic.messageText}`); } } : (diagnostic: ts.Diagnostic) => void +>diagnostic => { if (diagnostic.file) { var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); console.log(` Error ${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}`); } else { console.log(` Error: ${diagnostic.messageText}`); } } : (diagnostic: ts.Diagnostic) => void >diagnostic : ts.Diagnostic if (diagnostic.file) { @@ -346,8 +341,8 @@ function watch(rootFileNames: string[], options: ts.CompilerOptions) { >diagnostic : ts.Diagnostic >start : number - console.log(` Error ${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); ->console.log(` Error ${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`) : any + console.log(` Error ${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}`); +>console.log(` Error ${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}`) : any >console.log : any >console : any >log : any @@ -362,6 +357,10 @@ function watch(rootFileNames: string[], options: ts.CompilerOptions) { >lineChar.character : number >lineChar : ts.LineAndCharacter >character : number +>ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n") : string +>ts.flattenDiagnosticMessageText : (messageText: string | ts.DiagnosticMessageChain, newLine: string) => string +>ts : typeof ts +>flattenDiagnosticMessageText : (messageText: string | ts.DiagnosticMessageChain, newLine: string) => string >diagnostic.messageText : string | ts.DiagnosticMessageChain >diagnostic : ts.Diagnostic >messageText : string | ts.DiagnosticMessageChain @@ -2622,33 +2621,23 @@ declare module "typescript" { >sourceMapDecodedMappings : SourceMapSpan[] >SourceMapSpan : SourceMapSpan } - enum EmitReturnStatus { ->EmitReturnStatus : EmitReturnStatus + enum ExitStatus { +>ExitStatus : ExitStatus - Succeeded = 0, ->Succeeded : EmitReturnStatus + Success = 0, +>Success : ExitStatus - DiagnosticsPresent_AllOutputsSkipped = 1, ->DiagnosticsPresent_AllOutputsSkipped : EmitReturnStatus + DiagnosticsPresent_OutputsSkipped = 1, +>DiagnosticsPresent_OutputsSkipped : ExitStatus - DiagnosticsPresent_JavaScriptGenerated = 2, ->DiagnosticsPresent_JavaScriptGenerated : EmitReturnStatus - - DiagnosticsPresent_JavaScriptGenerated_DeclarationNotGenerated = 3, ->DiagnosticsPresent_JavaScriptGenerated_DeclarationNotGenerated : EmitReturnStatus - - EmitErrorsEncountered = 4, ->EmitErrorsEncountered : EmitReturnStatus - - CompilerOptionsErrors = 5, ->CompilerOptionsErrors : EmitReturnStatus + DiagnosticsPresent_OutputsGenerated = 2, +>DiagnosticsPresent_OutputsGenerated : ExitStatus } interface EmitResult { >EmitResult : EmitResult - emitResultStatus: EmitReturnStatus; ->emitResultStatus : EmitReturnStatus ->EmitReturnStatus : EmitReturnStatus + emitSkipped: boolean; +>emitSkipped : boolean diagnostics: Diagnostic[]; >diagnostics : Diagnostic[] @@ -5769,9 +5758,8 @@ declare module "typescript" { >outputFiles : OutputFile[] >OutputFile : OutputFile - emitOutputStatus: EmitReturnStatus; ->emitOutputStatus : EmitReturnStatus ->EmitReturnStatus : EmitReturnStatus + emitSkipped: boolean; +>emitSkipped : boolean } const enum OutputFileType { >OutputFileType : OutputFileType diff --git a/tests/baselines/reference/getEmitOutputDeclarationMultiFiles.baseline b/tests/baselines/reference/getEmitOutputDeclarationMultiFiles.baseline index a8b6f8a9cd4..5552851dec4 100644 --- a/tests/baselines/reference/getEmitOutputDeclarationMultiFiles.baseline +++ b/tests/baselines/reference/getEmitOutputDeclarationMultiFiles.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile1.js var x = 5; var Bar = (function () { @@ -13,7 +13,7 @@ declare class Bar { y: number; } -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile2.js var x1 = "hello world"; var Foo = (function () { diff --git a/tests/baselines/reference/getEmitOutputDeclarationSingleFile.baseline b/tests/baselines/reference/getEmitOutputDeclarationSingleFile.baseline index 131b6cd98ed..4abc99b05c2 100644 --- a/tests/baselines/reference/getEmitOutputDeclarationSingleFile.baseline +++ b/tests/baselines/reference/getEmitOutputDeclarationSingleFile.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : declSingleFile.js var x = 5; var Bar = (function () { diff --git a/tests/baselines/reference/getEmitOutputExternalModule.baseline b/tests/baselines/reference/getEmitOutputExternalModule.baseline index dcfd9bd89cc..ac2f7cb3dac 100644 --- a/tests/baselines/reference/getEmitOutputExternalModule.baseline +++ b/tests/baselines/reference/getEmitOutputExternalModule.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : declSingleFile.js var x = 5; var Bar = (function () { diff --git a/tests/baselines/reference/getEmitOutputExternalModule2.baseline b/tests/baselines/reference/getEmitOutputExternalModule2.baseline index 205b2f1b303..c32472d318f 100644 --- a/tests/baselines/reference/getEmitOutputExternalModule2.baseline +++ b/tests/baselines/reference/getEmitOutputExternalModule2.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : declSingleFile.js var x = 5; var Bar = (function () { diff --git a/tests/baselines/reference/getEmitOutputMapRoots.baseline b/tests/baselines/reference/getEmitOutputMapRoots.baseline index 91cb853bdf0..16f39169e23 100644 --- a/tests/baselines/reference/getEmitOutputMapRoots.baseline +++ b/tests/baselines/reference/getEmitOutputMapRoots.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : declSingleFile.js.map {"version":3,"file":"declSingleFile.js","sourceRoot":"","sources":["../tests/cases/fourslash/inputFile.ts"],"names":["M","M.constructor"],"mappings":"AAAA,IAAI,CAAC,GAAG,GAAG,CAAC;AACZ,IAAI,GAAG,GAAG,aAAa,CAAC;AACxB,IAAM,CAAC;IAAPA,SAAMA,CAACA;IAGPC,CAACA;IAADD,QAACA;AAADA,CAACA,AAHD,IAGC"}FileName : declSingleFile.js var x = 109; diff --git a/tests/baselines/reference/getEmitOutputNoErrors.baseline b/tests/baselines/reference/getEmitOutputNoErrors.baseline index 7fb0ca2eee5..a1efeecd321 100644 --- a/tests/baselines/reference/getEmitOutputNoErrors.baseline +++ b/tests/baselines/reference/getEmitOutputNoErrors.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile.js var x; var M = (function () { diff --git a/tests/baselines/reference/getEmitOutputOnlyOneFile.baseline b/tests/baselines/reference/getEmitOutputOnlyOneFile.baseline index 775cbf195c6..981b4710e41 100644 --- a/tests/baselines/reference/getEmitOutputOnlyOneFile.baseline +++ b/tests/baselines/reference/getEmitOutputOnlyOneFile.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile2.js var x; var Foo = (function () { diff --git a/tests/baselines/reference/getEmitOutputSingleFile.baseline b/tests/baselines/reference/getEmitOutputSingleFile.baseline index 81ceb3f4357..4a71299dcc0 100644 --- a/tests/baselines/reference/getEmitOutputSingleFile.baseline +++ b/tests/baselines/reference/getEmitOutputSingleFile.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : outputDir/singleFile.js var x; var Bar = (function () { diff --git a/tests/baselines/reference/getEmitOutputSingleFile2.baseline b/tests/baselines/reference/getEmitOutputSingleFile2.baseline index 0f5fad8505d..c9409c5ca8c 100644 --- a/tests/baselines/reference/getEmitOutputSingleFile2.baseline +++ b/tests/baselines/reference/getEmitOutputSingleFile2.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile3.js exports.foo = 10; exports.bar = "hello world"; diff --git a/tests/baselines/reference/getEmitOutputSourceMap.baseline b/tests/baselines/reference/getEmitOutputSourceMap.baseline index 553936bd91b..39cff967d89 100644 --- a/tests/baselines/reference/getEmitOutputSourceMap.baseline +++ b/tests/baselines/reference/getEmitOutputSourceMap.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile.js.map {"version":3,"file":"inputFile.js","sourceRoot":"","sources":["inputFile.ts"],"names":["M","M.constructor"],"mappings":"AAAA,IAAI,CAAC,GAAG,GAAG,CAAC;AACZ,IAAI,GAAG,GAAG,aAAa,CAAC;AACxB,IAAM,CAAC;IAAPA,SAAMA,CAACA;IAGPC,CAACA;IAADD,QAACA;AAADA,CAACA,AAHD,IAGC"}FileName : tests/cases/fourslash/inputFile.js var x = 109; diff --git a/tests/baselines/reference/getEmitOutputSourceMap2.baseline b/tests/baselines/reference/getEmitOutputSourceMap2.baseline index 838a9a985eb..713aa4f3c08 100644 --- a/tests/baselines/reference/getEmitOutputSourceMap2.baseline +++ b/tests/baselines/reference/getEmitOutputSourceMap2.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : sample/outDir/inputFile1.js.map {"version":3,"file":"inputFile1.js","sourceRoot":"","sources":["../../tests/cases/fourslash/inputFile1.ts"],"names":["M","M.constructor"],"mappings":"AAAA,IAAI,CAAC,GAAG,GAAG,CAAC;AACZ,IAAI,GAAG,GAAG,aAAa,CAAC;AACxB,IAAM,CAAC;IAAPA,SAAMA,CAACA;IAGPC,CAACA;IAADD,QAACA;AAADA,CAACA,AAHD,IAGC"}FileName : sample/outDir/inputFile1.js var x = 109; @@ -9,7 +9,7 @@ var M = (function () { return M; })(); //# sourceMappingURL=inputFile1.js.map -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : sample/outDir/inputFile2.js.map {"version":3,"file":"inputFile2.js","sourceRoot":"","sources":["../../tests/cases/fourslash/inputFile2.ts"],"names":[],"mappings":"AAAA,IAAI,KAAK,GAAG,aAAa,CAAC;AAC1B,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC;IACvB,IAAI,CAAC,GAAG,EAAE,CAAC;AACd,CAAC"}FileName : sample/outDir/inputFile2.js var intro = "hello world"; diff --git a/tests/baselines/reference/getEmitOutputSourceRoot.baseline b/tests/baselines/reference/getEmitOutputSourceRoot.baseline index 880ad48ded3..5424def98ee 100644 --- a/tests/baselines/reference/getEmitOutputSourceRoot.baseline +++ b/tests/baselines/reference/getEmitOutputSourceRoot.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile.js.map {"version":3,"file":"inputFile.js","sourceRoot":"sourceRootDir/","sources":["inputFile.ts"],"names":["M","M.constructor"],"mappings":"AAAA,IAAI,CAAC,GAAG,GAAG,CAAC;AACZ,IAAI,GAAG,GAAG,aAAa,CAAC;AACxB,IAAM,CAAC;IAAPA,SAAMA,CAACA;IAGPC,CAACA;IAADD,QAACA;AAADA,CAACA,AAHD,IAGC"}FileName : tests/cases/fourslash/inputFile.js var x = 109; diff --git a/tests/baselines/reference/getEmitOutputSourceRootMultiFiles.baseline b/tests/baselines/reference/getEmitOutputSourceRootMultiFiles.baseline index 20ed671e8cf..7948ad99673 100644 --- a/tests/baselines/reference/getEmitOutputSourceRootMultiFiles.baseline +++ b/tests/baselines/reference/getEmitOutputSourceRootMultiFiles.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile1.js.map {"version":3,"file":"inputFile1.js","sourceRoot":"sourceRootDir/","sources":["inputFile1.ts"],"names":["M","M.constructor"],"mappings":"AAAA,IAAI,CAAC,GAAG,GAAG,CAAC;AACZ,IAAI,GAAG,GAAG,aAAa,CAAC;AACxB,IAAM,CAAC;IAAPA,SAAMA,CAACA;IAGPC,CAACA;IAADD,QAACA;AAADA,CAACA,AAHD,IAGC"}FileName : tests/cases/fourslash/inputFile1.js var x = 109; @@ -9,7 +9,7 @@ var M = (function () { return M; })(); //# sourceMappingURL=inputFile1.js.map -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile2.js.map {"version":3,"file":"inputFile2.js","sourceRoot":"sourceRootDir/","sources":["inputFile2.ts"],"names":["C","C.constructor"],"mappings":"AAAA,IAAI,GAAG,GAAG,wBAAwB,CAAC;AACnC,IAAM,CAAC;IAAPA,SAAMA,CAACA;IAGPC,CAACA;IAADD,QAACA;AAADA,CAACA,AAHD,IAGC"}FileName : tests/cases/fourslash/inputFile2.js var bar = "hello world Typescript"; diff --git a/tests/baselines/reference/getEmitOutputWithDeclarationFile.baseline b/tests/baselines/reference/getEmitOutputWithDeclarationFile.baseline index 0d9c3c16f55..4fda32ad7c4 100644 --- a/tests/baselines/reference/getEmitOutputWithDeclarationFile.baseline +++ b/tests/baselines/reference/getEmitOutputWithDeclarationFile.baseline @@ -1,6 +1,6 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile2.js var x1 = "hello world"; var Foo = (function () { diff --git a/tests/baselines/reference/getEmitOutputWithDeclarationFile2.baseline b/tests/baselines/reference/getEmitOutputWithDeclarationFile2.baseline index 03b466d4dde..4582af47f5a 100644 --- a/tests/baselines/reference/getEmitOutputWithDeclarationFile2.baseline +++ b/tests/baselines/reference/getEmitOutputWithDeclarationFile2.baseline @@ -1,6 +1,6 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile2.js var Foo = (function () { function Foo() { @@ -9,7 +9,7 @@ var Foo = (function () { })(); exports.Foo = Foo; -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile3.js var x = "hello"; diff --git a/tests/baselines/reference/getEmitOutputWithDeclarationFile3.baseline b/tests/baselines/reference/getEmitOutputWithDeclarationFile3.baseline index 972d164af42..1ce3d9f33c3 100644 --- a/tests/baselines/reference/getEmitOutputWithDeclarationFile3.baseline +++ b/tests/baselines/reference/getEmitOutputWithDeclarationFile3.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : declSingle.js var x = "hello"; var x1 = 1000; diff --git a/tests/baselines/reference/getEmitOutputWithEarlySyntacticErrors.baseline b/tests/baselines/reference/getEmitOutputWithEarlySyntacticErrors.baseline index 5404e2e05e2..8dc9355bca2 100644 --- a/tests/baselines/reference/getEmitOutputWithEarlySyntacticErrors.baseline +++ b/tests/baselines/reference/getEmitOutputWithEarlySyntacticErrors.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile1.js // File contains early errors. All outputs should be skipped. const uninitialized_const_error; diff --git a/tests/baselines/reference/getEmitOutputWithEmitterErrors.baseline b/tests/baselines/reference/getEmitOutputWithEmitterErrors.baseline index d5bf626085e..f854a619a47 100644 --- a/tests/baselines/reference/getEmitOutputWithEmitterErrors.baseline +++ b/tests/baselines/reference/getEmitOutputWithEmitterErrors.baseline @@ -1,5 +1,4 @@ -EmitOutputStatus : EmitErrorsEncountered -Diagnostics: +EmitSkipped: false FileName : tests/cases/fourslash/inputFile.js var M; (function (M) { diff --git a/tests/baselines/reference/getEmitOutputWithEmitterErrors2.baseline b/tests/baselines/reference/getEmitOutputWithEmitterErrors2.baseline index 98df927aa4b..463dfe6899a 100644 --- a/tests/baselines/reference/getEmitOutputWithEmitterErrors2.baseline +++ b/tests/baselines/reference/getEmitOutputWithEmitterErrors2.baseline @@ -1,5 +1,4 @@ -EmitOutputStatus : EmitErrorsEncountered -Diagnostics: +EmitSkipped: false FileName : tests/cases/fourslash/inputFile.js define(["require", "exports"], function (require, exports) { var C = (function () { diff --git a/tests/baselines/reference/getEmitOutputWithSemanticErrors.baseline b/tests/baselines/reference/getEmitOutputWithSemanticErrors.baseline index 6c263064ae3..b6249822131 100644 --- a/tests/baselines/reference/getEmitOutputWithSemanticErrors.baseline +++ b/tests/baselines/reference/getEmitOutputWithSemanticErrors.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile.js var x = "hello world"; diff --git a/tests/baselines/reference/getEmitOutputWithSemanticErrors2.baseline b/tests/baselines/reference/getEmitOutputWithSemanticErrors2.baseline index 78c279add04..396e220bdb6 100644 --- a/tests/baselines/reference/getEmitOutputWithSemanticErrors2.baseline +++ b/tests/baselines/reference/getEmitOutputWithSemanticErrors2.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile.js var x = "hello world"; FileName : tests/cases/fourslash/inputFile.d.ts diff --git a/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles.baseline b/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles.baseline index 2a0b26f47c8..7f012b6a546 100644 --- a/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles.baseline +++ b/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile1.js // File to emit, does not contain semantic errors // expected to be emitted correctelly regardless of the semantic errors in the other file diff --git a/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles2.baseline b/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles2.baseline index 7a6d61855ae..6a58015c1b3 100644 --- a/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles2.baseline +++ b/tests/baselines/reference/getEmitOutputWithSemanticErrorsForMultipleFiles2.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : out.js // File to emit, does not contain semantic errors, but --out is passed // expected to not generate declarations because of the semantic errors in the other file diff --git a/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles.baseline b/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles.baseline index 224742eea3c..701b275eb31 100644 --- a/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles.baseline +++ b/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile1.js // File to emit, does not contain syntactic errors // expected to be emitted correctelly regardless of the syntactic errors in the other file diff --git a/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles2.baseline b/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles2.baseline index 967f792fb06..b66f83dc6b6 100644 --- a/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles2.baseline +++ b/tests/baselines/reference/getEmitOutputWithSyntacticErrorsForMultipleFiles2.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : out.js // File to emit, does not contain syntactic errors, but --out is passed // expected to not generate outputs because of the syntactic errors in the other file. diff --git a/tests/baselines/reference/getEmitOutputWithSyntaxErrors.baseline b/tests/baselines/reference/getEmitOutputWithSyntaxErrors.baseline index b6b40c5352c..2c341821fb0 100644 --- a/tests/baselines/reference/getEmitOutputWithSyntaxErrors.baseline +++ b/tests/baselines/reference/getEmitOutputWithSyntaxErrors.baseline @@ -1,4 +1,4 @@ -EmitOutputStatus : Succeeded +EmitSkipped: false FileName : tests/cases/fourslash/inputFile.js var x; diff --git a/tests/cases/compiler/APISample_compile.ts b/tests/cases/compiler/APISample_compile.ts index 25f9fe6e145..50ec02ab6f3 100644 --- a/tests/cases/compiler/APISample_compile.ts +++ b/tests/cases/compiler/APISample_compile.ts @@ -25,8 +25,9 @@ export function compile(fileNames: string[], options: ts.CompilerOptions): void console.log(`${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${ts.flattenDiagnosticMessageText(diagnostic.messageText, os.EOL)}`); }); - console.log(`Process exiting with code '${emitResult.emitResultStatus}'.`); - process.exit(emitResult.emitResultStatus); + var exitCode = emitResult.emitSkipped ? 1 : 0; + console.log(`Process exiting with code '${exitCode}'.`); + process.exit(exitCode); } compile(process.argv.slice(2), { diff --git a/tests/cases/compiler/APISample_watcher.ts b/tests/cases/compiler/APISample_watcher.ts index f29e72604d5..212f83b3935 100644 --- a/tests/cases/compiler/APISample_watcher.ts +++ b/tests/cases/compiler/APISample_watcher.ts @@ -67,7 +67,7 @@ function watch(rootFileNames: string[], options: ts.CompilerOptions) { function emitFile(fileName: string) { var output = services.getEmitOutput(fileName); - if (output.emitOutputStatus === ts.EmitReturnStatus.Succeeded) { + if (!output.emitSkipped) { console.log(`Emitting ${fileName}`); } else { @@ -88,7 +88,7 @@ function watch(rootFileNames: string[], options: ts.CompilerOptions) { allDiagnostics.forEach(diagnostic => { if (diagnostic.file) { var lineChar = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); - console.log(` Error ${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${diagnostic.messageText}`); + console.log(` Error ${diagnostic.file.fileName} (${lineChar.line},${lineChar.character}): ${ts.flattenDiagnosticMessageText(diagnostic.messageText, "\n")}`); } else { console.log(` Error: ${diagnostic.messageText}`);