@@ -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+ }
2733var str: string;
28- >str : Symbol(str, Decl(typeGuardOfFormInstanceOf.ts, 15 , 3))
34+ >str : Symbol(str, Decl(typeGuardOfFormInstanceOf.ts, 18 , 3))
2935
3036var num: number;
31- >num : Symbol(num, Decl(typeGuardOfFormInstanceOf.ts, 16 , 3))
37+ >num : Symbol(num, Decl(typeGuardOfFormInstanceOf.ts, 19 , 3))
3238
3339var 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