diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 722e69c02d1..f111faaa4ef 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -4438,16 +4438,6 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg if (!getEmitDeclarations(options)) { createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1_or_option_2, "emitDeclarationOnly", "declaration", "composite"); } - - if (options.noEmit) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "emitDeclarationOnly", "noEmit"); - } - } - - if (options.noCheck) { - if (options.noEmit) { - createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "noCheck", "noEmit"); - } } if ( diff --git a/src/harness/harnessIO.ts b/src/harness/harnessIO.ts index c906b38f948..0082536d8aa 100644 --- a/src/harness/harnessIO.ts +++ b/src/harness/harnessIO.ts @@ -453,7 +453,7 @@ export namespace Compiler { ): DeclarationCompilationContext | undefined { if (options.declaration && result.diagnostics.length === 0) { if (options.emitDeclarationOnly) { - if (result.js.size > 0 || result.dts.size === 0) { + if (result.js.size > 0 || (result.dts.size === 0 && !options.noEmit)) { throw new Error("Only declaration files should be generated when emitDeclarationOnly:true"); } } diff --git a/tests/baselines/reference/declFileEmitDeclarationOnlyError2.errors.txt b/tests/baselines/reference/declFileEmitDeclarationOnlyError2.errors.txt index f9e315dfe77..f8e3a3a11e1 100644 --- a/tests/baselines/reference/declFileEmitDeclarationOnlyError2.errors.txt +++ b/tests/baselines/reference/declFileEmitDeclarationOnlyError2.errors.txt @@ -1,8 +1,6 @@ -error TS5053: Option 'emitDeclarationOnly' cannot be specified with option 'noEmit'. error TS5069: Option 'emitDeclarationOnly' cannot be specified without specifying option 'declaration' or option 'composite'. -!!! error TS5053: Option 'emitDeclarationOnly' cannot be specified with option 'noEmit'. !!! error TS5069: Option 'emitDeclarationOnly' cannot be specified without specifying option 'declaration' or option 'composite'. ==== hello.ts (0 errors) ==== var hello = "yo!"; diff --git a/tests/baselines/reference/noCheckNoEmit.errors.txt b/tests/baselines/reference/noCheckNoEmit.errors.txt deleted file mode 100644 index c7080758de8..00000000000 --- a/tests/baselines/reference/noCheckNoEmit.errors.txt +++ /dev/null @@ -1,9 +0,0 @@ -error TS5053: Option 'emitDeclarationOnly' cannot be specified with option 'noEmit'. -error TS5053: Option 'noCheck' cannot be specified with option 'noEmit'. - - -!!! error TS5053: Option 'emitDeclarationOnly' cannot be specified with option 'noEmit'. -!!! error TS5053: Option 'noCheck' cannot be specified with option 'noEmit'. -==== noCheckNoEmit.ts (0 errors) ==== - export const a: number = "not ok"; - \ No newline at end of file