=== tests/cases/compiler/declFileTypeofFunction.ts === function f(n: typeof f): string; >f : Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) >n : Symbol(n, Decl(declFileTypeofFunction.ts, 1, 11)) >f : Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) function f(n: typeof g): string; >f : Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) >n : Symbol(n, Decl(declFileTypeofFunction.ts, 2, 11)) >g : Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) function f() { return undefined; } >f : Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) >undefined : Symbol(undefined) function g(n: typeof g): number; >g : Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) >n : Symbol(n, Decl(declFileTypeofFunction.ts, 4, 11)) >g : Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) function g(n: typeof f): number; >g : Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) >n : Symbol(n, Decl(declFileTypeofFunction.ts, 5, 11)) >f : Symbol(f, Decl(declFileTypeofFunction.ts, 0, 0), Decl(declFileTypeofFunction.ts, 1, 32), Decl(declFileTypeofFunction.ts, 2, 32)) function g() { return undefined; } >g : Symbol(g, Decl(declFileTypeofFunction.ts, 3, 34), Decl(declFileTypeofFunction.ts, 4, 32), Decl(declFileTypeofFunction.ts, 5, 32)) >undefined : Symbol(undefined) var b: () => typeof b; >b : Symbol(b, Decl(declFileTypeofFunction.ts, 8, 3)) >b : Symbol(b, Decl(declFileTypeofFunction.ts, 8, 3)) function b1() { >b1 : Symbol(b1, Decl(declFileTypeofFunction.ts, 8, 22)) return b1; >b1 : Symbol(b1, Decl(declFileTypeofFunction.ts, 8, 22)) } function foo(): typeof foo { >foo : Symbol(foo, Decl(declFileTypeofFunction.ts, 12, 1)) >foo : Symbol(foo, Decl(declFileTypeofFunction.ts, 12, 1)) return null; } var foo1: typeof foo; >foo1 : Symbol(foo1, Decl(declFileTypeofFunction.ts, 17, 3)) >foo : Symbol(foo, Decl(declFileTypeofFunction.ts, 12, 1)) var foo2 = foo; >foo2 : Symbol(foo2, Decl(declFileTypeofFunction.ts, 18, 3)) >foo : Symbol(foo, Decl(declFileTypeofFunction.ts, 12, 1)) var foo3 = function () { >foo3 : Symbol(foo3, Decl(declFileTypeofFunction.ts, 20, 3)) return foo3; >foo3 : Symbol(foo3, Decl(declFileTypeofFunction.ts, 20, 3)) } var x = () => { >x : Symbol(x, Decl(declFileTypeofFunction.ts, 23, 3)) return x; >x : Symbol(x, Decl(declFileTypeofFunction.ts, 23, 3)) } function foo5(x: number) { >foo5 : Symbol(foo5, Decl(declFileTypeofFunction.ts, 25, 1)) >x : Symbol(x, Decl(declFileTypeofFunction.ts, 27, 14)) function bar(x: number) { >bar : Symbol(bar, Decl(declFileTypeofFunction.ts, 27, 26)) >x : Symbol(x, Decl(declFileTypeofFunction.ts, 28, 17)) return x; >x : Symbol(x, Decl(declFileTypeofFunction.ts, 28, 17)) } return bar; >bar : Symbol(bar, Decl(declFileTypeofFunction.ts, 27, 26)) }