=== tests/cases/conformance/expressions/binaryOperators/logicalAndOperator/logicalAndOperatorWithTypeParameters.ts ===
// The && operator permits the operands to be of any type and produces a result of the same
// type as the second operand.
function foo(t: T, u: U, v: V) {
>foo : (t: T, u: U, v: V) => void
>T : T
>U : U
>V : V
>t : T
>T : T
>u : U
>U : U
>v : V
>V : V
var r1 = t && t;
>r1 : T
>t && t : T
>t : T
>t : T
var r2 = u && t;
>r2 : T
>u && t : T
>u : U
>t : T
var r3 = v && t;
>r3 : T
>v && t : T
>v : V
>t : T
var r4 = t && u;
>r4 : U
>t && u : U
>t : T
>u : U
var r5 = u && u;
>r5 : U
>u && u : U
>u : U
>u : U
var r6 = v && u;
>r6 : U
>v && u : U
>v : V
>u : U
var r7 = t && v;
>r7 : V
>t && v : V
>t : T
>v : V
var r8 = u && v;
>r8 : V
>u && v : V
>u : U
>v : V
var r9 = v && v;
>r9 : V
>v && v : V
>v : V
>v : V
var a: number;
>a : number
var r10 = t && a;
>r10 : number
>t && a : number
>t : T
>a : number
}