=== tests/cases/conformance/expressions/binaryOperators/logicalAndOperator/logicalAndOperatorWithEveryType.ts === // The && operator permits the operands to be of any type and produces a result of the same // type as the second operand. enum E { a, b, c } >E : E >a : E >b : E >c : E var a1: any; >a1 : any var a2: boolean; >a2 : boolean var a3: number >a3 : number var a4: string; >a4 : string var a5: void; >a5 : void var a6: E; >a6 : E >E : E var a7: {}; >a7 : {} var a8: string[]; >a8 : string[] var ra1 = a1 && a1; >ra1 : any >a1 && a1 : any >a1 : any >a1 : any var ra2 = a2 && a1; >ra2 : any >a2 && a1 : any >a2 : boolean >a1 : any var ra3 = a3 && a1; >ra3 : any >a3 && a1 : any >a3 : number >a1 : any var ra4 = a4 && a1; >ra4 : any >a4 && a1 : any >a4 : string >a1 : any var ra5 = a5 && a1; >ra5 : any >a5 && a1 : any >a5 : void >a1 : any var ra6 = a6 && a1; >ra6 : any >a6 && a1 : any >a6 : E >a1 : any var ra7 = a7 && a1; >ra7 : any >a7 && a1 : any >a7 : {} >a1 : any var ra8 = a8 && a1; >ra8 : any >a8 && a1 : any >a8 : string[] >a1 : any var ra9 = null && a1; >ra9 : any >null && a1 : any >a1 : any var ra10 = undefined && a1; >ra10 : any >undefined && a1 : any >undefined : undefined >a1 : any var rb1 = a1 && a2; >rb1 : boolean >a1 && a2 : boolean >a1 : any >a2 : boolean var rb2 = a2 && a2; >rb2 : boolean >a2 && a2 : boolean >a2 : boolean >a2 : boolean var rb3 = a3 && a2; >rb3 : boolean >a3 && a2 : boolean >a3 : number >a2 : boolean var rb4 = a4 && a2; >rb4 : boolean >a4 && a2 : boolean >a4 : string >a2 : boolean var rb5 = a5 && a2; >rb5 : boolean >a5 && a2 : boolean >a5 : void >a2 : boolean var rb6 = a6 && a2; >rb6 : boolean >a6 && a2 : boolean >a6 : E >a2 : boolean var rb7 = a7 && a2; >rb7 : boolean >a7 && a2 : boolean >a7 : {} >a2 : boolean var rb8 = a8 && a2; >rb8 : boolean >a8 && a2 : boolean >a8 : string[] >a2 : boolean var rb9 = null && a2; >rb9 : boolean >null && a2 : boolean >a2 : boolean var rb10 = undefined && a2; >rb10 : boolean >undefined && a2 : boolean >undefined : undefined >a2 : boolean var rc1 = a1 && a3; >rc1 : number >a1 && a3 : number >a1 : any >a3 : number var rc2 = a2 && a3; >rc2 : number >a2 && a3 : number >a2 : boolean >a3 : number var rc3 = a3 && a3; >rc3 : number >a3 && a3 : number >a3 : number >a3 : number var rc4 = a4 && a3; >rc4 : number >a4 && a3 : number >a4 : string >a3 : number var rc5 = a5 && a3; >rc5 : number >a5 && a3 : number >a5 : void >a3 : number var rc6 = a6 && a3; >rc6 : number >a6 && a3 : number >a6 : E >a3 : number var rc7 = a7 && a3; >rc7 : number >a7 && a3 : number >a7 : {} >a3 : number var rc8 = a8 && a3; >rc8 : number >a8 && a3 : number >a8 : string[] >a3 : number var rc9 = null && a3; >rc9 : number >null && a3 : number >a3 : number var rc10 = undefined && a3; >rc10 : number >undefined && a3 : number >undefined : undefined >a3 : number var rd1 = a1 && a4; >rd1 : string >a1 && a4 : string >a1 : any >a4 : string var rd2 = a2 && a4; >rd2 : string >a2 && a4 : string >a2 : boolean >a4 : string var rd3 = a3 && a4; >rd3 : string >a3 && a4 : string >a3 : number >a4 : string var rd4 = a4 && a4; >rd4 : string >a4 && a4 : string >a4 : string >a4 : string var rd5 = a5 && a4; >rd5 : string >a5 && a4 : string >a5 : void >a4 : string var rd6 = a6 && a4; >rd6 : string >a6 && a4 : string >a6 : E >a4 : string var rd7 = a7 && a4; >rd7 : string >a7 && a4 : string >a7 : {} >a4 : string var rd8 = a8 && a4; >rd8 : string >a8 && a4 : string >a8 : string[] >a4 : string var rd9 = null && a4; >rd9 : string >null && a4 : string >a4 : string var rd10 = undefined && a4; >rd10 : string >undefined && a4 : string >undefined : undefined >a4 : string var re1 = a1 && a5; >re1 : void >a1 && a5 : void >a1 : any >a5 : void var re2 = a2 && a5; >re2 : void >a2 && a5 : void >a2 : boolean >a5 : void var re3 = a3 && a5; >re3 : void >a3 && a5 : void >a3 : number >a5 : void var re4 = a4 && a5; >re4 : void >a4 && a5 : void >a4 : string >a5 : void var re5 = a5 && a5; >re5 : void >a5 && a5 : void >a5 : void >a5 : void var re6 = a6 && a5; >re6 : void >a6 && a5 : void >a6 : E >a5 : void var re7 = a7 && a5; >re7 : void >a7 && a5 : void >a7 : {} >a5 : void var re8 = a8 && a5; >re8 : void >a8 && a5 : void >a8 : string[] >a5 : void var re9 = null && a5; >re9 : void >null && a5 : void >a5 : void var re10 = undefined && a5; >re10 : void >undefined && a5 : void >undefined : undefined >a5 : void var rf1 = a1 && a6; >rf1 : E >a1 && a6 : E >a1 : any >a6 : E var rf2 = a2 && a6; >rf2 : E >a2 && a6 : E >a2 : boolean >a6 : E var rf3 = a3 && a6; >rf3 : E >a3 && a6 : E >a3 : number >a6 : E var rf4 = a4 && a6; >rf4 : E >a4 && a6 : E >a4 : string >a6 : E var rf5 = a5 && a6; >rf5 : E >a5 && a6 : E >a5 : void >a6 : E var rf6 = a6 && a6; >rf6 : E >a6 && a6 : E >a6 : E >a6 : E var rf7 = a7 && a6; >rf7 : E >a7 && a6 : E >a7 : {} >a6 : E var rf8 = a8 && a6; >rf8 : E >a8 && a6 : E >a8 : string[] >a6 : E var rf9 = null && a6; >rf9 : E >null && a6 : E >a6 : E var rf10 = undefined && a6; >rf10 : E >undefined && a6 : E >undefined : undefined >a6 : E var rg1 = a1 && a7; >rg1 : {} >a1 && a7 : {} >a1 : any >a7 : {} var rg2 = a2 && a7; >rg2 : {} >a2 && a7 : {} >a2 : boolean >a7 : {} var rg3 = a3 && a7; >rg3 : {} >a3 && a7 : {} >a3 : number >a7 : {} var rg4 = a4 && a7; >rg4 : {} >a4 && a7 : {} >a4 : string >a7 : {} var rg5 = a5 && a7; >rg5 : {} >a5 && a7 : {} >a5 : void >a7 : {} var rg6 = a6 && a7; >rg6 : {} >a6 && a7 : {} >a6 : E >a7 : {} var rg7 = a7 && a7; >rg7 : {} >a7 && a7 : {} >a7 : {} >a7 : {} var rg8 = a8 && a7; >rg8 : {} >a8 && a7 : {} >a8 : string[] >a7 : {} var rg9 = null && a7; >rg9 : {} >null && a7 : {} >a7 : {} var rg10 = undefined && a7; >rg10 : {} >undefined && a7 : {} >undefined : undefined >a7 : {} var rh1 = a1 && a8; >rh1 : string[] >a1 && a8 : string[] >a1 : any >a8 : string[] var rh2 = a2 && a8; >rh2 : string[] >a2 && a8 : string[] >a2 : boolean >a8 : string[] var rh3 = a3 && a8; >rh3 : string[] >a3 && a8 : string[] >a3 : number >a8 : string[] var rh4 = a4 && a8; >rh4 : string[] >a4 && a8 : string[] >a4 : string >a8 : string[] var rh5 = a5 && a8; >rh5 : string[] >a5 && a8 : string[] >a5 : void >a8 : string[] var rh6 = a6 && a8; >rh6 : string[] >a6 && a8 : string[] >a6 : E >a8 : string[] var rh7 = a7 && a8; >rh7 : string[] >a7 && a8 : string[] >a7 : {} >a8 : string[] var rh8 = a8 && a8; >rh8 : string[] >a8 && a8 : string[] >a8 : string[] >a8 : string[] var rh9 = null && a8; >rh9 : string[] >null && a8 : string[] >a8 : string[] var rh10 = undefined && a8; >rh10 : string[] >undefined && a8 : string[] >undefined : undefined >a8 : string[] var ri1 = a1 && null; >ri1 : any >a1 && null : null >a1 : any var ri2 = a2 && null; >ri2 : any >a2 && null : null >a2 : boolean var ri3 = a3 && null; >ri3 : any >a3 && null : null >a3 : number var ri4 = a4 && null; >ri4 : any >a4 && null : null >a4 : string var ri5 = a5 && null; >ri5 : any >a5 && null : null >a5 : void var ri6 = a6 && null; >ri6 : any >a6 && null : null >a6 : E var ri7 = a7 && null; >ri7 : any >a7 && null : null >a7 : {} var ri8 = a8 && null; >ri8 : any >a8 && null : null >a8 : string[] var ri9 = null && null; >ri9 : any >null && null : null var ri10 = undefined && null; >ri10 : any >undefined && null : null >undefined : undefined var rj1 = a1 && undefined; >rj1 : any >a1 && undefined : undefined >a1 : any >undefined : undefined var rj2 = a2 && undefined; >rj2 : any >a2 && undefined : undefined >a2 : boolean >undefined : undefined var rj3 = a3 && undefined; >rj3 : any >a3 && undefined : undefined >a3 : number >undefined : undefined var rj4 = a4 && undefined; >rj4 : any >a4 && undefined : undefined >a4 : string >undefined : undefined var rj5 = a5 && undefined; >rj5 : any >a5 && undefined : undefined >a5 : void >undefined : undefined var rj6 = a6 && undefined; >rj6 : any >a6 && undefined : undefined >a6 : E >undefined : undefined var rj7 = a7 && undefined; >rj7 : any >a7 && undefined : undefined >a7 : {} >undefined : undefined var rj8 = a8 && undefined; >rj8 : any >a8 && undefined : undefined >a8 : string[] >undefined : undefined var rj9 = null && undefined; >rj9 : any >null && undefined : undefined >undefined : undefined var rj10 = undefined && undefined; >rj10 : any >undefined && undefined : undefined >undefined : undefined >undefined : undefined