@@ -76,74 +76,88 @@ function foo(x: A | B | C, A: AA, B: BB, AB: AA | BB) {
7676 }
7777}
7878
79+ function bar(target: any, Promise: any) {
80+ >bar : Symbol(bar, Decl(narrowByInstanceof.ts, 32, 1))
81+ >target : Symbol(target, Decl(narrowByInstanceof.ts, 34, 13))
82+ >Promise : Symbol(Promise, Decl(narrowByInstanceof.ts, 34, 25))
83+
84+ if (target instanceof Promise) {
85+ >target : Symbol(target, Decl(narrowByInstanceof.ts, 34, 13))
86+ >Promise : Symbol(Promise, Decl(narrowByInstanceof.ts, 34, 25))
87+
88+ target.__then();
89+ >target : Symbol(target, Decl(narrowByInstanceof.ts, 34, 13))
90+ }
91+ }
92+
7993// Repro from #52571
8094
8195class PersonMixin extends Function {
82- >PersonMixin : Symbol(PersonMixin, Decl(narrowByInstanceof.ts, 32 , 1))
96+ >PersonMixin : Symbol(PersonMixin, Decl(narrowByInstanceof.ts, 38 , 1))
8397>Function : Symbol(Function, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
8498
8599 public check(o: any) {
86- >check : Symbol(PersonMixin.check, Decl(narrowByInstanceof.ts, 36 , 36))
87- >o : Symbol(o, Decl(narrowByInstanceof.ts, 37 , 17))
100+ >check : Symbol(PersonMixin.check, Decl(narrowByInstanceof.ts, 42 , 36))
101+ >o : Symbol(o, Decl(narrowByInstanceof.ts, 43 , 17))
88102
89103 return typeof o === "object" && o !== null && o instanceof Person;
90- >o : Symbol(o, Decl(narrowByInstanceof.ts, 37 , 17))
91- >o : Symbol(o, Decl(narrowByInstanceof.ts, 37 , 17))
92- >o : Symbol(o, Decl(narrowByInstanceof.ts, 37 , 17))
93- >Person : Symbol(Person, Decl(narrowByInstanceof.ts, 42 , 30))
104+ >o : Symbol(o, Decl(narrowByInstanceof.ts, 43 , 17))
105+ >o : Symbol(o, Decl(narrowByInstanceof.ts, 43 , 17))
106+ >o : Symbol(o, Decl(narrowByInstanceof.ts, 43 , 17))
107+ >Person : Symbol(Person, Decl(narrowByInstanceof.ts, 48 , 30))
94108 }
95109}
96110
97111const cls = new PersonMixin();
98- >cls : Symbol(cls, Decl(narrowByInstanceof.ts, 42 , 5))
99- >PersonMixin : Symbol(PersonMixin, Decl(narrowByInstanceof.ts, 32 , 1))
112+ >cls : Symbol(cls, Decl(narrowByInstanceof.ts, 48 , 5))
113+ >PersonMixin : Symbol(PersonMixin, Decl(narrowByInstanceof.ts, 38 , 1))
100114
101115class Person {
102- >Person : Symbol(Person, Decl(narrowByInstanceof.ts, 42 , 30))
116+ >Person : Symbol(Person, Decl(narrowByInstanceof.ts, 48 , 30))
103117
104118 work(): void { console.log("work") }
105- >work : Symbol(Person.work, Decl(narrowByInstanceof.ts, 44 , 14))
119+ >work : Symbol(Person.work, Decl(narrowByInstanceof.ts, 50 , 14))
106120>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
107121>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
108122>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
109123
110124 sayHi(): void { console.log("Hi") }
111- >sayHi : Symbol(Person.sayHi, Decl(narrowByInstanceof.ts, 45 , 40))
125+ >sayHi : Symbol(Person.sayHi, Decl(narrowByInstanceof.ts, 51 , 40))
112126>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
113127>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
114128>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
115129}
116130
117131class Car {
118- >Car : Symbol(Car, Decl(narrowByInstanceof.ts, 47 , 1))
132+ >Car : Symbol(Car, Decl(narrowByInstanceof.ts, 53 , 1))
119133
120134 sayHi(): void { console.log("Wof Wof") }
121- >sayHi : Symbol(Car.sayHi, Decl(narrowByInstanceof.ts, 49 , 11))
135+ >sayHi : Symbol(Car.sayHi, Decl(narrowByInstanceof.ts, 55 , 11))
122136>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
123137>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
124138>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
125139}
126140
127141function test(o: Person | Car) {
128- >test : Symbol(test, Decl(narrowByInstanceof.ts, 51 , 1))
129- >o : Symbol(o, Decl(narrowByInstanceof.ts, 53 , 14))
130- >Person : Symbol(Person, Decl(narrowByInstanceof.ts, 42 , 30))
131- >Car : Symbol(Car, Decl(narrowByInstanceof.ts, 47 , 1))
142+ >test : Symbol(test, Decl(narrowByInstanceof.ts, 57 , 1))
143+ >o : Symbol(o, Decl(narrowByInstanceof.ts, 59 , 14))
144+ >Person : Symbol(Person, Decl(narrowByInstanceof.ts, 48 , 30))
145+ >Car : Symbol(Car, Decl(narrowByInstanceof.ts, 53 , 1))
132146
133147 if (o instanceof cls) {
134- >o : Symbol(o, Decl(narrowByInstanceof.ts, 53 , 14))
135- >cls : Symbol(cls, Decl(narrowByInstanceof.ts, 42 , 5))
148+ >o : Symbol(o, Decl(narrowByInstanceof.ts, 59 , 14))
149+ >cls : Symbol(cls, Decl(narrowByInstanceof.ts, 48 , 5))
136150
137151 console.log("Is Person");
138152>console.log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
139153>console : Symbol(console, Decl(lib.dom.d.ts, --, --))
140154>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
141155
142156 (o as Person).work()
143- >(o as Person).work : Symbol(Person.work, Decl(narrowByInstanceof.ts, 44 , 14))
144- >o : Symbol(o, Decl(narrowByInstanceof.ts, 53 , 14))
145- >Person : Symbol(Person, Decl(narrowByInstanceof.ts, 42 , 30))
146- >work : Symbol(Person.work, Decl(narrowByInstanceof.ts, 44 , 14))
157+ >(o as Person).work : Symbol(Person.work, Decl(narrowByInstanceof.ts, 50 , 14))
158+ >o : Symbol(o, Decl(narrowByInstanceof.ts, 59 , 14))
159+ >Person : Symbol(Person, Decl(narrowByInstanceof.ts, 48 , 30))
160+ >work : Symbol(Person.work, Decl(narrowByInstanceof.ts, 50 , 14))
147161 }
148162 else {
149163 console.log("Is Car")
@@ -152,9 +166,9 @@ function test(o: Person | Car) {
152166>log : Symbol(Console.log, Decl(lib.dom.d.ts, --, --))
153167
154168 o.sayHi();
155- >o.sayHi : Symbol(sayHi, Decl(narrowByInstanceof.ts, 45 , 40), Decl(narrowByInstanceof.ts, 49 , 11))
156- >o : Symbol(o, Decl(narrowByInstanceof.ts, 53 , 14))
157- >sayHi : Symbol(sayHi, Decl(narrowByInstanceof.ts, 45 , 40), Decl(narrowByInstanceof.ts, 49 , 11))
169+ >o.sayHi : Symbol(sayHi, Decl(narrowByInstanceof.ts, 51 , 40), Decl(narrowByInstanceof.ts, 55 , 11))
170+ >o : Symbol(o, Decl(narrowByInstanceof.ts, 59 , 14))
171+ >sayHi : Symbol(sayHi, Decl(narrowByInstanceof.ts, 51 , 40), Decl(narrowByInstanceof.ts, 55 , 11))
158172 }
159173}
160174
0 commit comments