Skip to content

Commit f9a55ac

Browse files
committed
Accept new baselines
1 parent 07d2595 commit f9a55ac

File tree

4 files changed

+98
-0
lines changed

4 files changed

+98
-0
lines changed

tests/baselines/reference/keyofAndIndexedAccess2.errors.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,4 +187,14 @@ tests/cases/conformance/types/keyof/keyofAndIndexedAccess2.ts(108,5): error TS23
187187
!!! error TS2322: Type '123' is not assignable to type '123 & "some string"'.
188188
!!! error TS2322: Type '123' is not assignable to type '"some string"'.
189189
}
190+
191+
// Repros from #30938
192+
193+
function fn<T extends {elements: Array<string>} | {elements: Array<number>}>(param: T, cb: (element: T['elements'][number]) => void) {
194+
cb(param.elements[0]);
195+
}
196+
197+
function fn2<T extends Array<string>>(param: T, cb: (element: T[number]) => void) {
198+
cb(param[0]);
199+
}
190200

tests/baselines/reference/keyofAndIndexedAccess2.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,16 @@ interface Type {
108108
function get123<K extends keyof Type>(): Type[K] {
109109
return 123; // Error
110110
}
111+
112+
// Repros from #30938
113+
114+
function fn<T extends {elements: Array<string>} | {elements: Array<number>}>(param: T, cb: (element: T['elements'][number]) => void) {
115+
cb(param.elements[0]);
116+
}
117+
118+
function fn2<T extends Array<string>>(param: T, cb: (element: T[number]) => void) {
119+
cb(param[0]);
120+
}
111121

112122

113123
//// [keyofAndIndexedAccess2.js]
@@ -183,3 +193,10 @@ export function getEntity(id, state) {
183193
function get123() {
184194
return 123; // Error
185195
}
196+
// Repros from #30938
197+
function fn(param, cb) {
198+
cb(param.elements[0]);
199+
}
200+
function fn2(param, cb) {
201+
cb(param[0]);
202+
}

tests/baselines/reference/keyofAndIndexedAccess2.symbols

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,3 +388,40 @@ function get123<K extends keyof Type>(): Type[K] {
388388
return 123; // Error
389389
}
390390

391+
// Repros from #30938
392+
393+
function fn<T extends {elements: Array<string>} | {elements: Array<number>}>(param: T, cb: (element: T['elements'][number]) => void) {
394+
>fn : Symbol(fn, Decl(keyofAndIndexedAccess2.ts, 108, 1))
395+
>T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 112, 12))
396+
>elements : Symbol(elements, Decl(keyofAndIndexedAccess2.ts, 112, 23))
397+
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more)
398+
>elements : Symbol(elements, Decl(keyofAndIndexedAccess2.ts, 112, 51))
399+
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more)
400+
>param : Symbol(param, Decl(keyofAndIndexedAccess2.ts, 112, 77))
401+
>T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 112, 12))
402+
>cb : Symbol(cb, Decl(keyofAndIndexedAccess2.ts, 112, 86))
403+
>element : Symbol(element, Decl(keyofAndIndexedAccess2.ts, 112, 92))
404+
>T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 112, 12))
405+
406+
cb(param.elements[0]);
407+
>cb : Symbol(cb, Decl(keyofAndIndexedAccess2.ts, 112, 86))
408+
>param.elements : Symbol(elements, Decl(keyofAndIndexedAccess2.ts, 112, 23), Decl(keyofAndIndexedAccess2.ts, 112, 51))
409+
>param : Symbol(param, Decl(keyofAndIndexedAccess2.ts, 112, 77))
410+
>elements : Symbol(elements, Decl(keyofAndIndexedAccess2.ts, 112, 23), Decl(keyofAndIndexedAccess2.ts, 112, 51))
411+
}
412+
413+
function fn2<T extends Array<string>>(param: T, cb: (element: T[number]) => void) {
414+
>fn2 : Symbol(fn2, Decl(keyofAndIndexedAccess2.ts, 114, 1))
415+
>T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 116, 13))
416+
>Array : Symbol(Array, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.core.d.ts, --, --), Decl(lib.es2015.iterable.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --) ... and 2 more)
417+
>param : Symbol(param, Decl(keyofAndIndexedAccess2.ts, 116, 38))
418+
>T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 116, 13))
419+
>cb : Symbol(cb, Decl(keyofAndIndexedAccess2.ts, 116, 47))
420+
>element : Symbol(element, Decl(keyofAndIndexedAccess2.ts, 116, 53))
421+
>T : Symbol(T, Decl(keyofAndIndexedAccess2.ts, 116, 13))
422+
423+
cb(param[0]);
424+
>cb : Symbol(cb, Decl(keyofAndIndexedAccess2.ts, 116, 47))
425+
>param : Symbol(param, Decl(keyofAndIndexedAccess2.ts, 116, 38))
426+
}
427+

tests/baselines/reference/keyofAndIndexedAccess2.types

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,3 +423,37 @@ function get123<K extends keyof Type>(): Type[K] {
423423
>123 : 123
424424
}
425425

426+
// Repros from #30938
427+
428+
function fn<T extends {elements: Array<string>} | {elements: Array<number>}>(param: T, cb: (element: T['elements'][number]) => void) {
429+
>fn : <T extends { elements: string[]; } | { elements: number[]; }>(param: T, cb: (element: T["elements"][number]) => void) => void
430+
>elements : string[]
431+
>elements : number[]
432+
>param : T
433+
>cb : (element: T["elements"][number]) => void
434+
>element : T["elements"][number]
435+
436+
cb(param.elements[0]);
437+
>cb(param.elements[0]) : void
438+
>cb : (element: T["elements"][number]) => void
439+
>param.elements[0] : string | number
440+
>param.elements : string[] | number[]
441+
>param : T
442+
>elements : string[] | number[]
443+
>0 : 0
444+
}
445+
446+
function fn2<T extends Array<string>>(param: T, cb: (element: T[number]) => void) {
447+
>fn2 : <T extends string[]>(param: T, cb: (element: T[number]) => void) => void
448+
>param : T
449+
>cb : (element: T[number]) => void
450+
>element : T[number]
451+
452+
cb(param[0]);
453+
>cb(param[0]) : void
454+
>cb : (element: T[number]) => void
455+
>param[0] : string
456+
>param : T
457+
>0 : 0
458+
}
459+

0 commit comments

Comments
 (0)