From e8ec2966a264a2c61bfe841697035e188ca39d9b Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 12 Nov 2014 17:23:00 -0800 Subject: [PATCH 1/4] Removed lookup of TemplateStringsArray for non-ES6 targets. This will enable custom ES3/ES5 lib.d.ts files that omit the TemplateStringsArray type, but don't need it anyway. --- src/compiler/checker.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 5a990d4e9d..ac1edd33f6 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -9102,7 +9102,10 @@ module ts { globalNumberType = getGlobalType("Number"); globalBooleanType = getGlobalType("Boolean"); globalRegExpType = getGlobalType("RegExp"); - globalTemplateStringsArrayType = getGlobalType("TemplateStringsArray"); + + if (compilerOptions.target >= ScriptTarget.ES6) { + globalTemplateStringsArrayType = getGlobalType("TemplateStringsArray"); + } } initializeTypeChecker(); From 828e31b318246194e6124f08b6e1faa57ee3d2c8 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Wed, 12 Nov 2014 18:08:16 -0800 Subject: [PATCH 2/4] Baselines, using 'unknown' as a default type. --- src/compiler/checker.ts | 8 +++++--- tests/baselines/reference/noDefaultLib.errors.txt | 2 -- tests/baselines/reference/parser509698.errors.txt | 2 -- .../project/noDefaultLib/amd/noDefaultLib.errors.txt | 2 -- .../project/noDefaultLib/node/noDefaultLib.errors.txt | 2 -- .../baselines/reference/typeCheckTypeArgument.errors.txt | 2 -- 6 files changed, 5 insertions(+), 13 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index ac1edd33f6..11d9187583 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -9103,9 +9103,11 @@ module ts { globalBooleanType = getGlobalType("Boolean"); globalRegExpType = getGlobalType("RegExp"); - if (compilerOptions.target >= ScriptTarget.ES6) { - globalTemplateStringsArrayType = getGlobalType("TemplateStringsArray"); - } + // If we're in ES6 mode, load the TemplateStringsArray. + // Otherwise, default to 'unknown' for the purposes of type checking in LS scenarios. + globalTemplateStringsArrayType = compilerOptions.target >= ScriptTarget.ES6 + ? getGlobalType("TemplateStringsArray") + : unknownType; } initializeTypeChecker(); diff --git a/tests/baselines/reference/noDefaultLib.errors.txt b/tests/baselines/reference/noDefaultLib.errors.txt index f2c23d56d2..0209895005 100644 --- a/tests/baselines/reference/noDefaultLib.errors.txt +++ b/tests/baselines/reference/noDefaultLib.errors.txt @@ -1,12 +1,10 @@ error TS2318: Cannot find global type 'Boolean'. error TS2318: Cannot find global type 'IArguments'. -error TS2318: Cannot find global type 'TemplateStringsArray'. tests/cases/compiler/noDefaultLib.ts(4,11): error TS2317: Global type 'Array' must have 1 type parameter(s). !!! error TS2318: Cannot find global type 'Boolean'. !!! error TS2318: Cannot find global type 'IArguments'. -!!! error TS2318: Cannot find global type 'TemplateStringsArray'. ==== tests/cases/compiler/noDefaultLib.ts (1 errors) ==== /// var x; diff --git a/tests/baselines/reference/parser509698.errors.txt b/tests/baselines/reference/parser509698.errors.txt index 2a8cc607e1..2aaaec18dc 100644 --- a/tests/baselines/reference/parser509698.errors.txt +++ b/tests/baselines/reference/parser509698.errors.txt @@ -6,7 +6,6 @@ error TS2318: Cannot find global type 'Number'. error TS2318: Cannot find global type 'Object'. error TS2318: Cannot find global type 'RegExp'. error TS2318: Cannot find global type 'String'. -error TS2318: Cannot find global type 'TemplateStringsArray'. !!! error TS2318: Cannot find global type 'Array'. @@ -17,7 +16,6 @@ error TS2318: Cannot find global type 'TemplateStringsArray'. !!! error TS2318: Cannot find global type 'Object'. !!! error TS2318: Cannot find global type 'RegExp'. !!! error TS2318: Cannot find global type 'String'. -!!! error TS2318: Cannot find global type 'TemplateStringsArray'. ==== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser509698.ts (0 errors) ==== ///