From 476c8249ac91e298c881a33f772f14833abafa75 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Wed, 4 Feb 2015 17:48:29 -0800 Subject: [PATCH] Remove 'isEmitBlocked' from the program API. If emitting is blocked, then calling .emit on the program will simply return immediately with an appropriate reason given in the EmitResult. --- src/compiler/emitter.ts | 2 +- src/compiler/program.ts | 2 +- src/compiler/tsc.ts | 5 +---- src/compiler/types.ts | 2 -- src/harness/harness.ts | 12 +++--------- tests/baselines/reference/APISample_compile.js | 1 - tests/baselines/reference/APISample_compile.types | 5 ----- tests/baselines/reference/APISample_linter.js | 1 - tests/baselines/reference/APISample_linter.types | 5 ----- tests/baselines/reference/APISample_transform.js | 1 - tests/baselines/reference/APISample_transform.types | 5 ----- tests/baselines/reference/APISample_watcher.js | 1 - tests/baselines/reference/APISample_watcher.types | 5 ----- 13 files changed, 6 insertions(+), 41 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index cb0b8faab5b..9b080fa4c39 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -4471,7 +4471,7 @@ module ts { return { emitResultStatus, diagnostics, - sourceMaps: sourceMapDataList + sourceMaps: isEmitBlocked ? undefined : sourceMapDataList }; } } diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 6976195cc04..0c1d5a24daf 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -126,7 +126,7 @@ module ts { getNewLine: compilerHost.getNewLine, getSourceFile: program.getSourceFile, getSourceFiles: program.getSourceFiles, - isEmitBlocked: program.isEmitBlocked, + isEmitBlocked, writeFile: writeFileCallback || compilerHost.writeFile, }; } diff --git a/src/compiler/tsc.ts b/src/compiler/tsc.ts index 05f2305acf7..1491c90e979 100644 --- a/src/compiler/tsc.ts +++ b/src/compiler/tsc.ts @@ -338,10 +338,7 @@ module ts { else { var checkStart = new Date().getTime(); errors = program.getTypeCheckerDiagnostics(); - if (program.isEmitBlocked()) { - exitStatus = EmitReturnStatus.AllOutputGenerationSkipped; - } - else if (compilerOptions.noEmit) { + if (compilerOptions.noEmit) { exitStatus = EmitReturnStatus.Succeeded; } else { diff --git a/src/compiler/types.ts b/src/compiler/types.ts index b04a5944bfc..69735803e2b 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -947,8 +947,6 @@ module ts { */ emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback): EmitResult; - isEmitBlocked(sourceFile?: SourceFile): boolean; - // These will merge with the below diagnostics function in a followup checkin. getTypeCheckerDiagnostics(sourceFile?: SourceFile): Diagnostic[]; getTypeCheckerGlobalDiagnostics(): Diagnostic[]; diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 7b68ac80efa..a7d107c66d5 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -1081,22 +1081,16 @@ module Harness { (fn, contents, writeByteOrderMark) => fileOutputs.push({ fileName: fn, code: contents, writeByteOrderMark: writeByteOrderMark }), options.target, useCaseSensitiveFileNames, currentDirectory)); - var isEmitBlocked = program.isEmitBlocked(); - - // only emit if there weren't parse errors - var emitResult: ts.EmitResult; - if (!isEmitBlocked) { - emitResult = program.emit(); - } + var emitResult = program.emit(); var errors: HarnessDiagnostic[] = []; - program.getDiagnostics().concat(program.getTypeCheckerDiagnostics()).concat(emitResult ? emitResult.diagnostics : []).forEach(err => { + program.getDiagnostics().concat(program.getTypeCheckerDiagnostics()).concat(emitResult.diagnostics).forEach(err => { // TODO: new compiler formats errors after this point to add . and newlines so we'll just do it manually for now errors.push(getMinimalDiagnostic(err)); }); this.lastErrors = errors; - var result = new CompilerResult(fileOutputs, errors, program, ts.sys.getCurrentDirectory(), emitResult ? emitResult.sourceMaps : undefined); + var result = new CompilerResult(fileOutputs, errors, program, ts.sys.getCurrentDirectory(), emitResult.sourceMaps); onComplete(result, program); // reset what newline means in case the last test changed it diff --git a/tests/baselines/reference/APISample_compile.js b/tests/baselines/reference/APISample_compile.js index 6df54cc1b64..f057f673607 100644 --- a/tests/baselines/reference/APISample_compile.js +++ b/tests/baselines/reference/APISample_compile.js @@ -753,7 +753,6 @@ declare module "typescript" { * will be invoked when writing the javascript and declaration files. */ emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback): EmitResult; - isEmitBlocked(sourceFile?: SourceFile): boolean; getTypeCheckerDiagnostics(sourceFile?: SourceFile): Diagnostic[]; getTypeCheckerGlobalDiagnostics(): Diagnostic[]; getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; diff --git a/tests/baselines/reference/APISample_compile.types b/tests/baselines/reference/APISample_compile.types index cc07d75b0c6..00a34474041 100644 --- a/tests/baselines/reference/APISample_compile.types +++ b/tests/baselines/reference/APISample_compile.types @@ -2272,11 +2272,6 @@ declare module "typescript" { >WriteFileCallback : WriteFileCallback >EmitResult : EmitResult - isEmitBlocked(sourceFile?: SourceFile): boolean; ->isEmitBlocked : (sourceFile?: SourceFile) => boolean ->sourceFile : SourceFile ->SourceFile : SourceFile - getTypeCheckerDiagnostics(sourceFile?: SourceFile): Diagnostic[]; >getTypeCheckerDiagnostics : (sourceFile?: SourceFile) => Diagnostic[] >sourceFile : SourceFile diff --git a/tests/baselines/reference/APISample_linter.js b/tests/baselines/reference/APISample_linter.js index 1cf0ea77098..bc4b118891a 100644 --- a/tests/baselines/reference/APISample_linter.js +++ b/tests/baselines/reference/APISample_linter.js @@ -784,7 +784,6 @@ declare module "typescript" { * will be invoked when writing the javascript and declaration files. */ emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback): EmitResult; - isEmitBlocked(sourceFile?: SourceFile): boolean; getTypeCheckerDiagnostics(sourceFile?: SourceFile): Diagnostic[]; getTypeCheckerGlobalDiagnostics(): Diagnostic[]; getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; diff --git a/tests/baselines/reference/APISample_linter.types b/tests/baselines/reference/APISample_linter.types index 922a9ebea8e..3fbd07f08d8 100644 --- a/tests/baselines/reference/APISample_linter.types +++ b/tests/baselines/reference/APISample_linter.types @@ -2419,11 +2419,6 @@ declare module "typescript" { >WriteFileCallback : WriteFileCallback >EmitResult : EmitResult - isEmitBlocked(sourceFile?: SourceFile): boolean; ->isEmitBlocked : (sourceFile?: SourceFile) => boolean ->sourceFile : SourceFile ->SourceFile : SourceFile - getTypeCheckerDiagnostics(sourceFile?: SourceFile): Diagnostic[]; >getTypeCheckerDiagnostics : (sourceFile?: SourceFile) => Diagnostic[] >sourceFile : SourceFile diff --git a/tests/baselines/reference/APISample_transform.js b/tests/baselines/reference/APISample_transform.js index 8d0352ed170..4b50058a855 100644 --- a/tests/baselines/reference/APISample_transform.js +++ b/tests/baselines/reference/APISample_transform.js @@ -784,7 +784,6 @@ declare module "typescript" { * will be invoked when writing the javascript and declaration files. */ emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback): EmitResult; - isEmitBlocked(sourceFile?: SourceFile): boolean; getTypeCheckerDiagnostics(sourceFile?: SourceFile): Diagnostic[]; getTypeCheckerGlobalDiagnostics(): Diagnostic[]; getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; diff --git a/tests/baselines/reference/APISample_transform.types b/tests/baselines/reference/APISample_transform.types index 8c81d46e5bc..3882bd50445 100644 --- a/tests/baselines/reference/APISample_transform.types +++ b/tests/baselines/reference/APISample_transform.types @@ -2360,11 +2360,6 @@ declare module "typescript" { >WriteFileCallback : WriteFileCallback >EmitResult : EmitResult - isEmitBlocked(sourceFile?: SourceFile): boolean; ->isEmitBlocked : (sourceFile?: SourceFile) => boolean ->sourceFile : SourceFile ->SourceFile : SourceFile - getTypeCheckerDiagnostics(sourceFile?: SourceFile): Diagnostic[]; >getTypeCheckerDiagnostics : (sourceFile?: SourceFile) => Diagnostic[] >sourceFile : SourceFile diff --git a/tests/baselines/reference/APISample_watcher.js b/tests/baselines/reference/APISample_watcher.js index a4216e78ecd..5f99e7beefb 100644 --- a/tests/baselines/reference/APISample_watcher.js +++ b/tests/baselines/reference/APISample_watcher.js @@ -822,7 +822,6 @@ declare module "typescript" { * will be invoked when writing the javascript and declaration files. */ emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback): EmitResult; - isEmitBlocked(sourceFile?: SourceFile): boolean; getTypeCheckerDiagnostics(sourceFile?: SourceFile): Diagnostic[]; getTypeCheckerGlobalDiagnostics(): Diagnostic[]; getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; diff --git a/tests/baselines/reference/APISample_watcher.types b/tests/baselines/reference/APISample_watcher.types index 95f87b4978b..dadd3a08cea 100644 --- a/tests/baselines/reference/APISample_watcher.types +++ b/tests/baselines/reference/APISample_watcher.types @@ -2545,11 +2545,6 @@ declare module "typescript" { >WriteFileCallback : WriteFileCallback >EmitResult : EmitResult - isEmitBlocked(sourceFile?: SourceFile): boolean; ->isEmitBlocked : (sourceFile?: SourceFile) => boolean ->sourceFile : SourceFile ->SourceFile : SourceFile - getTypeCheckerDiagnostics(sourceFile?: SourceFile): Diagnostic[]; >getTypeCheckerDiagnostics : (sourceFile?: SourceFile) => Diagnostic[] >sourceFile : SourceFile