Skip to content

Commit dd54b7a

Browse files
committed
Adds tests
1 parent 5bcd8b3 commit dd54b7a

File tree

5 files changed

+447
-135
lines changed

5 files changed

+447
-135
lines changed

tests/baselines/reference/narrowTypeByInstanceof.types

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ if (elementA instanceof FileMatch && elementB instanceof FileMatch) {
6363
} else if (elementA instanceof Match && elementB instanceof Match) {
6464
>elementA instanceof Match && elementB instanceof Match : boolean
6565
>elementA instanceof Match : boolean
66-
>elementA : FileMatch | Match
66+
>elementA : Match | FileMatch
6767
>Match : typeof Match
6868
>elementB instanceof Match : boolean
6969
>elementB : FileMatch | Match

tests/baselines/reference/typeGuardOfFormInstanceOf.js

+92-20
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,58 @@ class C2 {
1414
class D1 extends C1 {
1515
p3: number;
1616
}
17+
class C3 {
18+
p4: number;
19+
}
1720
var str: string;
1821
var num: number;
1922
var strOrNum: string | number;
2023

21-
var c1Orc2: C1 | C2;
22-
str = c1Orc2 instanceof C1 && c1Orc2.p1; // C1
23-
num = c1Orc2 instanceof C2 && c1Orc2.p2; // C2
24-
str = c1Orc2 instanceof D1 && c1Orc2.p1; // D1
25-
num = c1Orc2 instanceof D1 && c1Orc2.p3; // D1
24+
var ctor1: C1 | C2;
25+
str = ctor1 instanceof C1 && ctor1.p1; // C1
26+
num = ctor1 instanceof C2 && ctor1.p2; // C2
27+
str = ctor1 instanceof D1 && ctor1.p1; // D1
28+
num = ctor1 instanceof D1 && ctor1.p3; // D1
29+
30+
var ctor2: C2 | D1;
31+
num = ctor2 instanceof C2 && ctor2.p2; // C2
32+
num = ctor2 instanceof D1 && ctor2.p3; // D1
33+
str = ctor2 instanceof D1 && ctor2.p1; // D1
34+
var r2: D1 | C2 = ctor2 instanceof C1 && ctor2; // C2 | D1
35+
36+
var ctor3: C1 | C2;
37+
if (ctor3 instanceof C1) {
38+
ctor3.p1; // C1
39+
}
40+
else {
41+
ctor3.p2; // C2
42+
}
2643

27-
var c2Ord1: C2 | D1;
28-
num = c2Ord1 instanceof C2 && c2Ord1.p2; // C2
29-
num = c2Ord1 instanceof D1 && c2Ord1.p3; // D1
30-
str = c2Ord1 instanceof D1 && c2Ord1.p1; // D1
31-
var r2: D1 | C2 = c2Ord1 instanceof C1 && c2Ord1; // C2 | D1
44+
var ctor4: C1 | C2 | C3;
45+
if (ctor4 instanceof C1) {
46+
ctor4.p1; // C1
47+
}
48+
else if (ctor4 instanceof C2) {
49+
ctor4.p2; // C2
50+
}
51+
else {
52+
ctor4.p4; // C3
53+
}
54+
55+
var ctor5: C1 | D1 | C2;
56+
if (ctor5 instanceof C1) {
57+
ctor5.p1; // C1
58+
}
59+
else {
60+
ctor5.p2; // C2
61+
}
62+
63+
var ctor6: C1 | C2 | C3;
64+
if (ctor6 instanceof C1 || ctor6 instanceof C2) {
65+
}
66+
else {
67+
ctor6.p4; // C3
68+
}
3269

3370
//// [typeGuardOfFormInstanceOf.js]
3471
// A type guard of the form x instanceof C, where C is of a subtype of the global type 'Function'
@@ -58,16 +95,51 @@ var D1 = (function (_super) {
5895
}
5996
return D1;
6097
})(C1);
98+
var C3 = (function () {
99+
function C3() {
100+
}
101+
return C3;
102+
})();
61103
var str;
62104
var num;
63105
var strOrNum;
64-
var c1Orc2;
65-
str = c1Orc2 instanceof C1 && c1Orc2.p1; // C1
66-
num = c1Orc2 instanceof C2 && c1Orc2.p2; // C2
67-
str = c1Orc2 instanceof D1 && c1Orc2.p1; // D1
68-
num = c1Orc2 instanceof D1 && c1Orc2.p3; // D1
69-
var c2Ord1;
70-
num = c2Ord1 instanceof C2 && c2Ord1.p2; // C2
71-
num = c2Ord1 instanceof D1 && c2Ord1.p3; // D1
72-
str = c2Ord1 instanceof D1 && c2Ord1.p1; // D1
73-
var r2 = c2Ord1 instanceof C1 && c2Ord1; // C2 | D1
106+
var ctor1;
107+
str = ctor1 instanceof C1 && ctor1.p1; // C1
108+
num = ctor1 instanceof C2 && ctor1.p2; // C2
109+
str = ctor1 instanceof D1 && ctor1.p1; // D1
110+
num = ctor1 instanceof D1 && ctor1.p3; // D1
111+
var ctor2;
112+
num = ctor2 instanceof C2 && ctor2.p2; // C2
113+
num = ctor2 instanceof D1 && ctor2.p3; // D1
114+
str = ctor2 instanceof D1 && ctor2.p1; // D1
115+
var r2 = ctor2 instanceof C1 && ctor2; // C2 | D1
116+
var ctor3;
117+
if (ctor3 instanceof C1) {
118+
ctor3.p1; // C1
119+
}
120+
else {
121+
ctor3.p2; // C2
122+
}
123+
var ctor4;
124+
if (ctor4 instanceof C1) {
125+
ctor4.p1; // C1
126+
}
127+
else if (ctor4 instanceof C2) {
128+
ctor4.p2; // C2
129+
}
130+
else {
131+
ctor4.p4; // C3
132+
}
133+
var ctor5;
134+
if (ctor5 instanceof C1) {
135+
ctor5.p1; // C1
136+
}
137+
else {
138+
ctor5.p2; // C2
139+
}
140+
var ctor6;
141+
if (ctor6 instanceof C1 || ctor6 instanceof C2) {
142+
}
143+
else {
144+
ctor6.p4; // C3
145+
}

tests/baselines/reference/typeGuardOfFormInstanceOf.symbols

+144-46
Original file line numberDiff line numberDiff line change
@@ -24,86 +24,184 @@ class D1 extends C1 {
2424
p3: number;
2525
>p3 : Symbol(p3, Decl(typeGuardOfFormInstanceOf.ts, 12, 21))
2626
}
27+
class C3 {
28+
>C3 : Symbol(C3, Decl(typeGuardOfFormInstanceOf.ts, 14, 1))
29+
30+
p4: number;
31+
>p4 : Symbol(p4, Decl(typeGuardOfFormInstanceOf.ts, 15, 10))
32+
}
2733
var str: string;
28-
>str : Symbol(str, Decl(typeGuardOfFormInstanceOf.ts, 15, 3))
34+
>str : Symbol(str, Decl(typeGuardOfFormInstanceOf.ts, 18, 3))
2935

3036
var num: number;
31-
>num : Symbol(num, Decl(typeGuardOfFormInstanceOf.ts, 16, 3))
37+
>num : Symbol(num, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
3238

3339
var strOrNum: string | number;
34-
>strOrNum : Symbol(strOrNum, Decl(typeGuardOfFormInstanceOf.ts, 17, 3))
40+
>strOrNum : Symbol(strOrNum, Decl(typeGuardOfFormInstanceOf.ts, 20, 3))
3541

36-
var c1Orc2: C1 | C2;
37-
>c1Orc2 : Symbol(c1Orc2, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
42+
var ctor1: C1 | C2;
43+
>ctor1 : Symbol(ctor1, Decl(typeGuardOfFormInstanceOf.ts, 22, 3))
3844
>C1 : Symbol(C1, Decl(typeGuardOfFormInstanceOf.ts, 0, 0))
3945
>C2 : Symbol(C2, Decl(typeGuardOfFormInstanceOf.ts, 8, 1))
4046

41-
str = c1Orc2 instanceof C1 && c1Orc2.p1; // C1
42-
>str : Symbol(str, Decl(typeGuardOfFormInstanceOf.ts, 15, 3))
43-
>c1Orc2 : Symbol(c1Orc2, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
47+
str = ctor1 instanceof C1 && ctor1.p1; // C1
48+
>str : Symbol(str, Decl(typeGuardOfFormInstanceOf.ts, 18, 3))
49+
>ctor1 : Symbol(ctor1, Decl(typeGuardOfFormInstanceOf.ts, 22, 3))
4450
>C1 : Symbol(C1, Decl(typeGuardOfFormInstanceOf.ts, 0, 0))
45-
>c1Orc2.p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
46-
>c1Orc2 : Symbol(c1Orc2, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
51+
>ctor1.p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
52+
>ctor1 : Symbol(ctor1, Decl(typeGuardOfFormInstanceOf.ts, 22, 3))
4753
>p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
4854

49-
num = c1Orc2 instanceof C2 && c1Orc2.p2; // C2
50-
>num : Symbol(num, Decl(typeGuardOfFormInstanceOf.ts, 16, 3))
51-
>c1Orc2 : Symbol(c1Orc2, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
55+
num = ctor1 instanceof C2 && ctor1.p2; // C2
56+
>num : Symbol(num, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
57+
>ctor1 : Symbol(ctor1, Decl(typeGuardOfFormInstanceOf.ts, 22, 3))
5258
>C2 : Symbol(C2, Decl(typeGuardOfFormInstanceOf.ts, 8, 1))
53-
>c1Orc2.p2 : Symbol(C2.p2, Decl(typeGuardOfFormInstanceOf.ts, 9, 10))
54-
>c1Orc2 : Symbol(c1Orc2, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
59+
>ctor1.p2 : Symbol(C2.p2, Decl(typeGuardOfFormInstanceOf.ts, 9, 10))
60+
>ctor1 : Symbol(ctor1, Decl(typeGuardOfFormInstanceOf.ts, 22, 3))
5561
>p2 : Symbol(C2.p2, Decl(typeGuardOfFormInstanceOf.ts, 9, 10))
5662

57-
str = c1Orc2 instanceof D1 && c1Orc2.p1; // D1
58-
>str : Symbol(str, Decl(typeGuardOfFormInstanceOf.ts, 15, 3))
59-
>c1Orc2 : Symbol(c1Orc2, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
63+
str = ctor1 instanceof D1 && ctor1.p1; // D1
64+
>str : Symbol(str, Decl(typeGuardOfFormInstanceOf.ts, 18, 3))
65+
>ctor1 : Symbol(ctor1, Decl(typeGuardOfFormInstanceOf.ts, 22, 3))
6066
>D1 : Symbol(D1, Decl(typeGuardOfFormInstanceOf.ts, 11, 1))
61-
>c1Orc2.p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
62-
>c1Orc2 : Symbol(c1Orc2, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
67+
>ctor1.p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
68+
>ctor1 : Symbol(ctor1, Decl(typeGuardOfFormInstanceOf.ts, 22, 3))
6369
>p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
6470

65-
num = c1Orc2 instanceof D1 && c1Orc2.p3; // D1
66-
>num : Symbol(num, Decl(typeGuardOfFormInstanceOf.ts, 16, 3))
67-
>c1Orc2 : Symbol(c1Orc2, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
71+
num = ctor1 instanceof D1 && ctor1.p3; // D1
72+
>num : Symbol(num, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
73+
>ctor1 : Symbol(ctor1, Decl(typeGuardOfFormInstanceOf.ts, 22, 3))
6874
>D1 : Symbol(D1, Decl(typeGuardOfFormInstanceOf.ts, 11, 1))
69-
>c1Orc2.p3 : Symbol(D1.p3, Decl(typeGuardOfFormInstanceOf.ts, 12, 21))
70-
>c1Orc2 : Symbol(c1Orc2, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
75+
>ctor1.p3 : Symbol(D1.p3, Decl(typeGuardOfFormInstanceOf.ts, 12, 21))
76+
>ctor1 : Symbol(ctor1, Decl(typeGuardOfFormInstanceOf.ts, 22, 3))
7177
>p3 : Symbol(D1.p3, Decl(typeGuardOfFormInstanceOf.ts, 12, 21))
7278

73-
var c2Ord1: C2 | D1;
74-
>c2Ord1 : Symbol(c2Ord1, Decl(typeGuardOfFormInstanceOf.ts, 25, 3))
79+
var ctor2: C2 | D1;
80+
>ctor2 : Symbol(ctor2, Decl(typeGuardOfFormInstanceOf.ts, 28, 3))
7581
>C2 : Symbol(C2, Decl(typeGuardOfFormInstanceOf.ts, 8, 1))
7682
>D1 : Symbol(D1, Decl(typeGuardOfFormInstanceOf.ts, 11, 1))
7783

78-
num = c2Ord1 instanceof C2 && c2Ord1.p2; // C2
79-
>num : Symbol(num, Decl(typeGuardOfFormInstanceOf.ts, 16, 3))
80-
>c2Ord1 : Symbol(c2Ord1, Decl(typeGuardOfFormInstanceOf.ts, 25, 3))
84+
num = ctor2 instanceof C2 && ctor2.p2; // C2
85+
>num : Symbol(num, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
86+
>ctor2 : Symbol(ctor2, Decl(typeGuardOfFormInstanceOf.ts, 28, 3))
8187
>C2 : Symbol(C2, Decl(typeGuardOfFormInstanceOf.ts, 8, 1))
82-
>c2Ord1.p2 : Symbol(C2.p2, Decl(typeGuardOfFormInstanceOf.ts, 9, 10))
83-
>c2Ord1 : Symbol(c2Ord1, Decl(typeGuardOfFormInstanceOf.ts, 25, 3))
88+
>ctor2.p2 : Symbol(C2.p2, Decl(typeGuardOfFormInstanceOf.ts, 9, 10))
89+
>ctor2 : Symbol(ctor2, Decl(typeGuardOfFormInstanceOf.ts, 28, 3))
8490
>p2 : Symbol(C2.p2, Decl(typeGuardOfFormInstanceOf.ts, 9, 10))
8591

86-
num = c2Ord1 instanceof D1 && c2Ord1.p3; // D1
87-
>num : Symbol(num, Decl(typeGuardOfFormInstanceOf.ts, 16, 3))
88-
>c2Ord1 : Symbol(c2Ord1, Decl(typeGuardOfFormInstanceOf.ts, 25, 3))
92+
num = ctor2 instanceof D1 && ctor2.p3; // D1
93+
>num : Symbol(num, Decl(typeGuardOfFormInstanceOf.ts, 19, 3))
94+
>ctor2 : Symbol(ctor2, Decl(typeGuardOfFormInstanceOf.ts, 28, 3))
8995
>D1 : Symbol(D1, Decl(typeGuardOfFormInstanceOf.ts, 11, 1))
90-
>c2Ord1.p3 : Symbol(D1.p3, Decl(typeGuardOfFormInstanceOf.ts, 12, 21))
91-
>c2Ord1 : Symbol(c2Ord1, Decl(typeGuardOfFormInstanceOf.ts, 25, 3))
96+
>ctor2.p3 : Symbol(D1.p3, Decl(typeGuardOfFormInstanceOf.ts, 12, 21))
97+
>ctor2 : Symbol(ctor2, Decl(typeGuardOfFormInstanceOf.ts, 28, 3))
9298
>p3 : Symbol(D1.p3, Decl(typeGuardOfFormInstanceOf.ts, 12, 21))
9399

94-
str = c2Ord1 instanceof D1 && c2Ord1.p1; // D1
95-
>str : Symbol(str, Decl(typeGuardOfFormInstanceOf.ts, 15, 3))
96-
>c2Ord1 : Symbol(c2Ord1, Decl(typeGuardOfFormInstanceOf.ts, 25, 3))
100+
str = ctor2 instanceof D1 && ctor2.p1; // D1
101+
>str : Symbol(str, Decl(typeGuardOfFormInstanceOf.ts, 18, 3))
102+
>ctor2 : Symbol(ctor2, Decl(typeGuardOfFormInstanceOf.ts, 28, 3))
97103
>D1 : Symbol(D1, Decl(typeGuardOfFormInstanceOf.ts, 11, 1))
98-
>c2Ord1.p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
99-
>c2Ord1 : Symbol(c2Ord1, Decl(typeGuardOfFormInstanceOf.ts, 25, 3))
104+
>ctor2.p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
105+
>ctor2 : Symbol(ctor2, Decl(typeGuardOfFormInstanceOf.ts, 28, 3))
100106
>p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
101107

102-
var r2: D1 | C2 = c2Ord1 instanceof C1 && c2Ord1; // C2 | D1
103-
>r2 : Symbol(r2, Decl(typeGuardOfFormInstanceOf.ts, 29, 3))
108+
var r2: D1 | C2 = ctor2 instanceof C1 && ctor2; // C2 | D1
109+
>r2 : Symbol(r2, Decl(typeGuardOfFormInstanceOf.ts, 32, 3))
104110
>D1 : Symbol(D1, Decl(typeGuardOfFormInstanceOf.ts, 11, 1))
105111
>C2 : Symbol(C2, Decl(typeGuardOfFormInstanceOf.ts, 8, 1))
106-
>c2Ord1 : Symbol(c2Ord1, Decl(typeGuardOfFormInstanceOf.ts, 25, 3))
112+
>ctor2 : Symbol(ctor2, Decl(typeGuardOfFormInstanceOf.ts, 28, 3))
113+
>C1 : Symbol(C1, Decl(typeGuardOfFormInstanceOf.ts, 0, 0))
114+
>ctor2 : Symbol(ctor2, Decl(typeGuardOfFormInstanceOf.ts, 28, 3))
115+
116+
var ctor3: C1 | C2;
117+
>ctor3 : Symbol(ctor3, Decl(typeGuardOfFormInstanceOf.ts, 34, 3))
118+
>C1 : Symbol(C1, Decl(typeGuardOfFormInstanceOf.ts, 0, 0))
119+
>C2 : Symbol(C2, Decl(typeGuardOfFormInstanceOf.ts, 8, 1))
120+
121+
if (ctor3 instanceof C1) {
122+
>ctor3 : Symbol(ctor3, Decl(typeGuardOfFormInstanceOf.ts, 34, 3))
123+
>C1 : Symbol(C1, Decl(typeGuardOfFormInstanceOf.ts, 0, 0))
124+
125+
ctor3.p1; // C1
126+
>ctor3.p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
127+
>ctor3 : Symbol(ctor3, Decl(typeGuardOfFormInstanceOf.ts, 34, 3))
128+
>p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
129+
}
130+
else {
131+
ctor3.p2; // C2
132+
>ctor3.p2 : Symbol(C2.p2, Decl(typeGuardOfFormInstanceOf.ts, 9, 10))
133+
>ctor3 : Symbol(ctor3, Decl(typeGuardOfFormInstanceOf.ts, 34, 3))
134+
>p2 : Symbol(C2.p2, Decl(typeGuardOfFormInstanceOf.ts, 9, 10))
135+
}
136+
137+
var ctor4: C1 | C2 | C3;
138+
>ctor4 : Symbol(ctor4, Decl(typeGuardOfFormInstanceOf.ts, 42, 3))
139+
>C1 : Symbol(C1, Decl(typeGuardOfFormInstanceOf.ts, 0, 0))
140+
>C2 : Symbol(C2, Decl(typeGuardOfFormInstanceOf.ts, 8, 1))
141+
>C3 : Symbol(C3, Decl(typeGuardOfFormInstanceOf.ts, 14, 1))
142+
143+
if (ctor4 instanceof C1) {
144+
>ctor4 : Symbol(ctor4, Decl(typeGuardOfFormInstanceOf.ts, 42, 3))
107145
>C1 : Symbol(C1, Decl(typeGuardOfFormInstanceOf.ts, 0, 0))
108-
>c2Ord1 : Symbol(c2Ord1, Decl(typeGuardOfFormInstanceOf.ts, 25, 3))
109146

147+
ctor4.p1; // C1
148+
>ctor4.p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
149+
>ctor4 : Symbol(ctor4, Decl(typeGuardOfFormInstanceOf.ts, 42, 3))
150+
>p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
151+
}
152+
else if (ctor4 instanceof C2) {
153+
>ctor4 : Symbol(ctor4, Decl(typeGuardOfFormInstanceOf.ts, 42, 3))
154+
>C2 : Symbol(C2, Decl(typeGuardOfFormInstanceOf.ts, 8, 1))
155+
156+
ctor4.p2; // C2
157+
>ctor4.p2 : Symbol(C2.p2, Decl(typeGuardOfFormInstanceOf.ts, 9, 10))
158+
>ctor4 : Symbol(ctor4, Decl(typeGuardOfFormInstanceOf.ts, 42, 3))
159+
>p2 : Symbol(C2.p2, Decl(typeGuardOfFormInstanceOf.ts, 9, 10))
160+
}
161+
else {
162+
ctor4.p4; // C3
163+
>ctor4.p4 : Symbol(C3.p4, Decl(typeGuardOfFormInstanceOf.ts, 15, 10))
164+
>ctor4 : Symbol(ctor4, Decl(typeGuardOfFormInstanceOf.ts, 42, 3))
165+
>p4 : Symbol(C3.p4, Decl(typeGuardOfFormInstanceOf.ts, 15, 10))
166+
}
167+
168+
var ctor5: C1 | D1 | C2;
169+
>ctor5 : Symbol(ctor5, Decl(typeGuardOfFormInstanceOf.ts, 53, 3))
170+
>C1 : Symbol(C1, Decl(typeGuardOfFormInstanceOf.ts, 0, 0))
171+
>D1 : Symbol(D1, Decl(typeGuardOfFormInstanceOf.ts, 11, 1))
172+
>C2 : Symbol(C2, Decl(typeGuardOfFormInstanceOf.ts, 8, 1))
173+
174+
if (ctor5 instanceof C1) {
175+
>ctor5 : Symbol(ctor5, Decl(typeGuardOfFormInstanceOf.ts, 53, 3))
176+
>C1 : Symbol(C1, Decl(typeGuardOfFormInstanceOf.ts, 0, 0))
177+
178+
ctor5.p1; // C1
179+
>ctor5.p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
180+
>ctor5 : Symbol(ctor5, Decl(typeGuardOfFormInstanceOf.ts, 53, 3))
181+
>p1 : Symbol(C1.p1, Decl(typeGuardOfFormInstanceOf.ts, 6, 10))
182+
}
183+
else {
184+
ctor5.p2; // C2
185+
>ctor5.p2 : Symbol(C2.p2, Decl(typeGuardOfFormInstanceOf.ts, 9, 10))
186+
>ctor5 : Symbol(ctor5, Decl(typeGuardOfFormInstanceOf.ts, 53, 3))
187+
>p2 : Symbol(C2.p2, Decl(typeGuardOfFormInstanceOf.ts, 9, 10))
188+
}
189+
190+
var ctor6: C1 | C2 | C3;
191+
>ctor6 : Symbol(ctor6, Decl(typeGuardOfFormInstanceOf.ts, 61, 3))
192+
>C1 : Symbol(C1, Decl(typeGuardOfFormInstanceOf.ts, 0, 0))
193+
>C2 : Symbol(C2, Decl(typeGuardOfFormInstanceOf.ts, 8, 1))
194+
>C3 : Symbol(C3, Decl(typeGuardOfFormInstanceOf.ts, 14, 1))
195+
196+
if (ctor6 instanceof C1 || ctor6 instanceof C2) {
197+
>ctor6 : Symbol(ctor6, Decl(typeGuardOfFormInstanceOf.ts, 61, 3))
198+
>C1 : Symbol(C1, Decl(typeGuardOfFormInstanceOf.ts, 0, 0))
199+
>ctor6 : Symbol(ctor6, Decl(typeGuardOfFormInstanceOf.ts, 61, 3))
200+
>C2 : Symbol(C2, Decl(typeGuardOfFormInstanceOf.ts, 8, 1))
201+
}
202+
else {
203+
ctor6.p4; // C3
204+
>ctor6.p4 : Symbol(C3.p4, Decl(typeGuardOfFormInstanceOf.ts, 15, 10))
205+
>ctor6 : Symbol(ctor6, Decl(typeGuardOfFormInstanceOf.ts, 61, 3))
206+
>p4 : Symbol(C3.p4, Decl(typeGuardOfFormInstanceOf.ts, 15, 10))
207+
}

0 commit comments

Comments
 (0)