587 lines
23 KiB
Text
587 lines
23 KiB
Text
=== tests/cases/compiler/constEnums.ts ===
|
|
const enum Enum1 {
|
|
>Enum1 : Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
|
|
A0 = 100,
|
|
>A0 : Enum1, Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18))
|
|
>100 : number
|
|
}
|
|
|
|
const enum Enum1 {
|
|
>Enum1 : Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
|
|
// correct cases
|
|
A,
|
|
>A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18))
|
|
|
|
B,
|
|
>B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6))
|
|
|
|
C = 10,
|
|
>C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6))
|
|
>10 : number
|
|
|
|
D = A | B,
|
|
>D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11))
|
|
>A | B : number
|
|
>A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18))
|
|
>B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6))
|
|
|
|
E = A | 1,
|
|
>E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14))
|
|
>A | 1 : number
|
|
>A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18))
|
|
>1 : number
|
|
|
|
F = 1 | A,
|
|
>F : Enum1, Symbol(Enum1.F, Decl(constEnums.ts, 10, 14))
|
|
>1 | A : number
|
|
>1 : number
|
|
>A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18))
|
|
|
|
G = (1 & 1),
|
|
>G : Enum1, Symbol(Enum1.G, Decl(constEnums.ts, 11, 14))
|
|
>(1 & 1) : number
|
|
>1 & 1 : number
|
|
>1 : number
|
|
>1 : number
|
|
|
|
H = ~(A | B),
|
|
>H : Enum1, Symbol(Enum1.H, Decl(constEnums.ts, 12, 16))
|
|
>~(A | B) : number
|
|
>(A | B) : number
|
|
>A | B : number
|
|
>A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18))
|
|
>B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6))
|
|
|
|
I = A >>> 1,
|
|
>I : Enum1, Symbol(Enum1.I, Decl(constEnums.ts, 13, 17))
|
|
>A >>> 1 : number
|
|
>A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18))
|
|
>1 : number
|
|
|
|
J = 1 & A,
|
|
>J : Enum1, Symbol(Enum1.J, Decl(constEnums.ts, 14, 16))
|
|
>1 & A : number
|
|
>1 : number
|
|
>A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18))
|
|
|
|
K = ~(1 | 5),
|
|
>K : Enum1, Symbol(Enum1.K, Decl(constEnums.ts, 15, 14))
|
|
>~(1 | 5) : number
|
|
>(1 | 5) : number
|
|
>1 | 5 : number
|
|
>1 : number
|
|
>5 : number
|
|
|
|
L = ~D,
|
|
>L : Enum1, Symbol(Enum1.L, Decl(constEnums.ts, 16, 17))
|
|
>~D : number
|
|
>D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11))
|
|
|
|
M = E << B,
|
|
>M : Enum1, Symbol(Enum1.M, Decl(constEnums.ts, 17, 11))
|
|
>E << B : number
|
|
>E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14))
|
|
>B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6))
|
|
|
|
N = E << 1,
|
|
>N : Enum1, Symbol(Enum1.N, Decl(constEnums.ts, 18, 15))
|
|
>E << 1 : number
|
|
>E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14))
|
|
>1 : number
|
|
|
|
O = E >> B,
|
|
>O : Enum1, Symbol(Enum1.O, Decl(constEnums.ts, 19, 15))
|
|
>E >> B : number
|
|
>E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14))
|
|
>B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6))
|
|
|
|
P = E >> 1,
|
|
>P : Enum1, Symbol(Enum1.P, Decl(constEnums.ts, 20, 15))
|
|
>E >> 1 : number
|
|
>E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14))
|
|
>1 : number
|
|
|
|
Q = -D,
|
|
>Q : Enum1, Symbol(Enum1.Q, Decl(constEnums.ts, 21, 15))
|
|
>-D : number
|
|
>D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11))
|
|
|
|
R = C & 5,
|
|
>R : Enum1, Symbol(Enum1.R, Decl(constEnums.ts, 22, 11))
|
|
>C & 5 : number
|
|
>C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6))
|
|
>5 : number
|
|
|
|
S = 5 & C,
|
|
>S : Enum1, Symbol(Enum1.S, Decl(constEnums.ts, 23, 14))
|
|
>5 & C : number
|
|
>5 : number
|
|
>C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6))
|
|
|
|
T = C | D,
|
|
>T : Enum1, Symbol(Enum1.T, Decl(constEnums.ts, 24, 14))
|
|
>C | D : number
|
|
>C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6))
|
|
>D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11))
|
|
|
|
U = C | 1,
|
|
>U : Enum1, Symbol(Enum1.U, Decl(constEnums.ts, 25, 14))
|
|
>C | 1 : number
|
|
>C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6))
|
|
>1 : number
|
|
|
|
V = 10 | D,
|
|
>V : Enum1, Symbol(Enum1.V, Decl(constEnums.ts, 26, 14))
|
|
>10 | D : number
|
|
>10 : number
|
|
>D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11))
|
|
|
|
W = Enum1.V,
|
|
>W : Enum1, Symbol(Enum1.W, Decl(constEnums.ts, 27, 15))
|
|
>Enum1.V : Enum1, Symbol(Enum1.V, Decl(constEnums.ts, 26, 14))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>V : Enum1, Symbol(Enum1.V, Decl(constEnums.ts, 26, 14))
|
|
|
|
// correct cases: reference to the enum member from different enum declaration
|
|
W1 = A0,
|
|
>W1 : Enum1, Symbol(Enum1.W1, Decl(constEnums.ts, 28, 16))
|
|
>A0 : Enum1, Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18))
|
|
|
|
W2 = Enum1.A0,
|
|
>W2 : Enum1, Symbol(Enum1.W2, Decl(constEnums.ts, 31, 12))
|
|
>Enum1.A0 : Enum1, Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>A0 : Enum1, Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18))
|
|
|
|
W3 = Enum1["A0"],
|
|
>W3 : Enum1, Symbol(Enum1.W3, Decl(constEnums.ts, 32, 18))
|
|
>Enum1["A0"] : Enum1
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>"A0" : string, Symbol(Enum1.A0, Decl(constEnums.ts, 0, 18))
|
|
|
|
W4 = Enum1["W"],
|
|
>W4 : Enum1, Symbol(Enum1.W4, Decl(constEnums.ts, 33, 21))
|
|
>Enum1["W"] : Enum1
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>"W" : string, Symbol(Enum1.W, Decl(constEnums.ts, 27, 15))
|
|
}
|
|
|
|
|
|
module A {
|
|
>A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1))
|
|
|
|
export module B {
|
|
>B : typeof B, Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
|
|
export module C {
|
|
>C : typeof C, Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
|
|
export const enum E {
|
|
>E : E, Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
|
|
V1 = 1,
|
|
>V1 : E, Symbol(I.V1, Decl(constEnums.ts, 41, 33))
|
|
>1 : number
|
|
|
|
V2 = A.B.C.E.V1 | 100
|
|
>V2 : E, Symbol(I.V2, Decl(constEnums.ts, 42, 23))
|
|
>A.B.C.E.V1 | 100 : number
|
|
>A.B.C.E.V1 : E, Symbol(I.V1, Decl(constEnums.ts, 41, 33))
|
|
>A.B.C.E : typeof E, Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
>A.B.C : typeof C, Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
>A.B : typeof B, Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
>A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1))
|
|
>B : typeof B, Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
>C : typeof C, Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
>E : typeof E, Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
>V1 : E, Symbol(I.V1, Decl(constEnums.ts, 41, 33))
|
|
>100 : number
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
module A {
|
|
>A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1))
|
|
|
|
export module B {
|
|
>B : typeof B, Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
|
|
export module C {
|
|
>C : typeof C, Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
|
|
export const enum E {
|
|
>E : E, Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
|
|
V3 = A.B.C.E["V2"] & 200,
|
|
>V3 : E, Symbol(I.V3, Decl(constEnums.ts, 52, 33))
|
|
>A.B.C.E["V2"] & 200 : number
|
|
>A.B.C.E["V2"] : E
|
|
>A.B.C.E : typeof E, Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
>A.B.C : typeof C, Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
>A.B : typeof B, Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
>A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1))
|
|
>B : typeof B, Symbol(B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
>C : typeof C, Symbol(C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
>E : typeof E, Symbol(E, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
>"V2" : string, Symbol(I.V2, Decl(constEnums.ts, 42, 23))
|
|
>200 : number
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
module A1 {
|
|
>A1 : typeof A1, Symbol(A1, Decl(constEnums.ts, 57, 1))
|
|
|
|
export module B {
|
|
>B : typeof B, Symbol(B, Decl(constEnums.ts, 59, 11))
|
|
|
|
export module C {
|
|
>C : typeof C, Symbol(C, Decl(constEnums.ts, 60, 21))
|
|
|
|
export const enum E {
|
|
>E : E, Symbol(E, Decl(constEnums.ts, 61, 25))
|
|
|
|
V1 = 10,
|
|
>V1 : E, Symbol(E.V1, Decl(constEnums.ts, 62, 33))
|
|
>10 : number
|
|
|
|
V2 = 110,
|
|
>V2 : E, Symbol(E.V2, Decl(constEnums.ts, 63, 24))
|
|
>110 : number
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
module A2 {
|
|
>A2 : typeof A2, Symbol(A2, Decl(constEnums.ts, 68, 1))
|
|
|
|
export module B {
|
|
>B : typeof B, Symbol(B, Decl(constEnums.ts, 70, 11))
|
|
|
|
export module C {
|
|
>C : typeof C, Symbol(C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9))
|
|
|
|
export const enum E {
|
|
>E : E, Symbol(E, Decl(constEnums.ts, 72, 25))
|
|
|
|
V1 = 10,
|
|
>V1 : E, Symbol(E.V1, Decl(constEnums.ts, 73, 33))
|
|
>10 : number
|
|
|
|
V2 = 110,
|
|
>V2 : E, Symbol(E.V2, Decl(constEnums.ts, 74, 24))
|
|
>110 : number
|
|
}
|
|
}
|
|
// module C will be classified as value
|
|
export module C {
|
|
>C : typeof C, Symbol(C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9))
|
|
|
|
var x = 1
|
|
>x : number, Symbol(x, Decl(constEnums.ts, 80, 15))
|
|
>1 : number
|
|
}
|
|
}
|
|
}
|
|
|
|
import I = A.B.C.E;
|
|
>I : typeof I, Symbol(I, Decl(constEnums.ts, 83, 1))
|
|
>A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1))
|
|
>B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
>C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
>E : I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
|
|
import I1 = A1.B;
|
|
>I1 : typeof I1, Symbol(I1, Decl(constEnums.ts, 85, 19))
|
|
>A1 : typeof A1, Symbol(A1, Decl(constEnums.ts, 57, 1))
|
|
>B : typeof I1, Symbol(I1, Decl(constEnums.ts, 59, 11))
|
|
|
|
import I2 = A2.B;
|
|
>I2 : typeof I2, Symbol(I2, Decl(constEnums.ts, 86, 17))
|
|
>A2 : typeof A2, Symbol(A2, Decl(constEnums.ts, 68, 1))
|
|
>B : typeof I2, Symbol(I2, Decl(constEnums.ts, 70, 11))
|
|
|
|
function foo0(e: I): void {
|
|
>foo0 : (e: I) => void, Symbol(foo0, Decl(constEnums.ts, 87, 17))
|
|
>e : I, Symbol(e, Decl(constEnums.ts, 89, 14))
|
|
>I : I, Symbol(I, Decl(constEnums.ts, 83, 1))
|
|
|
|
if (e === I.V1) {
|
|
>e === I.V1 : boolean
|
|
>e : I, Symbol(e, Decl(constEnums.ts, 89, 14))
|
|
>I.V1 : I, Symbol(I.V1, Decl(constEnums.ts, 41, 33))
|
|
>I : typeof I, Symbol(I, Decl(constEnums.ts, 83, 1))
|
|
>V1 : I, Symbol(I.V1, Decl(constEnums.ts, 41, 33))
|
|
}
|
|
else if (e === I.V2) {
|
|
>e === I.V2 : boolean
|
|
>e : I, Symbol(e, Decl(constEnums.ts, 89, 14))
|
|
>I.V2 : I, Symbol(I.V2, Decl(constEnums.ts, 42, 23))
|
|
>I : typeof I, Symbol(I, Decl(constEnums.ts, 83, 1))
|
|
>V2 : I, Symbol(I.V2, Decl(constEnums.ts, 42, 23))
|
|
}
|
|
}
|
|
|
|
function foo1(e: I1.C.E): void {
|
|
>foo1 : (e: I1.C.E) => void, Symbol(foo1, Decl(constEnums.ts, 94, 1))
|
|
>e : I1.C.E, Symbol(e, Decl(constEnums.ts, 96, 14))
|
|
>I1 : any, Symbol(I1, Decl(constEnums.ts, 85, 19))
|
|
>C : any, Symbol(I1.C, Decl(constEnums.ts, 60, 21))
|
|
>E : I1.C.E, Symbol(I1.C.E, Decl(constEnums.ts, 61, 25))
|
|
|
|
if (e === I1.C.E.V1) {
|
|
>e === I1.C.E.V1 : boolean
|
|
>e : I1.C.E, Symbol(e, Decl(constEnums.ts, 96, 14))
|
|
>I1.C.E.V1 : I1.C.E, Symbol(I1.C.E.V1, Decl(constEnums.ts, 62, 33))
|
|
>I1.C.E : typeof I1.C.E, Symbol(I1.C.E, Decl(constEnums.ts, 61, 25))
|
|
>I1.C : typeof I1.C, Symbol(I1.C, Decl(constEnums.ts, 60, 21))
|
|
>I1 : typeof I1, Symbol(I1, Decl(constEnums.ts, 85, 19))
|
|
>C : typeof I1.C, Symbol(I1.C, Decl(constEnums.ts, 60, 21))
|
|
>E : typeof I1.C.E, Symbol(I1.C.E, Decl(constEnums.ts, 61, 25))
|
|
>V1 : I1.C.E, Symbol(I1.C.E.V1, Decl(constEnums.ts, 62, 33))
|
|
}
|
|
else if (e === I1.C.E.V2) {
|
|
>e === I1.C.E.V2 : boolean
|
|
>e : I1.C.E, Symbol(e, Decl(constEnums.ts, 96, 14))
|
|
>I1.C.E.V2 : I1.C.E, Symbol(I1.C.E.V2, Decl(constEnums.ts, 63, 24))
|
|
>I1.C.E : typeof I1.C.E, Symbol(I1.C.E, Decl(constEnums.ts, 61, 25))
|
|
>I1.C : typeof I1.C, Symbol(I1.C, Decl(constEnums.ts, 60, 21))
|
|
>I1 : typeof I1, Symbol(I1, Decl(constEnums.ts, 85, 19))
|
|
>C : typeof I1.C, Symbol(I1.C, Decl(constEnums.ts, 60, 21))
|
|
>E : typeof I1.C.E, Symbol(I1.C.E, Decl(constEnums.ts, 61, 25))
|
|
>V2 : I1.C.E, Symbol(I1.C.E.V2, Decl(constEnums.ts, 63, 24))
|
|
}
|
|
}
|
|
|
|
function foo2(e: I2.C.E): void {
|
|
>foo2 : (e: I2.C.E) => void, Symbol(foo2, Decl(constEnums.ts, 101, 1))
|
|
>e : I2.C.E, Symbol(e, Decl(constEnums.ts, 103, 14))
|
|
>I2 : any, Symbol(I2, Decl(constEnums.ts, 86, 17))
|
|
>C : any, Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9))
|
|
>E : I2.C.E, Symbol(I2.C.E, Decl(constEnums.ts, 72, 25))
|
|
|
|
if (e === I2.C.E.V1) {
|
|
>e === I2.C.E.V1 : boolean
|
|
>e : I2.C.E, Symbol(e, Decl(constEnums.ts, 103, 14))
|
|
>I2.C.E.V1 : I2.C.E, Symbol(I2.C.E.V1, Decl(constEnums.ts, 73, 33))
|
|
>I2.C.E : typeof I2.C.E, Symbol(I2.C.E, Decl(constEnums.ts, 72, 25))
|
|
>I2.C : typeof I2.C, Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9))
|
|
>I2 : typeof I2, Symbol(I2, Decl(constEnums.ts, 86, 17))
|
|
>C : typeof I2.C, Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9))
|
|
>E : typeof I2.C.E, Symbol(I2.C.E, Decl(constEnums.ts, 72, 25))
|
|
>V1 : I2.C.E, Symbol(I2.C.E.V1, Decl(constEnums.ts, 73, 33))
|
|
}
|
|
else if (e === I2.C.E.V2) {
|
|
>e === I2.C.E.V2 : boolean
|
|
>e : I2.C.E, Symbol(e, Decl(constEnums.ts, 103, 14))
|
|
>I2.C.E.V2 : I2.C.E, Symbol(I2.C.E.V2, Decl(constEnums.ts, 74, 24))
|
|
>I2.C.E : typeof I2.C.E, Symbol(I2.C.E, Decl(constEnums.ts, 72, 25))
|
|
>I2.C : typeof I2.C, Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9))
|
|
>I2 : typeof I2, Symbol(I2, Decl(constEnums.ts, 86, 17))
|
|
>C : typeof I2.C, Symbol(I2.C, Decl(constEnums.ts, 71, 21), Decl(constEnums.ts, 77, 9))
|
|
>E : typeof I2.C.E, Symbol(I2.C.E, Decl(constEnums.ts, 72, 25))
|
|
>V2 : I2.C.E, Symbol(I2.C.E.V2, Decl(constEnums.ts, 74, 24))
|
|
}
|
|
}
|
|
|
|
|
|
function foo(x: Enum1) {
|
|
>foo : (x: Enum1) => void, Symbol(foo, Decl(constEnums.ts, 108, 1))
|
|
>x : Enum1, Symbol(x, Decl(constEnums.ts, 111, 13))
|
|
>Enum1 : Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
|
|
switch (x) {
|
|
>x : Enum1, Symbol(x, Decl(constEnums.ts, 111, 13))
|
|
|
|
case Enum1.A:
|
|
>Enum1.A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>A : Enum1, Symbol(Enum1.A, Decl(constEnums.ts, 4, 18))
|
|
|
|
case Enum1.B:
|
|
>Enum1.B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>B : Enum1, Symbol(Enum1.B, Decl(constEnums.ts, 6, 6))
|
|
|
|
case Enum1.C:
|
|
>Enum1.C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>C : Enum1, Symbol(Enum1.C, Decl(constEnums.ts, 7, 6))
|
|
|
|
case Enum1.D:
|
|
>Enum1.D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>D : Enum1, Symbol(Enum1.D, Decl(constEnums.ts, 8, 11))
|
|
|
|
case Enum1.E:
|
|
>Enum1.E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>E : Enum1, Symbol(Enum1.E, Decl(constEnums.ts, 9, 14))
|
|
|
|
case Enum1.F:
|
|
>Enum1.F : Enum1, Symbol(Enum1.F, Decl(constEnums.ts, 10, 14))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>F : Enum1, Symbol(Enum1.F, Decl(constEnums.ts, 10, 14))
|
|
|
|
case Enum1.G:
|
|
>Enum1.G : Enum1, Symbol(Enum1.G, Decl(constEnums.ts, 11, 14))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>G : Enum1, Symbol(Enum1.G, Decl(constEnums.ts, 11, 14))
|
|
|
|
case Enum1.H:
|
|
>Enum1.H : Enum1, Symbol(Enum1.H, Decl(constEnums.ts, 12, 16))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>H : Enum1, Symbol(Enum1.H, Decl(constEnums.ts, 12, 16))
|
|
|
|
case Enum1.I:
|
|
>Enum1.I : Enum1, Symbol(Enum1.I, Decl(constEnums.ts, 13, 17))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>I : Enum1, Symbol(Enum1.I, Decl(constEnums.ts, 13, 17))
|
|
|
|
case Enum1.J:
|
|
>Enum1.J : Enum1, Symbol(Enum1.J, Decl(constEnums.ts, 14, 16))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>J : Enum1, Symbol(Enum1.J, Decl(constEnums.ts, 14, 16))
|
|
|
|
case Enum1.K:
|
|
>Enum1.K : Enum1, Symbol(Enum1.K, Decl(constEnums.ts, 15, 14))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>K : Enum1, Symbol(Enum1.K, Decl(constEnums.ts, 15, 14))
|
|
|
|
case Enum1.L:
|
|
>Enum1.L : Enum1, Symbol(Enum1.L, Decl(constEnums.ts, 16, 17))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>L : Enum1, Symbol(Enum1.L, Decl(constEnums.ts, 16, 17))
|
|
|
|
case Enum1.M:
|
|
>Enum1.M : Enum1, Symbol(Enum1.M, Decl(constEnums.ts, 17, 11))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>M : Enum1, Symbol(Enum1.M, Decl(constEnums.ts, 17, 11))
|
|
|
|
case Enum1.N:
|
|
>Enum1.N : Enum1, Symbol(Enum1.N, Decl(constEnums.ts, 18, 15))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>N : Enum1, Symbol(Enum1.N, Decl(constEnums.ts, 18, 15))
|
|
|
|
case Enum1.O:
|
|
>Enum1.O : Enum1, Symbol(Enum1.O, Decl(constEnums.ts, 19, 15))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>O : Enum1, Symbol(Enum1.O, Decl(constEnums.ts, 19, 15))
|
|
|
|
case Enum1.P:
|
|
>Enum1.P : Enum1, Symbol(Enum1.P, Decl(constEnums.ts, 20, 15))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>P : Enum1, Symbol(Enum1.P, Decl(constEnums.ts, 20, 15))
|
|
|
|
case Enum1.Q:
|
|
>Enum1.Q : Enum1, Symbol(Enum1.Q, Decl(constEnums.ts, 21, 15))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>Q : Enum1, Symbol(Enum1.Q, Decl(constEnums.ts, 21, 15))
|
|
|
|
case Enum1.R:
|
|
>Enum1.R : Enum1, Symbol(Enum1.R, Decl(constEnums.ts, 22, 11))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>R : Enum1, Symbol(Enum1.R, Decl(constEnums.ts, 22, 11))
|
|
|
|
case Enum1.S:
|
|
>Enum1.S : Enum1, Symbol(Enum1.S, Decl(constEnums.ts, 23, 14))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>S : Enum1, Symbol(Enum1.S, Decl(constEnums.ts, 23, 14))
|
|
|
|
case Enum1["T"]:
|
|
>Enum1["T"] : Enum1
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>"T" : string, Symbol(Enum1.T, Decl(constEnums.ts, 24, 14))
|
|
|
|
case Enum1.U:
|
|
>Enum1.U : Enum1, Symbol(Enum1.U, Decl(constEnums.ts, 25, 14))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>U : Enum1, Symbol(Enum1.U, Decl(constEnums.ts, 25, 14))
|
|
|
|
case Enum1.V:
|
|
>Enum1.V : Enum1, Symbol(Enum1.V, Decl(constEnums.ts, 26, 14))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>V : Enum1, Symbol(Enum1.V, Decl(constEnums.ts, 26, 14))
|
|
|
|
case Enum1.W:
|
|
>Enum1.W : Enum1, Symbol(Enum1.W, Decl(constEnums.ts, 27, 15))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>W : Enum1, Symbol(Enum1.W, Decl(constEnums.ts, 27, 15))
|
|
|
|
case Enum1.W1:
|
|
>Enum1.W1 : Enum1, Symbol(Enum1.W1, Decl(constEnums.ts, 28, 16))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>W1 : Enum1, Symbol(Enum1.W1, Decl(constEnums.ts, 28, 16))
|
|
|
|
case Enum1.W2:
|
|
>Enum1.W2 : Enum1, Symbol(Enum1.W2, Decl(constEnums.ts, 31, 12))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>W2 : Enum1, Symbol(Enum1.W2, Decl(constEnums.ts, 31, 12))
|
|
|
|
case Enum1.W3:
|
|
>Enum1.W3 : Enum1, Symbol(Enum1.W3, Decl(constEnums.ts, 32, 18))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>W3 : Enum1, Symbol(Enum1.W3, Decl(constEnums.ts, 32, 18))
|
|
|
|
case Enum1.W4:
|
|
>Enum1.W4 : Enum1, Symbol(Enum1.W4, Decl(constEnums.ts, 33, 21))
|
|
>Enum1 : typeof Enum1, Symbol(Enum1, Decl(constEnums.ts, 0, 0), Decl(constEnums.ts, 2, 1))
|
|
>W4 : Enum1, Symbol(Enum1.W4, Decl(constEnums.ts, 33, 21))
|
|
|
|
break;
|
|
}
|
|
}
|
|
|
|
function bar(e: A.B.C.E): number {
|
|
>bar : (e: I) => number, Symbol(bar, Decl(constEnums.ts, 142, 1))
|
|
>e : I, Symbol(e, Decl(constEnums.ts, 144, 13))
|
|
>A : any, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1))
|
|
>B : any, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
>C : any, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
>E : I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
|
|
switch (e) {
|
|
>e : I, Symbol(e, Decl(constEnums.ts, 144, 13))
|
|
|
|
case A.B.C.E.V1: return 1;
|
|
>A.B.C.E.V1 : I, Symbol(I.V1, Decl(constEnums.ts, 41, 33))
|
|
>A.B.C.E : typeof I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
>A.B.C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
>A.B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
>A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1))
|
|
>B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
>C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
>E : typeof I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
>V1 : I, Symbol(I.V1, Decl(constEnums.ts, 41, 33))
|
|
>1 : number
|
|
|
|
case A.B.C.E.V2: return 1;
|
|
>A.B.C.E.V2 : I, Symbol(I.V2, Decl(constEnums.ts, 42, 23))
|
|
>A.B.C.E : typeof I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
>A.B.C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
>A.B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
>A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1))
|
|
>B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
>C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
>E : typeof I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
>V2 : I, Symbol(I.V2, Decl(constEnums.ts, 42, 23))
|
|
>1 : number
|
|
|
|
case A.B.C.E.V3: return 1;
|
|
>A.B.C.E.V3 : I, Symbol(I.V3, Decl(constEnums.ts, 52, 33))
|
|
>A.B.C.E : typeof I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
>A.B.C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
>A.B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
>A : typeof A, Symbol(A, Decl(constEnums.ts, 35, 1), Decl(constEnums.ts, 47, 1))
|
|
>B : typeof A.B, Symbol(A.B, Decl(constEnums.ts, 38, 10), Decl(constEnums.ts, 49, 10))
|
|
>C : typeof A.B.C, Symbol(A.B.C, Decl(constEnums.ts, 39, 21), Decl(constEnums.ts, 50, 21))
|
|
>E : typeof I, Symbol(I, Decl(constEnums.ts, 40, 25), Decl(constEnums.ts, 51, 25))
|
|
>V3 : I, Symbol(I.V3, Decl(constEnums.ts, 52, 33))
|
|
>1 : number
|
|
}
|
|
}
|