// Repro from #13118 interface Foo { a: A; b: (x: A) => void; } declare function canYouInferThis(fn: () => Foo): A; const result = canYouInferThis(() => ({ a: { BLAH: 33 }, b: x => { } })) result.BLAH; // Repro from #26629 function goofus (f: (...args: ARGS) => any ) {} goofus((a: string) => ({ dog() { return a; } })); goofus((a: string) => ({ dog: function() { return a; } }));