Skip to content

Commit fcde8a2

Browse files
committed
Add tests
1 parent c67f160 commit fcde8a2

File tree

4 files changed

+39
-0
lines changed

4 files changed

+39
-0
lines changed

tests/baselines/reference/correlatedUnions.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,10 @@ function f3<K extends keyof ArgMap>(funcs: Funcs, key: K, arg: ArgMap[K]) {
177177
const func: Func<K> = funcs[key]; // Error, Funcs[K] not assignable to Func<K>
178178
func(arg);
179179
}
180+
181+
function f4<K extends keyof ArgMap>(x: Funcs[keyof ArgMap], y: Funcs[K]) {
182+
x = y;
183+
}
180184

181185

182186
//// [correlatedUnions.js]
@@ -275,6 +279,9 @@ function f3(funcs, key, arg) {
275279
var func = funcs[key]; // Error, Funcs[K] not assignable to Func<K>
276280
func(arg);
277281
}
282+
function f4(x, y) {
283+
x = y;
284+
}
278285

279286

280287
//// [correlatedUnions.d.ts]
@@ -390,3 +397,4 @@ declare type Funcs = {
390397
declare function f1<K extends keyof ArgMap>(funcs: Funcs, key: K, arg: ArgMap[K]): void;
391398
declare function f2<K extends keyof ArgMap>(funcs: Funcs, key: K, arg: ArgMap[K]): void;
392399
declare function f3<K extends keyof ArgMap>(funcs: Funcs, key: K, arg: ArgMap[K]): void;
400+
declare function f4<K extends keyof ArgMap>(x: Funcs[keyof ArgMap], y: Funcs[K]): void;

tests/baselines/reference/correlatedUnions.symbols

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,3 +659,19 @@ function f3<K extends keyof ArgMap>(funcs: Funcs, key: K, arg: ArgMap[K]) {
659659
>arg : Symbol(arg, Decl(correlatedUnions.ts, 174, 57))
660660
}
661661

662+
function f4<K extends keyof ArgMap>(x: Funcs[keyof ArgMap], y: Funcs[K]) {
663+
>f4 : Symbol(f4, Decl(correlatedUnions.ts, 177, 1))
664+
>K : Symbol(K, Decl(correlatedUnions.ts, 179, 12))
665+
>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1))
666+
>x : Symbol(x, Decl(correlatedUnions.ts, 179, 36))
667+
>Funcs : Symbol(Funcs, Decl(correlatedUnions.ts, 162, 59))
668+
>ArgMap : Symbol(ArgMap, Decl(correlatedUnions.ts, 157, 1))
669+
>y : Symbol(y, Decl(correlatedUnions.ts, 179, 59))
670+
>Funcs : Symbol(Funcs, Decl(correlatedUnions.ts, 162, 59))
671+
>K : Symbol(K, Decl(correlatedUnions.ts, 179, 12))
672+
673+
x = y;
674+
>x : Symbol(x, Decl(correlatedUnions.ts, 179, 36))
675+
>y : Symbol(y, Decl(correlatedUnions.ts, 179, 59))
676+
}
677+

tests/baselines/reference/correlatedUnions.types

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -613,3 +613,14 @@ function f3<K extends keyof ArgMap>(funcs: Funcs, key: K, arg: ArgMap[K]) {
613613
>arg : ArgMap[K]
614614
}
615615

616+
function f4<K extends keyof ArgMap>(x: Funcs[keyof ArgMap], y: Funcs[K]) {
617+
>f4 : <K extends keyof ArgMap>(x: Funcs[keyof ArgMap], y: Funcs[K]) => void
618+
>x : Func<"b"> | Func<"a">
619+
>y : Funcs[K]
620+
621+
x = y;
622+
>x = y : Funcs[K]
623+
>x : Func<"b"> | Func<"a">
624+
>y : Funcs[K]
625+
}
626+

tests/cases/compiler/correlatedUnions.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,3 +179,7 @@ function f3<K extends keyof ArgMap>(funcs: Funcs, key: K, arg: ArgMap[K]) {
179179
const func: Func<K> = funcs[key]; // Error, Funcs[K] not assignable to Func<K>
180180
func(arg);
181181
}
182+
183+
function f4<K extends keyof ArgMap>(x: Funcs[keyof ArgMap], y: Funcs[K]) {
184+
x = y;
185+
}

0 commit comments

Comments
 (0)