=== tests/cases/compiler/genericObjectLitReturnType.ts === class X >X : X >T : T { f(t: T) { return { a: t }; } >f : (t: T) => { a: T; } >t : T >T : T >{ a: t } : { a: T; } >a : T >t : T } var x: X; >x : X >X : X var t1 = x.f(5); >t1 : { a: number; } >x.f(5) : { a: number; } >x.f : (t: number) => { a: number; } >x : X >f : (t: number) => { a: number; } t1.a = 5; // Should not error: t1 should have type {a: number}, instead has type {a: T} >t1.a = 5 : number >t1.a : number >t1 : { a: number; } >a : number