From cde06b65858650ed6002e3bbc6ea92cfb42aed62 Mon Sep 17 00:00:00 2001 From: Anil Anar Date: Sun, 6 Mar 2016 16:08:37 +0100 Subject: [PATCH 1/2] Fix #7397: Remove error checks for noEmit and out* compiler options combined. --- src/compiler/program.ts | 19 +------------------ ...ompilerOptionsDeclarationAndNoEmit.symbols | 6 ++++++ .../compilerOptionsDeclarationAndNoEmit.types | 6 ++++++ .../compilerOptionsOutAndNoEmit.symbols | 6 ++++++ .../compilerOptionsOutAndNoEmit.types | 6 ++++++ .../compilerOptionsOutDirAndNoEmit.symbols | 6 ++++++ .../compilerOptionsOutDirAndNoEmit.types | 6 ++++++ .../compilerOptionsOutFileAndNoEmit.symbols | 6 ++++++ .../compilerOptionsOutFileAndNoEmit.types | 6 ++++++ .../compilerOptionsDeclarationAndNoEmit.ts | 6 ++++++ .../compiler/compilerOptionsOutAndNoEmit.ts | 6 ++++++ .../compilerOptionsOutDirAndNoEmit.ts | 6 ++++++ .../compilerOptionsOutFileAndNoEmit.ts | 6 ++++++ 13 files changed, 73 insertions(+), 18 deletions(-) create mode 100644 tests/baselines/reference/compilerOptionsDeclarationAndNoEmit.symbols create mode 100644 tests/baselines/reference/compilerOptionsDeclarationAndNoEmit.types create mode 100644 tests/baselines/reference/compilerOptionsOutAndNoEmit.symbols create mode 100644 tests/baselines/reference/compilerOptionsOutAndNoEmit.types create mode 100644 tests/baselines/reference/compilerOptionsOutDirAndNoEmit.symbols create mode 100644 tests/baselines/reference/compilerOptionsOutDirAndNoEmit.types create mode 100644 tests/baselines/reference/compilerOptionsOutFileAndNoEmit.symbols create mode 100644 tests/baselines/reference/compilerOptionsOutFileAndNoEmit.types create mode 100644 tests/cases/compiler/compilerOptionsDeclarationAndNoEmit.ts create mode 100644 tests/cases/compiler/compilerOptionsOutAndNoEmit.ts create mode 100644 tests/cases/compiler/compilerOptionsOutDirAndNoEmit.ts create mode 100644 tests/cases/compiler/compilerOptionsOutFileAndNoEmit.ts diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 495fbde5a9992..60ec5cb429499 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -1746,24 +1746,7 @@ namespace ts { } } - if (options.noEmit) { - if (options.out) { - programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "out")); - } - - if (options.outFile) { - programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outFile")); - } - - if (options.outDir) { - programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "outDir")); - } - - if (options.declaration) { - programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_0_cannot_be_specified_with_option_1, "noEmit", "declaration")); - } - } - else if (options.allowJs && options.declaration) { + if (options.allowJs && options.declaration) { programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_0_cannot_be_specified_with_option_1, "allowJs", "declaration")); } diff --git a/tests/baselines/reference/compilerOptionsDeclarationAndNoEmit.symbols b/tests/baselines/reference/compilerOptionsDeclarationAndNoEmit.symbols new file mode 100644 index 0000000000000..4448defa95eb3 --- /dev/null +++ b/tests/baselines/reference/compilerOptionsDeclarationAndNoEmit.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/a.ts === + +class c { +>c : Symbol(c, Decl(a.ts, 0, 0)) +} + diff --git a/tests/baselines/reference/compilerOptionsDeclarationAndNoEmit.types b/tests/baselines/reference/compilerOptionsDeclarationAndNoEmit.types new file mode 100644 index 0000000000000..6f5caf9d48b78 --- /dev/null +++ b/tests/baselines/reference/compilerOptionsDeclarationAndNoEmit.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/a.ts === + +class c { +>c : c +} + diff --git a/tests/baselines/reference/compilerOptionsOutAndNoEmit.symbols b/tests/baselines/reference/compilerOptionsOutAndNoEmit.symbols new file mode 100644 index 0000000000000..4448defa95eb3 --- /dev/null +++ b/tests/baselines/reference/compilerOptionsOutAndNoEmit.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/a.ts === + +class c { +>c : Symbol(c, Decl(a.ts, 0, 0)) +} + diff --git a/tests/baselines/reference/compilerOptionsOutAndNoEmit.types b/tests/baselines/reference/compilerOptionsOutAndNoEmit.types new file mode 100644 index 0000000000000..6f5caf9d48b78 --- /dev/null +++ b/tests/baselines/reference/compilerOptionsOutAndNoEmit.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/a.ts === + +class c { +>c : c +} + diff --git a/tests/baselines/reference/compilerOptionsOutDirAndNoEmit.symbols b/tests/baselines/reference/compilerOptionsOutDirAndNoEmit.symbols new file mode 100644 index 0000000000000..4448defa95eb3 --- /dev/null +++ b/tests/baselines/reference/compilerOptionsOutDirAndNoEmit.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/a.ts === + +class c { +>c : Symbol(c, Decl(a.ts, 0, 0)) +} + diff --git a/tests/baselines/reference/compilerOptionsOutDirAndNoEmit.types b/tests/baselines/reference/compilerOptionsOutDirAndNoEmit.types new file mode 100644 index 0000000000000..6f5caf9d48b78 --- /dev/null +++ b/tests/baselines/reference/compilerOptionsOutDirAndNoEmit.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/a.ts === + +class c { +>c : c +} + diff --git a/tests/baselines/reference/compilerOptionsOutFileAndNoEmit.symbols b/tests/baselines/reference/compilerOptionsOutFileAndNoEmit.symbols new file mode 100644 index 0000000000000..4448defa95eb3 --- /dev/null +++ b/tests/baselines/reference/compilerOptionsOutFileAndNoEmit.symbols @@ -0,0 +1,6 @@ +=== tests/cases/compiler/a.ts === + +class c { +>c : Symbol(c, Decl(a.ts, 0, 0)) +} + diff --git a/tests/baselines/reference/compilerOptionsOutFileAndNoEmit.types b/tests/baselines/reference/compilerOptionsOutFileAndNoEmit.types new file mode 100644 index 0000000000000..6f5caf9d48b78 --- /dev/null +++ b/tests/baselines/reference/compilerOptionsOutFileAndNoEmit.types @@ -0,0 +1,6 @@ +=== tests/cases/compiler/a.ts === + +class c { +>c : c +} + diff --git a/tests/cases/compiler/compilerOptionsDeclarationAndNoEmit.ts b/tests/cases/compiler/compilerOptionsDeclarationAndNoEmit.ts new file mode 100644 index 0000000000000..41a890110202e --- /dev/null +++ b/tests/cases/compiler/compilerOptionsDeclarationAndNoEmit.ts @@ -0,0 +1,6 @@ +// @declaration: true +// @noEmit: true +// @fileName: a.ts + +class c { +} diff --git a/tests/cases/compiler/compilerOptionsOutAndNoEmit.ts b/tests/cases/compiler/compilerOptionsOutAndNoEmit.ts new file mode 100644 index 0000000000000..126043826bd76 --- /dev/null +++ b/tests/cases/compiler/compilerOptionsOutAndNoEmit.ts @@ -0,0 +1,6 @@ +// @out: outDir +// @noEmit: true +// @fileName: a.ts + +class c { +} diff --git a/tests/cases/compiler/compilerOptionsOutDirAndNoEmit.ts b/tests/cases/compiler/compilerOptionsOutDirAndNoEmit.ts new file mode 100644 index 0000000000000..fb701a5266168 --- /dev/null +++ b/tests/cases/compiler/compilerOptionsOutDirAndNoEmit.ts @@ -0,0 +1,6 @@ +// @outDir: outDir +// @noEmit: true +// @fileName: a.ts + +class c { +} diff --git a/tests/cases/compiler/compilerOptionsOutFileAndNoEmit.ts b/tests/cases/compiler/compilerOptionsOutFileAndNoEmit.ts new file mode 100644 index 0000000000000..2e75c0a976f50 --- /dev/null +++ b/tests/cases/compiler/compilerOptionsOutFileAndNoEmit.ts @@ -0,0 +1,6 @@ +// @outFile: a.js +// @noEmit: true +// @fileName: a.ts + +class c { +} From 8e35cdd52cda9156d642a5a1de43c97ad6b99061 Mon Sep 17 00:00:00 2001 From: Anil Anar Date: Sat, 12 Mar 2016 21:14:00 +0100 Subject: [PATCH 2/2] add missing conditional check --- src/compiler/program.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 60ec5cb429499..c0f769078e0be 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -1746,7 +1746,7 @@ namespace ts { } } - if (options.allowJs && options.declaration) { + if (!options.noEmit && options.allowJs && options.declaration) { programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Option_0_cannot_be_specified_with_option_1, "allowJs", "declaration")); }