=== tests/cases/conformance/esnext/logicalAssignment/logicalAssignment7.ts === function foo1(results: number[] | undefined, results1: number[] | undefined) { >foo1 : (results: number[] | undefined, results1: number[] | undefined) => void >results : number[] | undefined >results1 : number[] | undefined (results ||= results1 ||= []).push(100); >(results ||= results1 ||= []).push(100) : number >(results ||= results1 ||= []).push : (...items: number[]) => number >(results ||= results1 ||= []) : number[] >results ||= results1 ||= [] : number[] >results ||= results1 : number[] | undefined >results : number[] | undefined >results1 : number[] | undefined >[] : never[] >push : (...items: number[]) => number >100 : 100 } function foo2(results: number[] | undefined, results1: number[] | undefined) { >foo2 : (results: number[] | undefined, results1: number[] | undefined) => void >results : number[] | undefined >results1 : number[] | undefined (results ??= results1 ??= []).push(100); >(results ??= results1 ??= []).push(100) : number >(results ??= results1 ??= []).push : (...items: number[]) => number >(results ??= results1 ??= []) : number[] >results ??= results1 ??= [] : number[] >results ??= results1 : number[] | undefined >results : number[] | undefined >results1 : number[] | undefined >[] : never[] >push : (...items: number[]) => number >100 : 100 } function foo3(results: number[] | undefined, results1: number[] | undefined) { >foo3 : (results: number[] | undefined, results1: number[] | undefined) => void >results : number[] | undefined >results1 : number[] | undefined (results &&= results1 &&= []).push(100); >(results &&= results1 &&= []).push(100) : number >(results &&= results1 &&= []).push : (...items: never[]) => number >(results &&= results1 &&= []) : never[] | undefined >results &&= results1 &&= [] : never[] | undefined >results &&= results1 : number[] | undefined >results : number[] | undefined >results1 : number[] | undefined >[] : never[] >push : (...items: never[]) => number >100 : 100 }