Skip to content

Commit 13bd783

Browse files
committed
Add extra test
1 parent 59fae7f commit 13bd783

File tree

4 files changed

+76
-27
lines changed

4 files changed

+76
-27
lines changed

tests/baselines/reference/narrowByInstanceof.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ function foo(x: A | B | C, A: AA, B: BB, AB: AA | BB) {
3333
}
3434
}
3535

36+
function bar(target: any, Promise: any) {
37+
if (target instanceof Promise) {
38+
target.__then();
39+
}
40+
}
41+
3642
// Repro from #52571
3743

3844
class PersonMixin extends Function {
@@ -101,6 +107,11 @@ function foo(x, A, B, AB) {
101107
x; // A | B | C
102108
}
103109
}
110+
function bar(target, Promise) {
111+
if (target instanceof Promise) {
112+
target.__then();
113+
}
114+
}
104115
// Repro from #52571
105116
var PersonMixin = /** @class */ (function (_super) {
106117
__extends(PersonMixin, _super);

tests/baselines/reference/narrowByInstanceof.symbols

Lines changed: 41 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -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

8195
class 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

97111
const 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

101115
class 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

117131
class 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

127141
function 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

tests/baselines/reference/narrowByInstanceof.types

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,24 @@ function foo(x: A | B | C, A: AA, B: BB, AB: AA | BB) {
6767
}
6868
}
6969

70+
function bar(target: any, Promise: any) {
71+
>bar : (target: any, Promise: any) => void
72+
>target : any
73+
>Promise : any
74+
75+
if (target instanceof Promise) {
76+
>target instanceof Promise : boolean
77+
>target : any
78+
>Promise : any
79+
80+
target.__then();
81+
>target.__then() : any
82+
>target.__then : any
83+
>target : any
84+
>__then : any
85+
}
86+
}
87+
7088
// Repro from #52571
7189

7290
class PersonMixin extends Function {

tests/cases/compiler/narrowByInstanceof.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,12 @@ function foo(x: A | B | C, A: AA, B: BB, AB: AA | BB) {
3434
}
3535
}
3636

37+
function bar(target: any, Promise: any) {
38+
if (target instanceof Promise) {
39+
target.__then();
40+
}
41+
}
42+
3743
// Repro from #52571
3844

3945
class PersonMixin extends Function {

0 commit comments

Comments
 (0)