=== tests/cases/compiler/functionOverloads15.ts === function foo(foo:{a:string; b:number;}):string; >foo : Symbol(foo, Decl(functionOverloads15.ts, 0, 0), Decl(functionOverloads15.ts, 0, 47), Decl(functionOverloads15.ts, 1, 47)) >foo : Symbol(foo, Decl(functionOverloads15.ts, 0, 13)) >a : Symbol(a, Decl(functionOverloads15.ts, 0, 18)) >b : Symbol(b, Decl(functionOverloads15.ts, 0, 27)) function foo(foo:{a:string; b:number;}):number; >foo : Symbol(foo, Decl(functionOverloads15.ts, 0, 0), Decl(functionOverloads15.ts, 0, 47), Decl(functionOverloads15.ts, 1, 47)) >foo : Symbol(foo, Decl(functionOverloads15.ts, 1, 13)) >a : Symbol(a, Decl(functionOverloads15.ts, 1, 18)) >b : Symbol(b, Decl(functionOverloads15.ts, 1, 27)) function foo(foo:{a:string; b?:number;}):any { return "" } >foo : Symbol(foo, Decl(functionOverloads15.ts, 0, 0), Decl(functionOverloads15.ts, 0, 47), Decl(functionOverloads15.ts, 1, 47)) >foo : Symbol(foo, Decl(functionOverloads15.ts, 2, 13)) >a : Symbol(a, Decl(functionOverloads15.ts, 2, 18)) >b : Symbol(b, Decl(functionOverloads15.ts, 2, 27))