* Add: Logical OR of "SymbolFlags.ValueModule" into the "meaning" argument of the "resolveName" call, in the "checkAndReportErrorForUsingNamespaceModuleAsValue" function, when checking if a namespace is being used as a type. * Fix: test "privacyImportParseErrors" error messages. * Fix: test "typeofInternalModules" error message. * Fix: test "moduleWithValuesAsType" error message. * Fix: test "moduleAssignmentCompat2" error messages. * Fix: test "moduleVisibilityTest3" error message. * Fix: test "getAccessorWithImpliedReturnTypeAndFunctionClassMerge" error messages. * Fix: test "staticInstanceResolution5" error messages. * Fix: test "noCrashOnImportShadowing" error message. * Fix: test "moduleAssignmentCompat3" error messages. * Fix: test "primaryExpressionMods" error message. * Fix: test "moduleInTypePosition1" error message. * Fix: test "moduleAssignmentCompat1" error messages. * Fix: test "moduleAssignmentCompat4" error messages. * Fix: test "moduleCrashBug1" error message.
This commit is contained in:
parent
91c37f72d3
commit
6de69df9c1
|
@ -1368,7 +1368,7 @@ namespace ts {
|
|||
}
|
||||
}
|
||||
else if (meaning & (SymbolFlags.Type & ~SymbolFlags.NamespaceModule & ~SymbolFlags.Value)) {
|
||||
const symbol = resolveSymbol(resolveName(errorLocation, name, SymbolFlags.NamespaceModule & ~SymbolFlags.Type, /*nameNotFoundMessage*/undefined, /*nameArg*/ undefined, /*isUse*/ false));
|
||||
const symbol = resolveSymbol(resolveName(errorLocation, name, (SymbolFlags.ValueModule | SymbolFlags.NamespaceModule) & ~SymbolFlags.Type, /*nameNotFoundMessage*/undefined, /*nameArg*/ undefined, /*isUse*/ false));
|
||||
if (symbol) {
|
||||
error(errorLocation, Diagnostics.Cannot_use_namespace_0_as_a_type, unescapeLeadingUnderscores(name));
|
||||
return true;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
tests/cases/compiler/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.ts(1,18): error TS2300: Duplicate identifier '_'.
|
||||
tests/cases/compiler/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.ts(1,41): error TS2304: Cannot find name '_'.
|
||||
tests/cases/compiler/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.ts(1,41): error TS2709: Cannot use namespace '_' as a type.
|
||||
tests/cases/compiler/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.ts(2,18): error TS2300: Duplicate identifier '_'.
|
||||
tests/cases/compiler/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.ts(2,34): error TS2304: Cannot find name '_'.
|
||||
tests/cases/compiler/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.ts(2,34): error TS2709: Cannot use namespace '_' as a type.
|
||||
tests/cases/compiler/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.ts(4,16): error TS2300: Duplicate identifier '_'.
|
||||
tests/cases/compiler/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.ts(15,15): error TS2300: Duplicate identifier '_'.
|
||||
tests/cases/compiler/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.ts(21,20): error TS1056: Accessors are only available when targeting ECMAScript 5 and higher.
|
||||
|
@ -12,12 +12,12 @@ tests/cases/compiler/getAccessorWithImpliedReturnTypeAndFunctionClassMerge.ts(21
|
|||
~
|
||||
!!! error TS2300: Duplicate identifier '_'.
|
||||
~
|
||||
!!! error TS2304: Cannot find name '_'.
|
||||
!!! error TS2709: Cannot use namespace '_' as a type.
|
||||
declare function _<T>(value: T): _<T>;
|
||||
~
|
||||
!!! error TS2300: Duplicate identifier '_'.
|
||||
~
|
||||
!!! error TS2304: Cannot find name '_'.
|
||||
!!! error TS2709: Cannot use namespace '_' as a type.
|
||||
|
||||
declare module _ {
|
||||
~
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
tests/cases/compiler/moduleAssignmentCompat1.ts(9,8): error TS2304: Cannot find name 'A'.
|
||||
tests/cases/compiler/moduleAssignmentCompat1.ts(10,8): error TS2304: Cannot find name 'B'.
|
||||
tests/cases/compiler/moduleAssignmentCompat1.ts(9,8): error TS2709: Cannot use namespace 'A' as a type.
|
||||
tests/cases/compiler/moduleAssignmentCompat1.ts(10,8): error TS2709: Cannot use namespace 'B' as a type.
|
||||
|
||||
|
||||
==== tests/cases/compiler/moduleAssignmentCompat1.ts (2 errors) ====
|
||||
|
@ -13,10 +13,10 @@ tests/cases/compiler/moduleAssignmentCompat1.ts(10,8): error TS2304: Cannot find
|
|||
|
||||
var a: A;
|
||||
~
|
||||
!!! error TS2304: Cannot find name 'A'.
|
||||
!!! error TS2709: Cannot use namespace 'A' as a type.
|
||||
var b: B;
|
||||
~
|
||||
!!! error TS2304: Cannot find name 'B'.
|
||||
!!! error TS2709: Cannot use namespace 'B' as a type.
|
||||
|
||||
// no error
|
||||
a = b;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
tests/cases/compiler/moduleAssignmentCompat2.ts(9,8): error TS2304: Cannot find name 'A'.
|
||||
tests/cases/compiler/moduleAssignmentCompat2.ts(10,8): error TS2304: Cannot find name 'B'.
|
||||
tests/cases/compiler/moduleAssignmentCompat2.ts(9,8): error TS2709: Cannot use namespace 'A' as a type.
|
||||
tests/cases/compiler/moduleAssignmentCompat2.ts(10,8): error TS2709: Cannot use namespace 'B' as a type.
|
||||
|
||||
|
||||
==== tests/cases/compiler/moduleAssignmentCompat2.ts (2 errors) ====
|
||||
|
@ -13,10 +13,10 @@ tests/cases/compiler/moduleAssignmentCompat2.ts(10,8): error TS2304: Cannot find
|
|||
|
||||
var a: A;
|
||||
~
|
||||
!!! error TS2304: Cannot find name 'A'.
|
||||
!!! error TS2709: Cannot use namespace 'A' as a type.
|
||||
var b: B;
|
||||
~
|
||||
!!! error TS2304: Cannot find name 'B'.
|
||||
!!! error TS2709: Cannot use namespace 'B' as a type.
|
||||
|
||||
a = b;
|
||||
b = a; // error
|
|
@ -1,5 +1,5 @@
|
|||
tests/cases/compiler/moduleAssignmentCompat3.ts(8,8): error TS2304: Cannot find name 'A'.
|
||||
tests/cases/compiler/moduleAssignmentCompat3.ts(9,8): error TS2304: Cannot find name 'B'.
|
||||
tests/cases/compiler/moduleAssignmentCompat3.ts(8,8): error TS2709: Cannot use namespace 'A' as a type.
|
||||
tests/cases/compiler/moduleAssignmentCompat3.ts(9,8): error TS2709: Cannot use namespace 'B' as a type.
|
||||
|
||||
|
||||
==== tests/cases/compiler/moduleAssignmentCompat3.ts (2 errors) ====
|
||||
|
@ -12,10 +12,10 @@ tests/cases/compiler/moduleAssignmentCompat3.ts(9,8): error TS2304: Cannot find
|
|||
|
||||
var a: A;
|
||||
~
|
||||
!!! error TS2304: Cannot find name 'A'.
|
||||
!!! error TS2709: Cannot use namespace 'A' as a type.
|
||||
var b: B;
|
||||
~
|
||||
!!! error TS2304: Cannot find name 'B'.
|
||||
!!! error TS2709: Cannot use namespace 'B' as a type.
|
||||
|
||||
// both errors
|
||||
a = b;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
tests/cases/compiler/moduleAssignmentCompat4.ts(12,8): error TS2304: Cannot find name 'A'.
|
||||
tests/cases/compiler/moduleAssignmentCompat4.ts(13,8): error TS2304: Cannot find name 'B'.
|
||||
tests/cases/compiler/moduleAssignmentCompat4.ts(12,8): error TS2709: Cannot use namespace 'A' as a type.
|
||||
tests/cases/compiler/moduleAssignmentCompat4.ts(13,8): error TS2709: Cannot use namespace 'B' as a type.
|
||||
|
||||
|
||||
==== tests/cases/compiler/moduleAssignmentCompat4.ts (2 errors) ====
|
||||
|
@ -16,10 +16,10 @@ tests/cases/compiler/moduleAssignmentCompat4.ts(13,8): error TS2304: Cannot find
|
|||
|
||||
var a: A;
|
||||
~
|
||||
!!! error TS2304: Cannot find name 'A'.
|
||||
!!! error TS2709: Cannot use namespace 'A' as a type.
|
||||
var b: B;
|
||||
~
|
||||
!!! error TS2304: Cannot find name 'B'.
|
||||
!!! error TS2709: Cannot use namespace 'B' as a type.
|
||||
|
||||
a = b;
|
||||
b = a; // error
|
|
@ -1,4 +1,4 @@
|
|||
tests/cases/compiler/moduleCrashBug1.ts(18,9): error TS2304: Cannot find name '_modes'.
|
||||
tests/cases/compiler/moduleCrashBug1.ts(18,9): error TS2709: Cannot use namespace '_modes' as a type.
|
||||
|
||||
|
||||
==== tests/cases/compiler/moduleCrashBug1.ts (1 errors) ====
|
||||
|
@ -21,7 +21,7 @@ tests/cases/compiler/moduleCrashBug1.ts(18,9): error TS2304: Cannot find name '_
|
|||
|
||||
var m : _modes;
|
||||
~~~~~~
|
||||
!!! error TS2304: Cannot find name '_modes'.
|
||||
!!! error TS2709: Cannot use namespace '_modes' as a type.
|
||||
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
tests/cases/compiler/moduleInTypePosition1_1.ts(3,14): error TS2304: Cannot find name 'WinJS'.
|
||||
tests/cases/compiler/moduleInTypePosition1_1.ts(3,14): error TS2709: Cannot use namespace 'WinJS' as a type.
|
||||
|
||||
|
||||
==== tests/cases/compiler/moduleInTypePosition1_1.ts (1 errors) ====
|
||||
|
@ -6,7 +6,7 @@ tests/cases/compiler/moduleInTypePosition1_1.ts(3,14): error TS2304: Cannot find
|
|||
import WinJS = require('./moduleInTypePosition1_0');
|
||||
var x = (w1: WinJS) => { };
|
||||
~~~~~
|
||||
!!! error TS2304: Cannot find name 'WinJS'.
|
||||
!!! error TS2709: Cannot use namespace 'WinJS' as a type.
|
||||
|
||||
==== tests/cases/compiler/moduleInTypePosition1_0.ts (0 errors) ====
|
||||
export class Promise {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
tests/cases/compiler/moduleVisibilityTest3.ts(20,22): error TS2304: Cannot find name 'modes'.
|
||||
tests/cases/compiler/moduleVisibilityTest3.ts(20,22): error TS2709: Cannot use namespace 'modes' as a type.
|
||||
tests/cases/compiler/moduleVisibilityTest3.ts(20,39): error TS2694: Namespace '_modes' has no exported member 'Mode'.
|
||||
tests/cases/compiler/moduleVisibilityTest3.ts(21,22): error TS2694: Namespace '_modes' has no exported member 'Mode'.
|
||||
|
||||
|
@ -25,7 +25,7 @@ tests/cases/compiler/moduleVisibilityTest3.ts(21,22): error TS2694: Namespace '_
|
|||
class Bug {
|
||||
constructor(p1: modes, p2: modes.Mode) {// should be an error on p2 - it's not exported
|
||||
~~~~~
|
||||
!!! error TS2304: Cannot find name 'modes'.
|
||||
!!! error TS2709: Cannot use namespace 'modes' as a type.
|
||||
~~~~
|
||||
!!! error TS2694: Namespace '_modes' has no exported member 'Mode'.
|
||||
var x:modes.Mode;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
tests/cases/compiler/moduleWithValuesAsType.ts(5,8): error TS2304: Cannot find name 'A'.
|
||||
tests/cases/compiler/moduleWithValuesAsType.ts(5,8): error TS2709: Cannot use namespace 'A' as a type.
|
||||
|
||||
|
||||
==== tests/cases/compiler/moduleWithValuesAsType.ts (1 errors) ====
|
||||
|
@ -8,4 +8,4 @@ tests/cases/compiler/moduleWithValuesAsType.ts(5,8): error TS2304: Cannot find n
|
|||
|
||||
var a: A; // no error
|
||||
~
|
||||
!!! error TS2304: Cannot find name 'A'.
|
||||
!!! error TS2709: Cannot use namespace 'A' as a type.
|
|
@ -1,5 +1,5 @@
|
|||
tests/cases/compiler/index.ts(4,1): error TS2693: 'B' only refers to a type, but is being used as a value here.
|
||||
tests/cases/compiler/index.ts(9,10): error TS2304: Cannot find name 'OriginalB'.
|
||||
tests/cases/compiler/index.ts(9,10): error TS2709: Cannot use namespace 'OriginalB' as a type.
|
||||
|
||||
|
||||
==== tests/cases/compiler/b.ts (0 errors) ====
|
||||
|
@ -30,4 +30,4 @@ tests/cases/compiler/index.ts(9,10): error TS2304: Cannot find name 'OriginalB'.
|
|||
|
||||
const y: OriginalB = x;
|
||||
~~~~~~~~~
|
||||
!!! error TS2304: Cannot find name 'OriginalB'.
|
||||
!!! error TS2709: Cannot use namespace 'OriginalB' as a type.
|
|
@ -1,4 +1,4 @@
|
|||
tests/cases/compiler/primaryExpressionMods.ts(7,8): error TS2304: Cannot find name 'M'.
|
||||
tests/cases/compiler/primaryExpressionMods.ts(7,8): error TS2709: Cannot use namespace 'M' as a type.
|
||||
tests/cases/compiler/primaryExpressionMods.ts(11,8): error TS2503: Cannot find namespace 'm'.
|
||||
|
||||
|
||||
|
@ -11,7 +11,7 @@ tests/cases/compiler/primaryExpressionMods.ts(11,8): error TS2503: Cannot find n
|
|||
var p: M.P; // Used as ModuleName
|
||||
var m: M = M; // Used as TypeName and PrimaryExpression (error on TypeName)
|
||||
~
|
||||
!!! error TS2304: Cannot find name 'M'.
|
||||
!!! error TS2709: Cannot use namespace 'M' as a type.
|
||||
var m2: typeof M = M; // Used as PrimaryExpression in TypeQuery
|
||||
var x1 = M.a; // Used as PrimaryExpression
|
||||
var x2 = m.a; // Same as M.a
|
||||
|
|
|
@ -26,14 +26,14 @@ tests/cases/compiler/privacyImportParseErrors.ts(251,40): error TS2307: Cannot f
|
|||
tests/cases/compiler/privacyImportParseErrors.ts(252,40): error TS2307: Cannot find module 'glo_M4_private'.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(255,1): error TS2668: 'export' modifier cannot be applied to ambient modules and module augmentations since they are always visible.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(255,23): error TS2664: Invalid module name in augmentation, module 'use_glo_M1_public' cannot be found.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(258,45): error TS2304: Cannot find name 'use_glo_M1_public'.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(261,39): error TS2304: Cannot find name 'use_glo_M1_public'.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(258,45): error TS2709: Cannot use namespace 'use_glo_M1_public' as a type.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(261,39): error TS2709: Cannot use namespace 'use_glo_M1_public' as a type.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(264,40): error TS2307: Cannot find module 'glo_M2_public'.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(273,38): error TS1147: Import declarations in a namespace cannot reference a module.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(277,45): error TS1147: Import declarations in a namespace cannot reference a module.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(284,16): error TS2664: Invalid module name in augmentation, module 'use_glo_M3_private' cannot be found.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(287,46): error TS2304: Cannot find name 'use_glo_M3_private'.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(290,40): error TS2304: Cannot find name 'use_glo_M3_private'.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(287,46): error TS2709: Cannot use namespace 'use_glo_M3_private' as a type.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(290,40): error TS2709: Cannot use namespace 'use_glo_M3_private' as a type.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(293,41): error TS2307: Cannot find module 'glo_M4_private'.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(302,38): error TS1147: Import declarations in a namespace cannot reference a module.
|
||||
tests/cases/compiler/privacyImportParseErrors.ts(306,45): error TS1147: Import declarations in a namespace cannot reference a module.
|
||||
|
@ -371,12 +371,12 @@ tests/cases/compiler/privacyImportParseErrors.ts(353,29): error TS1147: Import d
|
|||
export var use_glo_M1_public_v1_public: { new (): use_glo_M1_public.c1; };
|
||||
export var use_glo_M1_public_v2_public: use_glo_M1_public;
|
||||
~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2304: Cannot find name 'use_glo_M1_public'.
|
||||
!!! error TS2709: Cannot use namespace 'use_glo_M1_public' as a type.
|
||||
export var use_glo_M1_public_v3_public: () => use_glo_M1_public.c1;
|
||||
var use_glo_M1_public_v1_private: { new (): use_glo_M1_public.c1; };
|
||||
var use_glo_M1_public_v2_private: use_glo_M1_public;
|
||||
~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2304: Cannot find name 'use_glo_M1_public'.
|
||||
!!! error TS2709: Cannot use namespace 'use_glo_M1_public' as a type.
|
||||
var use_glo_M1_public_v3_private: () => use_glo_M1_public.c1;
|
||||
|
||||
import use_glo_M2_public = require("glo_M2_public");
|
||||
|
@ -412,12 +412,12 @@ tests/cases/compiler/privacyImportParseErrors.ts(353,29): error TS1147: Import d
|
|||
export var use_glo_M3_private_v1_public: { new (): use_glo_M3_private.c1; };
|
||||
export var use_glo_M3_private_v2_public: use_glo_M3_private;
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2304: Cannot find name 'use_glo_M3_private'.
|
||||
!!! error TS2709: Cannot use namespace 'use_glo_M3_private' as a type.
|
||||
export var use_glo_M3_private_v3_public: () => use_glo_M3_private.c1;
|
||||
var use_glo_M3_private_v1_private: { new (): use_glo_M3_private.c1; };
|
||||
var use_glo_M3_private_v2_private: use_glo_M3_private;
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
!!! error TS2304: Cannot find name 'use_glo_M3_private'.
|
||||
!!! error TS2709: Cannot use namespace 'use_glo_M3_private' as a type.
|
||||
var use_glo_M3_private_v3_private: () => use_glo_M3_private.c1;
|
||||
|
||||
import use_glo_M4_private = require("glo_M4_private");
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
tests/cases/compiler/staticInstanceResolution5_1.ts(4,14): error TS2304: Cannot find name 'WinJS'.
|
||||
tests/cases/compiler/staticInstanceResolution5_1.ts(5,23): error TS2304: Cannot find name 'WinJS'.
|
||||
tests/cases/compiler/staticInstanceResolution5_1.ts(6,16): error TS2304: Cannot find name 'WinJS'.
|
||||
tests/cases/compiler/staticInstanceResolution5_1.ts(4,14): error TS2709: Cannot use namespace 'WinJS' as a type.
|
||||
tests/cases/compiler/staticInstanceResolution5_1.ts(5,23): error TS2709: Cannot use namespace 'WinJS' as a type.
|
||||
tests/cases/compiler/staticInstanceResolution5_1.ts(6,16): error TS2709: Cannot use namespace 'WinJS' as a type.
|
||||
|
||||
|
||||
==== tests/cases/compiler/staticInstanceResolution5_1.ts (3 errors) ====
|
||||
|
@ -9,13 +9,13 @@ tests/cases/compiler/staticInstanceResolution5_1.ts(6,16): error TS2304: Cannot
|
|||
// these 3 should be errors
|
||||
var x = (w1: WinJS) => { };
|
||||
~~~~~
|
||||
!!! error TS2304: Cannot find name 'WinJS'.
|
||||
!!! error TS2709: Cannot use namespace 'WinJS' as a type.
|
||||
var y = function (w2: WinJS) { }
|
||||
~~~~~
|
||||
!!! error TS2304: Cannot find name 'WinJS'.
|
||||
!!! error TS2709: Cannot use namespace 'WinJS' as a type.
|
||||
function z(w3: WinJS) { }
|
||||
~~~~~
|
||||
!!! error TS2304: Cannot find name 'WinJS'.
|
||||
!!! error TS2709: Cannot use namespace 'WinJS' as a type.
|
||||
|
||||
==== tests/cases/compiler/staticInstanceResolution5_0.ts (0 errors) ====
|
||||
export class Promise {
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
tests/cases/compiler/typeofInternalModules.ts(15,16): error TS2708: Cannot use namespace 'importUninst' as a value.
|
||||
tests/cases/compiler/typeofInternalModules.ts(17,9): error TS2304: Cannot find name 'Outer'.
|
||||
tests/cases/compiler/typeofInternalModules.ts(17,9): error TS2709: Cannot use namespace 'Outer' as a type.
|
||||
tests/cases/compiler/typeofInternalModules.ts(19,1): error TS2322: Type 'typeof Outer' is not assignable to type 'typeof instantiated'.
|
||||
Property 'C' is missing in type 'typeof Outer'.
|
||||
tests/cases/compiler/typeofInternalModules.ts(21,16): error TS2708: Cannot use namespace 'importUninst' as a value.
|
||||
|
@ -28,7 +28,7 @@ tests/cases/compiler/typeofInternalModules.ts(23,1): error TS2322: Type 'typeof
|
|||
|
||||
var x4: Outer = Outer;
|
||||
~~~~~
|
||||
!!! error TS2304: Cannot find name 'Outer'.
|
||||
!!! error TS2709: Cannot use namespace 'Outer' as a type.
|
||||
var x5: typeof importInst;
|
||||
x5 = Outer;
|
||||
~~
|
||||
|
|
Loading…
Reference in a new issue