Skip to content

Commit 8a72a19

Browse files
committed
Accept new baselines
1 parent a400a8a commit 8a72a19

4 files changed

+52
-9
lines changed

tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.errors.txt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ tests/cases/compiler/typeArgumentDefaultUsesConstraintOnCircularDefault.ts(3,18)
44

55

66
==== tests/cases/compiler/typeArgumentDefaultUsesConstraintOnCircularDefault.ts (2 errors) ====
7-
type Test<T extends string = T> = { value: T };
7+
type Test<T extends string = T> = { value: T }; // Error
88
~
99
!!! error TS2744: Type parameter defaults can only reference previously declared type parameters.
1010

@@ -13,5 +13,11 @@ tests/cases/compiler/typeArgumentDefaultUsesConstraintOnCircularDefault.ts(3,18)
1313
!!! error TS2322: Type '{ foo: string; }' is not assignable to type 'Test<any>'.
1414
!!! error TS2322: Object literal may only specify known properties, and 'foo' does not exist in type 'Test<any>'.
1515

16-
let zzy: Test = { value: {} }; // should error
16+
let zzy: Test = { value: {} };
17+
18+
// Simplified repro from #28873
19+
20+
class C1<T extends C1 = any> {}
21+
22+
class C2<T extends C2<any> = any> {}
1723

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,28 @@
11
//// [typeArgumentDefaultUsesConstraintOnCircularDefault.ts]
2-
type Test<T extends string = T> = { value: T };
2+
type Test<T extends string = T> = { value: T }; // Error
33

44
let zz: Test = { foo: "abc" }; // should error on comparison with Test<string>
55

6-
let zzy: Test = { value: {} }; // should error
6+
let zzy: Test = { value: {} };
7+
8+
// Simplified repro from #28873
9+
10+
class C1<T extends C1 = any> {}
11+
12+
class C2<T extends C2<any> = any> {}
713

814

915
//// [typeArgumentDefaultUsesConstraintOnCircularDefault.js]
1016
var zz = { foo: "abc" }; // should error on comparison with Test<string>
11-
var zzy = { value: {} }; // should error
17+
var zzy = { value: {} };
18+
// Simplified repro from #28873
19+
var C1 = /** @class */ (function () {
20+
function C1() {
21+
}
22+
return C1;
23+
}());
24+
var C2 = /** @class */ (function () {
25+
function C2() {
26+
}
27+
return C2;
28+
}());

tests/baselines/reference/typeArgumentDefaultUsesConstraintOnCircularDefault.symbols

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
=== tests/cases/compiler/typeArgumentDefaultUsesConstraintOnCircularDefault.ts ===
2-
type Test<T extends string = T> = { value: T };
2+
type Test<T extends string = T> = { value: T }; // Error
33
>Test : Symbol(Test, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 0, 0))
44
>T : Symbol(T, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 0, 10))
55
>T : Symbol(T, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 0, 10))
@@ -11,8 +11,20 @@ let zz: Test = { foo: "abc" }; // should error on comparison with Test<string>
1111
>Test : Symbol(Test, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 0, 0))
1212
>foo : Symbol(foo, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 2, 16))
1313

14-
let zzy: Test = { value: {} }; // should error
14+
let zzy: Test = { value: {} };
1515
>zzy : Symbol(zzy, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 4, 3))
1616
>Test : Symbol(Test, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 0, 0))
1717
>value : Symbol(value, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 4, 17))
1818

19+
// Simplified repro from #28873
20+
21+
class C1<T extends C1 = any> {}
22+
>C1 : Symbol(C1, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 4, 30))
23+
>T : Symbol(T, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 8, 9))
24+
>C1 : Symbol(C1, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 4, 30))
25+
26+
class C2<T extends C2<any> = any> {}
27+
>C2 : Symbol(C2, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 8, 31))
28+
>T : Symbol(T, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 10, 9))
29+
>C2 : Symbol(C2, Decl(typeArgumentDefaultUsesConstraintOnCircularDefault.ts, 8, 31))
30+
Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
=== tests/cases/compiler/typeArgumentDefaultUsesConstraintOnCircularDefault.ts ===
2-
type Test<T extends string = T> = { value: T };
2+
type Test<T extends string = T> = { value: T }; // Error
33
>Test : Test<T>
44
>value : T
55

@@ -9,9 +9,17 @@ let zz: Test = { foo: "abc" }; // should error on comparison with Test<string>
99
>foo : string
1010
>"abc" : "abc"
1111

12-
let zzy: Test = { value: {} }; // should error
12+
let zzy: Test = { value: {} };
1313
>zzy : Test<any>
1414
>{ value: {} } : { value: {}; }
1515
>value : {}
1616
>{} : {}
1717

18+
// Simplified repro from #28873
19+
20+
class C1<T extends C1 = any> {}
21+
>C1 : C1<T>
22+
23+
class C2<T extends C2<any> = any> {}
24+
>C2 : C2<T>
25+

0 commit comments

Comments
 (0)