=== tests/cases/compiler/overloadCallTest.ts === class foo { >foo : Symbol(foo, Decl(overloadCallTest.ts, 0, 0)) constructor() { function bar(): string; >bar : Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) function bar(s:string); >bar : Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) >s : Symbol(s, Decl(overloadCallTest.ts, 3, 21)) function bar(foo?: string) { return "foo" }; >bar : Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) >foo : Symbol(foo, Decl(overloadCallTest.ts, 4, 21)) var test = bar("test"); >test : Symbol(test, Decl(overloadCallTest.ts, 6, 11)) >bar : Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) var goo = bar(); >goo : Symbol(goo, Decl(overloadCallTest.ts, 7, 11)) >bar : Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) goo = bar("test"); >goo : Symbol(goo, Decl(overloadCallTest.ts, 7, 11)) >bar : Symbol(bar, Decl(overloadCallTest.ts, 1, 19), Decl(overloadCallTest.ts, 2, 31), Decl(overloadCallTest.ts, 3, 31)) } }