@@ -400,3 +400,25 @@ const arr: Obj[] = langCodes.map(code => ({ code }))
400400>code : Symbol(code, Decl(literalTypeWidening.ts, 128, 33))
401401>code : Symbol(code, Decl(literalTypeWidening.ts, 128, 43))
402402
403+ // Repro from #29081
404+
405+ function test<T extends { a: string, b: string }>(obj: T): T {
406+ >test : Symbol(test, Decl(literalTypeWidening.ts, 128, 52))
407+ >T : Symbol(T, Decl(literalTypeWidening.ts, 132, 14))
408+ >a : Symbol(a, Decl(literalTypeWidening.ts, 132, 25))
409+ >b : Symbol(b, Decl(literalTypeWidening.ts, 132, 36))
410+ >obj : Symbol(obj, Decl(literalTypeWidening.ts, 132, 50))
411+ >T : Symbol(T, Decl(literalTypeWidening.ts, 132, 14))
412+ >T : Symbol(T, Decl(literalTypeWidening.ts, 132, 14))
413+
414+ let { a, ...rest } = obj;
415+ >a : Symbol(a, Decl(literalTypeWidening.ts, 133, 9))
416+ >rest : Symbol(rest, Decl(literalTypeWidening.ts, 133, 12))
417+ >obj : Symbol(obj, Decl(literalTypeWidening.ts, 132, 50))
418+
419+ return { a: 'hello', ...rest } as T;
420+ >a : Symbol(a, Decl(literalTypeWidening.ts, 134, 12))
421+ >rest : Symbol(rest, Decl(literalTypeWidening.ts, 133, 12))
422+ >T : Symbol(T, Decl(literalTypeWidening.ts, 132, 14))
423+ }
424+
0 commit comments