Skip to content

Commit adfa271

Browse files
committed
Add regression test
1 parent da7f11f commit adfa271

File tree

4 files changed

+162
-0
lines changed

4 files changed

+162
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
//// [instantiatedTypeAliasDisplay.ts]
2+
// Repros from #12066
3+
4+
interface X<A> {
5+
a: A;
6+
}
7+
interface Y<B> {
8+
b: B;
9+
}
10+
type Z<A, B> = X<A> | Y<B>;
11+
12+
declare function f1<A>(): Z<A, number>;
13+
declare function f2<A, B, C, D, E>(a: A, b: B, c: C, d: D): Z<A, string[]>;
14+
15+
const x1 = f1<string>(); // Z<string, number>
16+
const x2 = f2({}, {}, {}, {}); // Z<{}, string[]>
17+
18+
//// [instantiatedTypeAliasDisplay.js]
19+
// Repros from #12066
20+
var x1 = f1(); // Z<string, number>
21+
var x2 = f2({}, {}, {}, {}); // Z<{}, string[]>
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
=== tests/cases/compiler/instantiatedTypeAliasDisplay.ts ===
2+
// Repros from #12066
3+
4+
interface X<A> {
5+
>X : Symbol(X, Decl(instantiatedTypeAliasDisplay.ts, 0, 0))
6+
>A : Symbol(A, Decl(instantiatedTypeAliasDisplay.ts, 2, 12))
7+
8+
a: A;
9+
>a : Symbol(X.a, Decl(instantiatedTypeAliasDisplay.ts, 2, 16))
10+
>A : Symbol(A, Decl(instantiatedTypeAliasDisplay.ts, 2, 12))
11+
}
12+
interface Y<B> {
13+
>Y : Symbol(Y, Decl(instantiatedTypeAliasDisplay.ts, 4, 1))
14+
>B : Symbol(B, Decl(instantiatedTypeAliasDisplay.ts, 5, 12))
15+
16+
b: B;
17+
>b : Symbol(Y.b, Decl(instantiatedTypeAliasDisplay.ts, 5, 16))
18+
>B : Symbol(B, Decl(instantiatedTypeAliasDisplay.ts, 5, 12))
19+
}
20+
type Z<A, B> = X<A> | Y<B>;
21+
>Z : Symbol(Z, Decl(instantiatedTypeAliasDisplay.ts, 7, 1))
22+
>A : Symbol(A, Decl(instantiatedTypeAliasDisplay.ts, 8, 7))
23+
>B : Symbol(B, Decl(instantiatedTypeAliasDisplay.ts, 8, 9))
24+
>X : Symbol(X, Decl(instantiatedTypeAliasDisplay.ts, 0, 0))
25+
>A : Symbol(A, Decl(instantiatedTypeAliasDisplay.ts, 8, 7))
26+
>Y : Symbol(Y, Decl(instantiatedTypeAliasDisplay.ts, 4, 1))
27+
>B : Symbol(B, Decl(instantiatedTypeAliasDisplay.ts, 8, 9))
28+
29+
declare function f1<A>(): Z<A, number>;
30+
>f1 : Symbol(f1, Decl(instantiatedTypeAliasDisplay.ts, 8, 27))
31+
>A : Symbol(A, Decl(instantiatedTypeAliasDisplay.ts, 10, 20))
32+
>Z : Symbol(Z, Decl(instantiatedTypeAliasDisplay.ts, 7, 1))
33+
>A : Symbol(A, Decl(instantiatedTypeAliasDisplay.ts, 10, 20))
34+
35+
declare function f2<A, B, C, D, E>(a: A, b: B, c: C, d: D): Z<A, string[]>;
36+
>f2 : Symbol(f2, Decl(instantiatedTypeAliasDisplay.ts, 10, 39))
37+
>A : Symbol(A, Decl(instantiatedTypeAliasDisplay.ts, 11, 20))
38+
>B : Symbol(B, Decl(instantiatedTypeAliasDisplay.ts, 11, 22))
39+
>C : Symbol(C, Decl(instantiatedTypeAliasDisplay.ts, 11, 25))
40+
>D : Symbol(D, Decl(instantiatedTypeAliasDisplay.ts, 11, 28))
41+
>E : Symbol(E, Decl(instantiatedTypeAliasDisplay.ts, 11, 31))
42+
>a : Symbol(a, Decl(instantiatedTypeAliasDisplay.ts, 11, 35))
43+
>A : Symbol(A, Decl(instantiatedTypeAliasDisplay.ts, 11, 20))
44+
>b : Symbol(b, Decl(instantiatedTypeAliasDisplay.ts, 11, 40))
45+
>B : Symbol(B, Decl(instantiatedTypeAliasDisplay.ts, 11, 22))
46+
>c : Symbol(c, Decl(instantiatedTypeAliasDisplay.ts, 11, 46))
47+
>C : Symbol(C, Decl(instantiatedTypeAliasDisplay.ts, 11, 25))
48+
>d : Symbol(d, Decl(instantiatedTypeAliasDisplay.ts, 11, 52))
49+
>D : Symbol(D, Decl(instantiatedTypeAliasDisplay.ts, 11, 28))
50+
>Z : Symbol(Z, Decl(instantiatedTypeAliasDisplay.ts, 7, 1))
51+
>A : Symbol(A, Decl(instantiatedTypeAliasDisplay.ts, 11, 20))
52+
53+
const x1 = f1<string>(); // Z<string, number>
54+
>x1 : Symbol(x1, Decl(instantiatedTypeAliasDisplay.ts, 13, 5))
55+
>f1 : Symbol(f1, Decl(instantiatedTypeAliasDisplay.ts, 8, 27))
56+
57+
const x2 = f2({}, {}, {}, {}); // Z<{}, string[]>
58+
>x2 : Symbol(x2, Decl(instantiatedTypeAliasDisplay.ts, 14, 5))
59+
>f2 : Symbol(f2, Decl(instantiatedTypeAliasDisplay.ts, 10, 39))
60+
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
=== tests/cases/compiler/instantiatedTypeAliasDisplay.ts ===
2+
// Repros from #12066
3+
4+
interface X<A> {
5+
>X : X<A>
6+
>A : A
7+
8+
a: A;
9+
>a : A
10+
>A : A
11+
}
12+
interface Y<B> {
13+
>Y : Y<B>
14+
>B : B
15+
16+
b: B;
17+
>b : B
18+
>B : B
19+
}
20+
type Z<A, B> = X<A> | Y<B>;
21+
>Z : Z<A, B>
22+
>A : A
23+
>B : B
24+
>X : X<A>
25+
>A : A
26+
>Y : Y<B>
27+
>B : B
28+
29+
declare function f1<A>(): Z<A, number>;
30+
>f1 : <A>() => Z<A, number>
31+
>A : A
32+
>Z : Z<A, B>
33+
>A : A
34+
35+
declare function f2<A, B, C, D, E>(a: A, b: B, c: C, d: D): Z<A, string[]>;
36+
>f2 : <A, B, C, D, E>(a: A, b: B, c: C, d: D) => Z<A, string[]>
37+
>A : A
38+
>B : B
39+
>C : C
40+
>D : D
41+
>E : E
42+
>a : A
43+
>A : A
44+
>b : B
45+
>B : B
46+
>c : C
47+
>C : C
48+
>d : D
49+
>D : D
50+
>Z : Z<A, B>
51+
>A : A
52+
53+
const x1 = f1<string>(); // Z<string, number>
54+
>x1 : Z<string, number>
55+
>f1<string>() : Z<string, number>
56+
>f1 : <A>() => Z<A, number>
57+
58+
const x2 = f2({}, {}, {}, {}); // Z<{}, string[]>
59+
>x2 : Z<{}, string[]>
60+
>f2({}, {}, {}, {}) : Z<{}, string[]>
61+
>f2 : <A, B, C, D, E>(a: A, b: B, c: C, d: D) => Z<A, string[]>
62+
>{} : {}
63+
>{} : {}
64+
>{} : {}
65+
>{} : {}
66+
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// Repros from #12066
2+
3+
interface X<A> {
4+
a: A;
5+
}
6+
interface Y<B> {
7+
b: B;
8+
}
9+
type Z<A, B> = X<A> | Y<B>;
10+
11+
declare function f1<A>(): Z<A, number>;
12+
declare function f2<A, B, C, D, E>(a: A, b: B, c: C, d: D): Z<A, string[]>;
13+
14+
const x1 = f1<string>(); // Z<string, number>
15+
const x2 = f2({}, {}, {}, {}); // Z<{}, string[]>

0 commit comments

Comments
 (0)