Skip to content

Commit 1ad3285

Browse files
committed
Add test cases for union and intersection constraints
1 parent 48f74fd commit 1ad3285

4 files changed

+62
-7
lines changed

tests/baselines/reference/indexedAccessPrivateMemberOfGenericConstraint.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,14 @@ class A {
33
private a: number;
44
}
55

6-
type B<T extends A> = T["a"];
6+
class B {
7+
private a: string;
8+
}
9+
10+
type X<T extends A> = T["a"];
11+
type Y<T extends A | B> = T["a"];
12+
type Z<T extends A & B> = T["a"];
13+
714

815

916
//// [indexedAccessPrivateMemberOfGenericConstraint.js]
@@ -12,3 +19,8 @@ var A = /** @class */ (function () {
1219
}
1320
return A;
1421
}());
22+
var B = /** @class */ (function () {
23+
function B() {
24+
}
25+
return B;
26+
}());

tests/baselines/reference/indexedAccessPrivateMemberOfGenericConstraint.symbols

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,31 @@ class A {
66
>a : Symbol(A.a, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 0, 9))
77
}
88

9-
type B<T extends A> = T["a"];
9+
class B {
1010
>B : Symbol(B, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 2, 1))
11-
>T : Symbol(T, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 4, 7))
11+
12+
private a: string;
13+
>a : Symbol(B.a, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 4, 9))
14+
}
15+
16+
type X<T extends A> = T["a"];
17+
>X : Symbol(X, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 6, 1))
18+
>T : Symbol(T, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 8, 7))
19+
>A : Symbol(A, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 0, 0))
20+
>T : Symbol(T, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 8, 7))
21+
22+
type Y<T extends A | B> = T["a"];
23+
>Y : Symbol(Y, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 8, 29))
24+
>T : Symbol(T, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 9, 7))
1225
>A : Symbol(A, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 0, 0))
13-
>T : Symbol(T, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 4, 7))
26+
>B : Symbol(B, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 2, 1))
27+
>T : Symbol(T, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 9, 7))
28+
29+
type Z<T extends A & B> = T["a"];
30+
>Z : Symbol(Z, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 9, 33))
31+
>T : Symbol(T, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 10, 7))
32+
>A : Symbol(A, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 0, 0))
33+
>B : Symbol(B, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 2, 1))
34+
>T : Symbol(T, Decl(indexedAccessPrivateMemberOfGenericConstraint.ts, 10, 7))
35+
1436

tests/baselines/reference/indexedAccessPrivateMemberOfGenericConstraint.types

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,20 @@ class A {
66
>a : number
77
}
88

9-
type B<T extends A> = T["a"];
10-
>B : T["a"]
9+
class B {
10+
>B : B
11+
12+
private a: string;
13+
>a : string
14+
}
15+
16+
type X<T extends A> = T["a"];
17+
>X : T["a"]
18+
19+
type Y<T extends A | B> = T["a"];
20+
>Y : T["a"]
21+
22+
type Z<T extends A & B> = T["a"];
23+
>Z : T["a"]
24+
1125

tests/cases/compiler/indexedAccessPrivateMemberOfGenericConstraint.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,11 @@ class A {
22
private a: number;
33
}
44

5-
type B<T extends A> = T["a"];
5+
class B {
6+
private a: string;
7+
}
8+
9+
type X<T extends A> = T["a"];
10+
type Y<T extends A | B> = T["a"];
11+
type Z<T extends A & B> = T["a"];
12+

0 commit comments

Comments
 (0)