Skip to content

Commit 87c808f

Browse files
authored
Add test case for #52271 (#52333)
Fixes #52271
1 parent 700452d commit 87c808f

File tree

4 files changed

+63
-0
lines changed

4 files changed

+63
-0
lines changed
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//// [substitutionTypePassedToExtends.ts]
2+
type Foo1<A,B> = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else'
3+
type Bar1<T extends unknown[][]> = T
4+
5+
type Foo2<A> = Set<A> extends Set<unknown[]> ? Bar2<Set<A>> : 'else'
6+
type Bar2<T extends Set<unknown[]>> = T
7+
8+
9+
//// [substitutionTypePassedToExtends.js]
10+
"use strict";
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
=== tests/cases/compiler/substitutionTypePassedToExtends.ts ===
2+
type Foo1<A,B> = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else'
3+
>Foo1 : Symbol(Foo1, Decl(substitutionTypePassedToExtends.ts, 0, 0))
4+
>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 0, 10))
5+
>B : Symbol(B, Decl(substitutionTypePassedToExtends.ts, 0, 12))
6+
>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 0, 10))
7+
>B : Symbol(B, Decl(substitutionTypePassedToExtends.ts, 0, 12))
8+
>Bar1 : Symbol(Bar1, Decl(substitutionTypePassedToExtends.ts, 0, 67))
9+
>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 0, 10))
10+
>B : Symbol(B, Decl(substitutionTypePassedToExtends.ts, 0, 12))
11+
12+
type Bar1<T extends unknown[][]> = T
13+
>Bar1 : Symbol(Bar1, Decl(substitutionTypePassedToExtends.ts, 0, 67))
14+
>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 1, 10))
15+
>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 1, 10))
16+
17+
type Foo2<A> = Set<A> extends Set<unknown[]> ? Bar2<Set<A>> : 'else'
18+
>Foo2 : Symbol(Foo2, Decl(substitutionTypePassedToExtends.ts, 1, 36))
19+
>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 3, 10))
20+
>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
21+
>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 3, 10))
22+
>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
23+
>Bar2 : Symbol(Bar2, Decl(substitutionTypePassedToExtends.ts, 3, 68))
24+
>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
25+
>A : Symbol(A, Decl(substitutionTypePassedToExtends.ts, 3, 10))
26+
27+
type Bar2<T extends Set<unknown[]>> = T
28+
>Bar2 : Symbol(Bar2, Decl(substitutionTypePassedToExtends.ts, 3, 68))
29+
>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 4, 10))
30+
>Set : Symbol(Set, Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.collection.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
31+
>T : Symbol(T, Decl(substitutionTypePassedToExtends.ts, 4, 10))
32+
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
=== tests/cases/compiler/substitutionTypePassedToExtends.ts ===
2+
type Foo1<A,B> = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else'
3+
>Foo1 : Foo1<A, B>
4+
5+
type Bar1<T extends unknown[][]> = T
6+
>Bar1 : T
7+
8+
type Foo2<A> = Set<A> extends Set<unknown[]> ? Bar2<Set<A>> : 'else'
9+
>Foo2 : Foo2<A>
10+
11+
type Bar2<T extends Set<unknown[]>> = T
12+
>Bar2 : T
13+
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// @strict: true
2+
// @target: esnext
3+
4+
type Foo1<A,B> = [A, B] extends unknown[][] ? Bar1<[A, B]> : 'else'
5+
type Bar1<T extends unknown[][]> = T
6+
7+
type Foo2<A> = Set<A> extends Set<unknown[]> ? Bar2<Set<A>> : 'else'
8+
type Bar2<T extends Set<unknown[]>> = T

0 commit comments

Comments
 (0)