=== tests/cases/compiler/contextuallyTypingOrOperator.ts === var v: { a: (_: string) => number } = { a: s => s.length } || { a: s => 1 }; >v : { a: (_: string) => number; }, Symbol(v, Decl(contextuallyTypingOrOperator.ts, 0, 3)) >a : (_: string) => number, Symbol(a, Decl(contextuallyTypingOrOperator.ts, 0, 8)) >_ : string, Symbol(_, Decl(contextuallyTypingOrOperator.ts, 0, 13)) >{ a: s => s.length } || { a: s => 1 } : { a: (s: string) => number; } >{ a: s => s.length } : { a: (s: string) => number; } >a : (s: string) => number, Symbol(a, Decl(contextuallyTypingOrOperator.ts, 0, 39)) >s => s.length : (s: string) => number >s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 0, 42)) >s.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) >s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 0, 42)) >length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) >{ a: s => 1 } : { a: (s: string) => number; } >a : (s: string) => number, Symbol(a, Decl(contextuallyTypingOrOperator.ts, 0, 63)) >s => 1 : (s: string) => number >s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 0, 66)) >1 : number var v2 = (s: string) => s.length || function (s) { s.length }; >v2 : (s: string) => number | ((s: any) => void), Symbol(v2, Decl(contextuallyTypingOrOperator.ts, 2, 3)) >(s: string) => s.length || function (s) { s.length } : (s: string) => number | ((s: any) => void) >s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 2, 10)) >s.length || function (s) { s.length } : number | ((s: any) => void) >s.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) >s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 2, 10)) >length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) >function (s) { s.length } : (s: any) => void >s : any, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 2, 46)) >s.length : any >s : any, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 2, 46)) >length : any var v3 = (s: string) => s.length || function (s: number) { return 1 }; >v3 : (s: string) => number | ((s: number) => number), Symbol(v3, Decl(contextuallyTypingOrOperator.ts, 4, 3)) >(s: string) => s.length || function (s: number) { return 1 } : (s: string) => number | ((s: number) => number) >s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 4, 10)) >s.length || function (s: number) { return 1 } : number | ((s: number) => number) >s.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) >s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 4, 10)) >length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) >function (s: number) { return 1 } : (s: number) => number >s : number, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 4, 46)) >1 : number var v4 = (s: number) => 1 || function (s: string) { return s.length }; >v4 : (s: number) => number | ((s: string) => number), Symbol(v4, Decl(contextuallyTypingOrOperator.ts, 5, 3)) >(s: number) => 1 || function (s: string) { return s.length } : (s: number) => number | ((s: string) => number) >s : number, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 5, 10)) >1 || function (s: string) { return s.length } : number | ((s: string) => number) >1 : number >function (s: string) { return s.length } : (s: string) => number >s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 5, 39)) >s.length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19)) >s : string, Symbol(s, Decl(contextuallyTypingOrOperator.ts, 5, 39)) >length : number, Symbol(String.length, Decl(lib.d.ts, 414, 19))