| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 
 | === tests/cases/compiler/inferentialTypingUsingApparentType2.ts ===
function foo<T extends { m(p: string): number }>(x: T): T {
>foo : Symbol(foo, Decl(inferentialTypingUsingApparentType2.ts, 0, 0))
>T : Symbol(T, Decl(inferentialTypingUsingApparentType2.ts, 0, 13))
>m : Symbol(m, Decl(inferentialTypingUsingApparentType2.ts, 0, 24))
>p : Symbol(p, Decl(inferentialTypingUsingApparentType2.ts, 0, 27))
>x : Symbol(x, Decl(inferentialTypingUsingApparentType2.ts, 0, 49))
>T : Symbol(T, Decl(inferentialTypingUsingApparentType2.ts, 0, 13))
>T : Symbol(T, Decl(inferentialTypingUsingApparentType2.ts, 0, 13))
    return undefined;
>undefined : Symbol(undefined)
}
foo({ m(x) { return x.length } });
>foo : Symbol(foo, Decl(inferentialTypingUsingApparentType2.ts, 0, 0))
>m : Symbol(m, Decl(inferentialTypingUsingApparentType2.ts, 4, 5))
>x : Symbol(x, Decl(inferentialTypingUsingApparentType2.ts, 4, 8))
>x.length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
>x : Symbol(x, Decl(inferentialTypingUsingApparentType2.ts, 4, 8))
>length : Symbol(String.length, Decl(lib.es5.d.ts, --, --))
 |