=== tests/cases/conformance/expressions/binaryOperators/comparisonOperator/comparisonOperatorWithOneOperandIsUndefined.ts === var x: typeof undefined; >x : any >undefined : undefined enum E { a, b, c } >E : E >a : E >b : E >c : E function foo(t: T) { >foo : (t: T) => void >T : T >t : T >T : T var foo_r1 = t < x; >foo_r1 : boolean >t < x : boolean >t : T >x : any var foo_r2 = t > x; >foo_r2 : boolean >t > x : boolean >t : T >x : any var foo_r3 = t <= x; >foo_r3 : boolean >t <= x : boolean >t : T >x : any var foo_r4 = t >= x; >foo_r4 : boolean >t >= x : boolean >t : T >x : any var foo_r5 = t == x; >foo_r5 : boolean >t == x : boolean >t : T >x : any var foo_r6 = t != x; >foo_r6 : boolean >t != x : boolean >t : T >x : any var foo_r7 = t === x; >foo_r7 : boolean >t === x : boolean >t : T >x : any var foo_r8 = t !== x; >foo_r8 : boolean >t !== x : boolean >t : T >x : any var foo_r1 = x < t; >foo_r1 : boolean >x < t : boolean >x : any >t : T var foo_r2 = x > t; >foo_r2 : boolean >x > t : boolean >x : any >t : T var foo_r3 = x <= t; >foo_r3 : boolean >x <= t : boolean >x : any >t : T var foo_r4 = x >= t; >foo_r4 : boolean >x >= t : boolean >x : any >t : T var foo_r5 = x == t; >foo_r5 : boolean >x == t : boolean >x : any >t : T var foo_r6 = x != t; >foo_r6 : boolean >x != t : boolean >x : any >t : T var foo_r7 = x === t; >foo_r7 : boolean >x === t : boolean >x : any >t : T var foo_r8 = x !== t; >foo_r8 : boolean >x !== t : boolean >x : any >t : T } var a: boolean; >a : boolean var b: number; >b : number var c: string; >c : string var d: void; >d : void var e: E; >e : E >E : E var f: {}; >f : {} var g: string[]; >g : string[] // operator < var r1a1 = x < a; >r1a1 : boolean >x < a : boolean >x : any >a : boolean var r1a2 = x < b; >r1a2 : boolean >x < b : boolean >x : any >b : number var r1a3 = x < c; >r1a3 : boolean >x < c : boolean >x : any >c : string var r1a4 = x < d; >r1a4 : boolean >x < d : boolean >x : any >d : void var r1a5 = x < e; >r1a5 : boolean >x < e : boolean >x : any >e : E var r1a6 = x < f; >r1a6 : boolean >x < f : boolean >x : any >f : {} var r1a7 = x < g; >r1a7 : boolean >x < g : boolean >x : any >g : string[] var r1b1 = a < x; >r1b1 : boolean >a < x : boolean >a : boolean >x : any var r1b2 = b < x; >r1b2 : boolean >b < x : boolean >b : number >x : any var r1b3 = c < x; >r1b3 : boolean >c < x : boolean >c : string >x : any var r1b4 = d < x; >r1b4 : boolean >d < x : boolean >d : void >x : any var r1b5 = e < x; >r1b5 : boolean >e < x : boolean >e : E >x : any var r1b6 = f < x; >r1b6 : boolean >f < x : boolean >f : {} >x : any var r1b7 = g < x; >r1b7 : boolean >g < x : boolean >g : string[] >x : any // operator > var r2a1 = x > a; >r2a1 : boolean >x > a : boolean >x : any >a : boolean var r2a2 = x > b; >r2a2 : boolean >x > b : boolean >x : any >b : number var r2a3 = x > c; >r2a3 : boolean >x > c : boolean >x : any >c : string var r2a4 = x > d; >r2a4 : boolean >x > d : boolean >x : any >d : void var r2a5 = x > e; >r2a5 : boolean >x > e : boolean >x : any >e : E var r2a6 = x > f; >r2a6 : boolean >x > f : boolean >x : any >f : {} var r2a7 = x > g; >r2a7 : boolean >x > g : boolean >x : any >g : string[] var r2b1 = a > x; >r2b1 : boolean >a > x : boolean >a : boolean >x : any var r2b2 = b > x; >r2b2 : boolean >b > x : boolean >b : number >x : any var r2b3 = c > x; >r2b3 : boolean >c > x : boolean >c : string >x : any var r2b4 = d > x; >r2b4 : boolean >d > x : boolean >d : void >x : any var r2b5 = e > x; >r2b5 : boolean >e > x : boolean >e : E >x : any var r2b6 = f > x; >r2b6 : boolean >f > x : boolean >f : {} >x : any var r2b7 = g > x; >r2b7 : boolean >g > x : boolean >g : string[] >x : any // operator <= var r3a1 = x <= a; >r3a1 : boolean >x <= a : boolean >x : any >a : boolean var r3a2 = x <= b; >r3a2 : boolean >x <= b : boolean >x : any >b : number var r3a3 = x <= c; >r3a3 : boolean >x <= c : boolean >x : any >c : string var r3a4 = x <= d; >r3a4 : boolean >x <= d : boolean >x : any >d : void var r3a5 = x <= e; >r3a5 : boolean >x <= e : boolean >x : any >e : E var r3a6 = x <= f; >r3a6 : boolean >x <= f : boolean >x : any >f : {} var r3a7 = x <= g; >r3a7 : boolean >x <= g : boolean >x : any >g : string[] var r3b1 = a <= x; >r3b1 : boolean >a <= x : boolean >a : boolean >x : any var r3b2 = b <= x; >r3b2 : boolean >b <= x : boolean >b : number >x : any var r3b3 = c <= x; >r3b3 : boolean >c <= x : boolean >c : string >x : any var r3b4 = d <= x; >r3b4 : boolean >d <= x : boolean >d : void >x : any var r3b5 = e <= x; >r3b5 : boolean >e <= x : boolean >e : E >x : any var r3b6 = f <= x; >r3b6 : boolean >f <= x : boolean >f : {} >x : any var r3b7 = g <= x; >r3b7 : boolean >g <= x : boolean >g : string[] >x : any // operator >= var r4a1 = x >= a; >r4a1 : boolean >x >= a : boolean >x : any >a : boolean var r4a2 = x >= b; >r4a2 : boolean >x >= b : boolean >x : any >b : number var r4a3 = x >= c; >r4a3 : boolean >x >= c : boolean >x : any >c : string var r4a4 = x >= d; >r4a4 : boolean >x >= d : boolean >x : any >d : void var r4a5 = x >= e; >r4a5 : boolean >x >= e : boolean >x : any >e : E var r4a6 = x >= f; >r4a6 : boolean >x >= f : boolean >x : any >f : {} var r4a7 = x >= g; >r4a7 : boolean >x >= g : boolean >x : any >g : string[] var r4b1 = a >= x; >r4b1 : boolean >a >= x : boolean >a : boolean >x : any var r4b2 = b >= x; >r4b2 : boolean >b >= x : boolean >b : number >x : any var r4b3 = c >= x; >r4b3 : boolean >c >= x : boolean >c : string >x : any var r4b4 = d >= x; >r4b4 : boolean >d >= x : boolean >d : void >x : any var r4b5 = e >= x; >r4b5 : boolean >e >= x : boolean >e : E >x : any var r4b6 = f >= x; >r4b6 : boolean >f >= x : boolean >f : {} >x : any var r4b7 = g >= x; >r4b7 : boolean >g >= x : boolean >g : string[] >x : any // operator == var r5a1 = x == a; >r5a1 : boolean >x == a : boolean >x : any >a : boolean var r5a2 = x == b; >r5a2 : boolean >x == b : boolean >x : any >b : number var r5a3 = x == c; >r5a3 : boolean >x == c : boolean >x : any >c : string var r5a4 = x == d; >r5a4 : boolean >x == d : boolean >x : any >d : void var r5a5 = x == e; >r5a5 : boolean >x == e : boolean >x : any >e : E var r5a6 = x == f; >r5a6 : boolean >x == f : boolean >x : any >f : {} var r5a7 = x == g; >r5a7 : boolean >x == g : boolean >x : any >g : string[] var r5b1 = a == x; >r5b1 : boolean >a == x : boolean >a : boolean >x : any var r5b2 = b == x; >r5b2 : boolean >b == x : boolean >b : number >x : any var r5b3 = c == x; >r5b3 : boolean >c == x : boolean >c : string >x : any var r5b4 = d == x; >r5b4 : boolean >d == x : boolean >d : void >x : any var r5b5 = e == x; >r5b5 : boolean >e == x : boolean >e : E >x : any var r5b6 = f == x; >r5b6 : boolean >f == x : boolean >f : {} >x : any var r5b7 = g == x; >r5b7 : boolean >g == x : boolean >g : string[] >x : any // operator != var r6a1 = x != a; >r6a1 : boolean >x != a : boolean >x : any >a : boolean var r6a2 = x != b; >r6a2 : boolean >x != b : boolean >x : any >b : number var r6a3 = x != c; >r6a3 : boolean >x != c : boolean >x : any >c : string var r6a4 = x != d; >r6a4 : boolean >x != d : boolean >x : any >d : void var r6a5 = x != e; >r6a5 : boolean >x != e : boolean >x : any >e : E var r6a6 = x != f; >r6a6 : boolean >x != f : boolean >x : any >f : {} var r6a7 = x != g; >r6a7 : boolean >x != g : boolean >x : any >g : string[] var r6b1 = a != x; >r6b1 : boolean >a != x : boolean >a : boolean >x : any var r6b2 = b != x; >r6b2 : boolean >b != x : boolean >b : number >x : any var r6b3 = c != x; >r6b3 : boolean >c != x : boolean >c : string >x : any var r6b4 = d != x; >r6b4 : boolean >d != x : boolean >d : void >x : any var r6b5 = e != x; >r6b5 : boolean >e != x : boolean >e : E >x : any var r6b6 = f != x; >r6b6 : boolean >f != x : boolean >f : {} >x : any var r6b7 = g != x; >r6b7 : boolean >g != x : boolean >g : string[] >x : any // operator === var r7a1 = x === a; >r7a1 : boolean >x === a : boolean >x : any >a : boolean var r7a2 = x === b; >r7a2 : boolean >x === b : boolean >x : any >b : number var r7a3 = x === c; >r7a3 : boolean >x === c : boolean >x : any >c : string var r7a4 = x === d; >r7a4 : boolean >x === d : boolean >x : any >d : void var r7a5 = x === e; >r7a5 : boolean >x === e : boolean >x : any >e : E var r7a6 = x === f; >r7a6 : boolean >x === f : boolean >x : any >f : {} var r7a7 = x === g; >r7a7 : boolean >x === g : boolean >x : any >g : string[] var r7b1 = a === x; >r7b1 : boolean >a === x : boolean >a : boolean >x : any var r7b2 = b === x; >r7b2 : boolean >b === x : boolean >b : number >x : any var r7b3 = c === x; >r7b3 : boolean >c === x : boolean >c : string >x : any var r7b4 = d === x; >r7b4 : boolean >d === x : boolean >d : void >x : any var r7b5 = e === x; >r7b5 : boolean >e === x : boolean >e : E >x : any var r7b6 = f === x; >r7b6 : boolean >f === x : boolean >f : {} >x : any var r7b7 = g === x; >r7b7 : boolean >g === x : boolean >g : string[] >x : any // operator !== var r8a1 = x !== a; >r8a1 : boolean >x !== a : boolean >x : any >a : boolean var r8a2 = x !== b; >r8a2 : boolean >x !== b : boolean >x : any >b : number var r8a3 = x !== c; >r8a3 : boolean >x !== c : boolean >x : any >c : string var r8a4 = x !== d; >r8a4 : boolean >x !== d : boolean >x : any >d : void var r8a5 = x !== e; >r8a5 : boolean >x !== e : boolean >x : any >e : E var r8a6 = x !== f; >r8a6 : boolean >x !== f : boolean >x : any >f : {} var r8a7 = x !== g; >r8a7 : boolean >x !== g : boolean >x : any >g : string[] var r8b1 = a !== x; >r8b1 : boolean >a !== x : boolean >a : boolean >x : any var r8b2 = b !== x; >r8b2 : boolean >b !== x : boolean >b : number >x : any var r8b3 = c !== x; >r8b3 : boolean >c !== x : boolean >c : string >x : any var r8b4 = d !== x; >r8b4 : boolean >d !== x : boolean >d : void >x : any var r8b5 = e !== x; >r8b5 : boolean >e !== x : boolean >e : E >x : any var r8b6 = f !== x; >r8b6 : boolean >f !== x : boolean >f : {} >x : any var r8b7 = g !== x; >r8b7 : boolean >g !== x : boolean >g : string[] >x : any