From a20e59cae4c9e05bb488c796420f6f33024f3e25 Mon Sep 17 00:00:00 2001 From: Alexader Date: Tue, 24 Apr 2018 21:48:46 +0300 Subject: [PATCH 1/2] Add warn that user can not use --strictPropertyInitialization without --strictNullChecks --- src/compiler/program.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 75cdd07845f..8738e4374cc 100755 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -2062,6 +2062,10 @@ namespace ts { } function verifyCompilerOptions() { + if (options.strictPropertyInitialization && !options.strictNullChecks) { + createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "strictPropertyInitialization", "strictNullChecks"); + } + if (options.isolatedModules) { if (options.declaration) { createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "declaration", "isolatedModules"); From f04a18ae5be563f24f5c6792a80a9642202badfa Mon Sep 17 00:00:00 2001 From: Alexander T Date: Thu, 26 Apr 2018 11:00:24 +0300 Subject: [PATCH 2/2] Add tests --- ...StrictPropertyInitializationStrictNullChecks.errors.txt | 7 +++++++ .../optionsStrictPropertyInitializationStrictNullChecks.js | 6 ++++++ ...onsStrictPropertyInitializationStrictNullChecks.symbols | 4 ++++ ...tionsStrictPropertyInitializationStrictNullChecks.types | 4 ++++ .../optionsStrictPropertyInitializationStrictNullChecks.ts | 3 +++ 5 files changed, 24 insertions(+) create mode 100644 tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.errors.txt create mode 100644 tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.js create mode 100644 tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.symbols create mode 100644 tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.types create mode 100644 tests/cases/compiler/optionsStrictPropertyInitializationStrictNullChecks.ts diff --git a/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.errors.txt b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.errors.txt new file mode 100644 index 00000000000..8ce2ddcaaa3 --- /dev/null +++ b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.errors.txt @@ -0,0 +1,7 @@ +error TS5052: Option 'strictPropertyInitialization' cannot be specified without specifying option 'strictNullChecks'. + + +!!! error TS5052: Option 'strictPropertyInitialization' cannot be specified without specifying option 'strictNullChecks'. +==== tests/cases/compiler/optionsStrictPropertyInitializationStrictNullChecks.ts (0 errors) ==== + var x; + \ No newline at end of file diff --git a/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.js b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.js new file mode 100644 index 00000000000..fc564c722da --- /dev/null +++ b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.js @@ -0,0 +1,6 @@ +//// [optionsStrictPropertyInitializationStrictNullChecks.ts] +var x; + + +//// [optionsStrictPropertyInitializationStrictNullChecks.js] +var x; diff --git a/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.symbols b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.symbols new file mode 100644 index 00000000000..7482215b822 --- /dev/null +++ b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.symbols @@ -0,0 +1,4 @@ +=== tests/cases/compiler/optionsStrictPropertyInitializationStrictNullChecks.ts === +var x; +>x : Symbol(x, Decl(optionsStrictPropertyInitializationStrictNullChecks.ts, 0, 3)) + diff --git a/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.types b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.types new file mode 100644 index 00000000000..f59278f8382 --- /dev/null +++ b/tests/baselines/reference/optionsStrictPropertyInitializationStrictNullChecks.types @@ -0,0 +1,4 @@ +=== tests/cases/compiler/optionsStrictPropertyInitializationStrictNullChecks.ts === +var x; +>x : any + diff --git a/tests/cases/compiler/optionsStrictPropertyInitializationStrictNullChecks.ts b/tests/cases/compiler/optionsStrictPropertyInitializationStrictNullChecks.ts new file mode 100644 index 00000000000..53afb64ccd4 --- /dev/null +++ b/tests/cases/compiler/optionsStrictPropertyInitializationStrictNullChecks.ts @@ -0,0 +1,3 @@ +// @strictPropertyInitialization: true + +var x;