Skip to content

Commit 2911d5d

Browse files
committed
Accept new baselines
1 parent 09590bc commit 2911d5d

File tree

3 files changed

+39
-31
lines changed

3 files changed

+39
-31
lines changed

tests/baselines/reference/keyofAndIndexedAccess.types

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -890,11 +890,11 @@ function f60<T>(source: T, target: T) {
890890
}
891891

892892
function f70(func: <T, U>(k1: keyof (T | U), k2: keyof (T & U)) => void) {
893-
>f70 : (func: <T, U>(k1: keyof (T | U), k2: keyof T | keyof U) => void) => void
894-
>func : <T, U>(k1: keyof (T | U), k2: keyof T | keyof U) => void
893+
>f70 : (func: <T, U>(k1: keyof T & keyof U, k2: keyof T | keyof U) => void) => void
894+
>func : <T, U>(k1: keyof T & keyof U, k2: keyof T | keyof U) => void
895895
>T : T
896896
>U : U
897-
>k1 : keyof (T | U)
897+
>k1 : keyof T & keyof U
898898
>T : T
899899
>U : U
900900
>k2 : keyof T | keyof U
@@ -903,7 +903,7 @@ function f70(func: <T, U>(k1: keyof (T | U), k2: keyof (T & U)) => void) {
903903

904904
func<{ a: any, b: any }, { a: any, c: any }>('a', 'a');
905905
>func<{ a: any, b: any }, { a: any, c: any }>('a', 'a') : void
906-
>func : <T, U>(k1: keyof (T | U), k2: keyof T | keyof U) => void
906+
>func : <T, U>(k1: keyof T & keyof U, k2: keyof T | keyof U) => void
907907
>a : any
908908
>b : any
909909
>a : any
@@ -913,7 +913,7 @@ function f70(func: <T, U>(k1: keyof (T | U), k2: keyof (T & U)) => void) {
913913

914914
func<{ a: any, b: any }, { a: any, c: any }>('a', 'b');
915915
>func<{ a: any, b: any }, { a: any, c: any }>('a', 'b') : void
916-
>func : <T, U>(k1: keyof (T | U), k2: keyof T | keyof U) => void
916+
>func : <T, U>(k1: keyof T & keyof U, k2: keyof T | keyof U) => void
917917
>a : any
918918
>b : any
919919
>a : any
@@ -923,7 +923,7 @@ function f70(func: <T, U>(k1: keyof (T | U), k2: keyof (T & U)) => void) {
923923

924924
func<{ a: any, b: any }, { a: any, c: any }>('a', 'c');
925925
>func<{ a: any, b: any }, { a: any, c: any }>('a', 'c') : void
926-
>func : <T, U>(k1: keyof (T | U), k2: keyof T | keyof U) => void
926+
>func : <T, U>(k1: keyof T & keyof U, k2: keyof T | keyof U) => void
927927
>a : any
928928
>b : any
929929
>a : any
@@ -1097,8 +1097,8 @@ function f73(func: <T, U, K extends keyof (T & U)>(x: T, y: U, k: K) => (T & U)[
10971097
}
10981098

10991099
function f74(func: <T, U, K extends keyof (T | U)>(x: T, y: U, k: K) => (T | U)[K]) {
1100-
>f74 : (func: <T, U, K extends keyof (T | U)>(x: T, y: U, k: K) => (T | U)[K]) => void
1101-
>func : <T, U, K extends keyof (T | U)>(x: T, y: U, k: K) => (T | U)[K]
1100+
>f74 : (func: <T, U, K extends keyof T & keyof U>(x: T, y: U, k: K) => (T | U)[K]) => void
1101+
>func : <T, U, K extends keyof T & keyof U>(x: T, y: U, k: K) => (T | U)[K]
11021102
>T : T
11031103
>U : U
11041104
>K : K
@@ -1117,7 +1117,7 @@ function f74(func: <T, U, K extends keyof (T | U)>(x: T, y: U, k: K) => (T | U)[
11171117
let a = func({ a: 1, b: "hello" }, { a: 2, b: true }, 'a'); // number
11181118
>a : number
11191119
>func({ a: 1, b: "hello" }, { a: 2, b: true }, 'a') : number
1120-
>func : <T, U, K extends keyof (T | U)>(x: T, y: U, k: K) => (T | U)[K]
1120+
>func : <T, U, K extends keyof T & keyof U>(x: T, y: U, k: K) => (T | U)[K]
11211121
>{ a: 1, b: "hello" } : { a: number; b: string; }
11221122
>a : number
11231123
>1 : 1
@@ -1133,7 +1133,7 @@ function f74(func: <T, U, K extends keyof (T | U)>(x: T, y: U, k: K) => (T | U)[
11331133
let b = func({ a: 1, b: "hello" }, { a: 2, b: true }, 'b'); // string | boolean
11341134
>b : string | boolean
11351135
>func({ a: 1, b: "hello" }, { a: 2, b: true }, 'b') : string | boolean
1136-
>func : <T, U, K extends keyof (T | U)>(x: T, y: U, k: K) => (T | U)[K]
1136+
>func : <T, U, K extends keyof T & keyof U>(x: T, y: U, k: K) => (T | U)[K]
11371137
>{ a: 1, b: "hello" } : { a: number; b: string; }
11381138
>a : number
11391139
>1 : 1

tests/baselines/reference/keyofAndIndexedAccessErrors.errors.txt

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,14 @@ tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(72,5): error
2626
tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(76,5): error TS2322: Type 'T | U' is not assignable to type 'T & U'.
2727
Type 'T' is not assignable to type 'T & U'.
2828
Type 'T' is not assignable to type 'U'.
29-
tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(77,5): error TS2322: Type 'keyof T | keyof U' is not assignable to type 'keyof (T | U)'.
30-
Type 'keyof T' is not assignable to type 'keyof (T | U)'.
31-
Type 'string | number | symbol' is not assignable to type 'keyof (T | U)'.
32-
Type 'string' is not assignable to type 'keyof (T | U)'.
29+
tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(77,5): error TS2322: Type 'keyof T | keyof U' is not assignable to type 'keyof T & keyof U'.
30+
Type 'keyof T' is not assignable to type 'keyof T & keyof U'.
31+
Type 'string | number | symbol' is not assignable to type 'keyof T & keyof U'.
32+
Type 'string' is not assignable to type 'keyof T & keyof U'.
33+
Type 'string' is not assignable to type 'keyof T'.
34+
Type 'keyof T' is not assignable to type 'keyof U'.
35+
Type 'string | number | symbol' is not assignable to type 'keyof U'.
36+
Type 'string' is not assignable to type 'keyof U'.
3337
tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(86,9): error TS2322: Type 'Extract<keyof T, string>' is not assignable to type 'K'.
3438
Type 'string & keyof T' is not assignable to type 'K'.
3539
Type 'string' is not assignable to type 'K'.
@@ -179,10 +183,14 @@ tests/cases/conformance/types/keyof/keyofAndIndexedAccessErrors.ts(100,5): error
179183
!!! error TS2322: Type 'T' is not assignable to type 'U'.
180184
k1 = k2; // Error
181185
~~
182-
!!! error TS2322: Type 'keyof T | keyof U' is not assignable to type 'keyof (T | U)'.
183-
!!! error TS2322: Type 'keyof T' is not assignable to type 'keyof (T | U)'.
184-
!!! error TS2322: Type 'string | number | symbol' is not assignable to type 'keyof (T | U)'.
185-
!!! error TS2322: Type 'string' is not assignable to type 'keyof (T | U)'.
186+
!!! error TS2322: Type 'keyof T | keyof U' is not assignable to type 'keyof T & keyof U'.
187+
!!! error TS2322: Type 'keyof T' is not assignable to type 'keyof T & keyof U'.
188+
!!! error TS2322: Type 'string | number | symbol' is not assignable to type 'keyof T & keyof U'.
189+
!!! error TS2322: Type 'string' is not assignable to type 'keyof T & keyof U'.
190+
!!! error TS2322: Type 'string' is not assignable to type 'keyof T'.
191+
!!! error TS2322: Type 'keyof T' is not assignable to type 'keyof U'.
192+
!!! error TS2322: Type 'string | number | symbol' is not assignable to type 'keyof U'.
193+
!!! error TS2322: Type 'string' is not assignable to type 'keyof U'.
186194
k2 = k1;
187195
}
188196

tests/baselines/reference/keyofAndIndexedAccessErrors.types

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,19 @@ type T02 = keyof keyof Object;
3434
>Object : Object
3535

3636
type T03 = keyof keyof keyof Object;
37-
>T03 : "toString" | "toLocaleString" | "valueOf"
37+
>T03 : "toString" | "valueOf" | ("toString" & number) | ("toLocaleString" & number) | ("valueOf" & number) | ("toFixed" & number) | ("toExponential" & number) | ("toPrecision" & number)
3838
>Object : Object
3939

4040
type T04 = keyof keyof keyof keyof Object;
41-
>T04 : number | "length" | "toString" | "valueOf" | "charAt" | "charCodeAt" | "concat" | "indexOf" | "lastIndexOf" | "localeCompare" | "match" | "replace" | "search" | "slice" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "substr"
41+
>T04 : number | "length" | "toString" | "valueOf" | "charAt" | "charCodeAt" | "concat" | "indexOf" | "lastIndexOf" | "localeCompare" | "match" | "replace" | "search" | "slice" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "substr" | ("toString" & number) | ("valueOf" & number) | (number & "length") | (number & "toString") | (number & "toLocaleString") | (number & "valueOf") | (number & "charAt") | (number & "charCodeAt") | (number & "concat") | (number & "indexOf") | (number & "lastIndexOf") | (number & "localeCompare") | (number & "match") | (number & "replace") | (number & "search") | (number & "slice") | (number & "split") | (number & "substring") | (number & "toLowerCase") | (number & "toLocaleLowerCase") | (number & "toUpperCase") | (number & "toLocaleUpperCase") | (number & "trim") | (number & "substr") | (number & "toFixed") | (number & "toExponential") | (number & "toPrecision") | ("length" & number) | ("charAt" & number) | ("charCodeAt" & number) | ("concat" & number) | ("indexOf" & number) | ("lastIndexOf" & number) | ("localeCompare" & number) | ("match" & number) | ("replace" & number) | ("search" & number) | ("slice" & number) | ("split" & number) | ("substring" & number) | ("toLowerCase" & number) | ("toLocaleLowerCase" & number) | ("toUpperCase" & number) | ("toLocaleUpperCase" & number) | ("trim" & number) | ("substr" & number)
4242
>Object : Object
4343

4444
type T05 = keyof keyof keyof keyof keyof Object;
45-
>T05 : "toString" | "toLocaleString" | "valueOf"
45+
>T05 : "toString" | "valueOf" | ("toString" & number) | ("toLocaleString" & number) | ("valueOf" & number) | ("toFixed" & number) | ("toExponential" & number) | ("toPrecision" & number)
4646
>Object : Object
4747

4848
type T06 = keyof keyof keyof keyof keyof keyof Object;
49-
>T06 : number | "length" | "toString" | "valueOf" | "charAt" | "charCodeAt" | "concat" | "indexOf" | "lastIndexOf" | "localeCompare" | "match" | "replace" | "search" | "slice" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "substr"
49+
>T06 : number | "length" | "toString" | "valueOf" | "charAt" | "charCodeAt" | "concat" | "indexOf" | "lastIndexOf" | "localeCompare" | "match" | "replace" | "search" | "slice" | "split" | "substring" | "toLowerCase" | "toLocaleLowerCase" | "toUpperCase" | "toLocaleUpperCase" | "trim" | "substr" | ("toString" & number) | ("valueOf" & number) | (number & "length") | (number & "toString") | (number & "toLocaleString") | (number & "valueOf") | (number & "charAt") | (number & "charCodeAt") | (number & "concat") | (number & "indexOf") | (number & "lastIndexOf") | (number & "localeCompare") | (number & "match") | (number & "replace") | (number & "search") | (number & "slice") | (number & "split") | (number & "substring") | (number & "toLowerCase") | (number & "toLocaleLowerCase") | (number & "toUpperCase") | (number & "toLocaleUpperCase") | (number & "trim") | (number & "substr") | (number & "toFixed") | (number & "toExponential") | (number & "toPrecision") | ("length" & number) | ("charAt" & number) | ("charCodeAt" & number) | ("concat" & number) | ("indexOf" & number) | ("lastIndexOf" & number) | ("localeCompare" & number) | ("match" & number) | ("replace" & number) | ("search" & number) | ("slice" & number) | ("split" & number) | ("substring" & number) | ("toLowerCase" & number) | ("toLocaleLowerCase" & number) | ("toUpperCase" & number) | ("toLocaleUpperCase" & number) | ("trim" & number) | ("substr" & number)
5050
>Object : Object
5151

5252
type T10 = Shape["name"];
@@ -243,10 +243,10 @@ function f10(shape: Shape) {
243243
}
244244

245245
function f20<T, U>(k1: keyof (T | U), k2: keyof (T & U), o1: T | U, o2: T & U) {
246-
>f20 : <T, U>(k1: keyof (T | U), k2: keyof T | keyof U, o1: T | U, o2: T & U) => void
246+
>f20 : <T, U>(k1: keyof T & keyof U, k2: keyof T | keyof U, o1: T | U, o2: T & U) => void
247247
>T : T
248248
>U : U
249-
>k1 : keyof (T | U)
249+
>k1 : keyof T & keyof U
250250
>T : T
251251
>U : U
252252
>k2 : keyof T | keyof U
@@ -260,19 +260,19 @@ function f20<T, U>(k1: keyof (T | U), k2: keyof (T & U), o1: T | U, o2: T & U) {
260260
>U : U
261261

262262
o1[k1];
263-
>o1[k1] : (T | U)[keyof (T | U)]
263+
>o1[k1] : (T | U)[keyof T & keyof U]
264264
>o1 : T | U
265-
>k1 : keyof (T | U)
265+
>k1 : keyof T & keyof U
266266

267267
o1[k2]; // Error
268268
>o1[k2] : (T | U)[keyof T | keyof U]
269269
>o1 : T | U
270270
>k2 : keyof T | keyof U
271271

272272
o2[k1];
273-
>o2[k1] : (T & U)[keyof (T | U)]
273+
>o2[k1] : (T & U)[keyof T & keyof U]
274274
>o2 : T & U
275-
>k1 : keyof (T | U)
275+
>k1 : keyof T & keyof U
276276

277277
o2[k2];
278278
>o2[k2] : (T & U)[keyof T | keyof U]
@@ -291,13 +291,13 @@ function f20<T, U>(k1: keyof (T | U), k2: keyof (T & U), o1: T | U, o2: T & U) {
291291

292292
k1 = k2; // Error
293293
>k1 = k2 : keyof T | keyof U
294-
>k1 : keyof (T | U)
294+
>k1 : keyof T & keyof U
295295
>k2 : keyof T | keyof U
296296

297297
k2 = k1;
298-
>k2 = k1 : keyof (T | U)
298+
>k2 = k1 : keyof T & keyof U
299299
>k2 : keyof T | keyof U
300-
>k1 : keyof (T | U)
300+
>k1 : keyof T & keyof U
301301
}
302302

303303
// Repro from #17166

0 commit comments

Comments
 (0)