Skip to content

Commit a3b516f

Browse files
authored
Add an extra test case for inferring return type of generic class without a constructor (#52741)
1 parent fd03708 commit a3b516f

4 files changed

+38
-2
lines changed

tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,12 @@ g2.give(1);
2727

2828
const g3 = g(GenericNumberOrString);
2929
g3.give(1);
30-
g3.give('1');
30+
g3.give('1');
31+
32+
// repro from #35636
33+
class C<T> {}
34+
const g4 = g(C);
35+
3136

3237
//// [inferringReturnTypeFromConstructSignatureGeneric.js]
3338
var GenericObject = /** @class */ (function () {
@@ -64,3 +69,10 @@ g2.give(1);
6469
var g3 = g(GenericNumberOrString);
6570
g3.give(1);
6671
g3.give('1');
72+
// repro from #35636
73+
var C = /** @class */ (function () {
74+
function C() {
75+
}
76+
return C;
77+
}());
78+
var g4 = g(C);

tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.symbols

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,13 @@ g3.give('1');
8585
>g3 : Symbol(g3, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 26, 5))
8686
>give : Symbol(GenericNumberOrString.give, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 10, 56))
8787

88+
// repro from #35636
89+
class C<T> {}
90+
>C : Symbol(C, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 28, 13))
91+
>T : Symbol(T, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 31, 8))
92+
93+
const g4 = g(C);
94+
>g4 : Symbol(g4, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 32, 5))
95+
>g : Symbol(g, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 14, 1))
96+
>C : Symbol(C, Decl(inferringReturnTypeFromConstructSignatureGeneric.ts, 28, 13))
97+

tests/baselines/reference/inferringReturnTypeFromConstructSignatureGeneric.types

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,3 +88,13 @@ g3.give('1');
8888
>give : (value: string | number) => string | number
8989
>'1' : "1"
9090

91+
// repro from #35636
92+
class C<T> {}
93+
>C : C<T>
94+
95+
const g4 = g(C);
96+
>g4 : C<unknown>
97+
>g(C) : C<unknown>
98+
>g : <T>(type: new () => T) => T
99+
>C : typeof C
100+

tests/cases/compiler/inferringReturnTypeFromConstructSignatureGeneric.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,8 @@ g2.give(1);
2626

2727
const g3 = g(GenericNumberOrString);
2828
g3.give(1);
29-
g3.give('1');
29+
g3.give('1');
30+
31+
// repro from #35636
32+
class C<T> {}
33+
const g4 = g(C);

0 commit comments

Comments
 (0)