func TestCheckBinaryExprIntRhlComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 >> 8.0i`, env,
		`constant 0+8i truncated to real`,
	)
}
Test Int >> Complex
package eval
import (
	"testing"
)
func TestCheckBinaryExprIntAddInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 + 4`, env, NewConstInt64(4 + 4), ConstInt)
}
func TestCheckBinaryExprIntAddRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 + '@'`, env, NewConstRune(4 + '@'), ConstRune)
}
func TestCheckBinaryExprIntAddFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 + 2.0`, env, NewConstFloat64(4 + 2.0), ConstFloat)
}
func TestCheckBinaryExprIntAddComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 + 8.0i`, env, NewConstComplex128(4 + 8.0i), ConstComplex)
}
func TestCheckBinaryExprIntAddBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 + true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 + true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntAddString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 + "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 + "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntAddNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 + nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 + nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntSubInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 - 4`, env, NewConstInt64(4 - 4), ConstInt)
}
func TestCheckBinaryExprIntSubRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 - '@'`, env, NewConstRune(4 - '@'), ConstRune)
}
func TestCheckBinaryExprIntSubFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 - 2.0`, env, NewConstFloat64(4 - 2.0), ConstFloat)
}
func TestCheckBinaryExprIntSubComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 - 8.0i`, env, NewConstComplex128(4 - 8.0i), ConstComplex)
}
func TestCheckBinaryExprIntSubBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 - true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 - true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntSubString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 - "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 - "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntSubNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 - nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 - nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntMulInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 * 4`, env, NewConstInt64(4 * 4), ConstInt)
}
func TestCheckBinaryExprIntMulRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 * '@'`, env, NewConstRune(4 * '@'), ConstRune)
}
func TestCheckBinaryExprIntMulFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 * 2.0`, env, NewConstFloat64(4 * 2.0), ConstFloat)
}
func TestCheckBinaryExprIntMulComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 * 8.0i`, env, NewConstComplex128(4 * 8.0i), ConstComplex)
}
func TestCheckBinaryExprIntMulBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 * true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 * true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntMulString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 * "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 * "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntMulNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 * nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 * nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntQuoInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 / 4`, env, NewConstInt64(4 / 4), ConstInt)
}
func TestCheckBinaryExprIntQuoRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 / '@'`, env, NewConstRune(4 / '@'), ConstRune)
}
func TestCheckBinaryExprIntQuoFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 / 2.0`, env, NewConstFloat64(4 / 2.0), ConstFloat)
}
func TestCheckBinaryExprIntQuoComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 / 8.0i`, env, NewConstComplex128(4 / 8.0i), ConstComplex)
}
func TestCheckBinaryExprIntQuoBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 / true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 / true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntQuoString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 / "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 / "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntQuoNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 / nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 / nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntRemInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 % 4`, env, NewConstInt64(4 % 4), ConstInt)
}
func TestCheckBinaryExprIntRemRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 % '@'`, env, NewConstRune(4 % '@'), ConstRune)
}
func TestCheckBinaryExprIntRemFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 % 2.0`, env,
		`illegal constant expression: floating-point % operation`,
	)
}
func TestCheckBinaryExprIntRemComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 % 8.0i`, env,
		`illegal constant expression: untyped number % untyped number`,
	)
}
func TestCheckBinaryExprIntRemBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 % true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 % true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntRemString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 % "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 % "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntRemNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 % nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 % nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntAndInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 & 4`, env, NewConstInt64(4 & 4), ConstInt)
}
func TestCheckBinaryExprIntAndRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 & '@'`, env, NewConstRune(4 & '@'), ConstRune)
}
func TestCheckBinaryExprIntAndFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 & 2.0`, env,
		`illegal constant expression: untyped number & untyped number`,
	)
}
func TestCheckBinaryExprIntAndComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 & 8.0i`, env,
		`illegal constant expression: untyped number & untyped number`,
	)
}
func TestCheckBinaryExprIntAndBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 & true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 & true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntAndString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 & "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 & "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntAndNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 & nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 & nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntOrInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 | 4`, env, NewConstInt64(4 | 4), ConstInt)
}
func TestCheckBinaryExprIntOrRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 | '@'`, env, NewConstRune(4 | '@'), ConstRune)
}
func TestCheckBinaryExprIntOrFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 | 2.0`, env,
		`illegal constant expression: untyped number | untyped number`,
	)
}
func TestCheckBinaryExprIntOrComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 | 8.0i`, env,
		`illegal constant expression: untyped number | untyped number`,
	)
}
func TestCheckBinaryExprIntOrBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 | true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 | true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntOrString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 | "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 | "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntOrNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 | nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 | nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntXorInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 ^ 4`, env, NewConstInt64(4 ^ 4), ConstInt)
}
func TestCheckBinaryExprIntXorRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 ^ '@'`, env, NewConstRune(4 ^ '@'), ConstRune)
}
func TestCheckBinaryExprIntXorFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 ^ 2.0`, env,
		`illegal constant expression: untyped number ^ untyped number`,
	)
}
func TestCheckBinaryExprIntXorComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 ^ 8.0i`, env,
		`illegal constant expression: untyped number ^ untyped number`,
	)
}
func TestCheckBinaryExprIntXorBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 ^ true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 ^ true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntXorString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 ^ "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 ^ "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntXorNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 ^ nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 ^ nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntAndNotInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 &^ 4`, env, NewConstInt64(4 &^ 4), ConstInt)
}
func TestCheckBinaryExprIntAndNotRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 &^ '@'`, env, NewConstRune(4 &^ '@'), ConstRune)
}
func TestCheckBinaryExprIntAndNotFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 &^ 2.0`, env,
		`illegal constant expression: untyped number &^ untyped number`,
	)
}
func TestCheckBinaryExprIntAndNotComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 &^ 8.0i`, env,
		`illegal constant expression: untyped number &^ untyped number`,
	)
}
func TestCheckBinaryExprIntAndNotBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 &^ true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 &^ true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntAndNotString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 &^ "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 &^ "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntAndNotNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 &^ nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 &^ nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntEqlInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 == 4`, env, (4 == 4), ConstBool)
}
func TestCheckBinaryExprIntEqlRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 == '@'`, env, (4 == '@'), ConstBool)
}
func TestCheckBinaryExprIntEqlFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 == 2.0`, env, (4 == 2.0), ConstBool)
}
func TestCheckBinaryExprIntEqlComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 == 8.0i`, env, (4 == 8.0i), ConstBool)
}
func TestCheckBinaryExprIntEqlBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 == true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 == true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntEqlString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 == "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 == "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntEqlNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 == nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 == nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntNeqInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 != 4`, env, (4 != 4), ConstBool)
}
func TestCheckBinaryExprIntNeqRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 != '@'`, env, (4 != '@'), ConstBool)
}
func TestCheckBinaryExprIntNeqFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 != 2.0`, env, (4 != 2.0), ConstBool)
}
func TestCheckBinaryExprIntNeqComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 != 8.0i`, env, (4 != 8.0i), ConstBool)
}
func TestCheckBinaryExprIntNeqBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 != true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 != true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntNeqString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 != "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 != "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntNeqNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 != nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 != nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntLeqInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 <= 4`, env, (4 <= 4), ConstBool)
}
func TestCheckBinaryExprIntLeqRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 <= '@'`, env, (4 <= '@'), ConstBool)
}
func TestCheckBinaryExprIntLeqFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 <= 2.0`, env, (4 <= 2.0), ConstBool)
}
func TestCheckBinaryExprIntLeqComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 <= 8.0i`, env,
		`illegal constant expression: untyped number <= untyped number`,
	)
}
func TestCheckBinaryExprIntLeqBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 <= true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 <= true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntLeqString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 <= "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 <= "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntLeqNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 <= nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 <= nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntGeqInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 >= 4`, env, (4 >= 4), ConstBool)
}
func TestCheckBinaryExprIntGeqRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 >= '@'`, env, (4 >= '@'), ConstBool)
}
func TestCheckBinaryExprIntGeqFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 >= 2.0`, env, (4 >= 2.0), ConstBool)
}
func TestCheckBinaryExprIntGeqComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 >= 8.0i`, env,
		`illegal constant expression: untyped number >= untyped number`,
	)
}
func TestCheckBinaryExprIntGeqBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 >= true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 >= true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntGeqString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 >= "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 >= "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntGeqNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 >= nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 >= nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntLssInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 < 4`, env, (4 < 4), ConstBool)
}
func TestCheckBinaryExprIntLssRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 < '@'`, env, (4 < '@'), ConstBool)
}
func TestCheckBinaryExprIntLssFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 < 2.0`, env, (4 < 2.0), ConstBool)
}
func TestCheckBinaryExprIntLssComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 < 8.0i`, env,
		`illegal constant expression: untyped number < untyped number`,
	)
}
func TestCheckBinaryExprIntLssBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 < true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 < true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntLssString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 < "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 < "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntLssNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 < nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 < nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntGtrInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 > 4`, env, (4 > 4), ConstBool)
}
func TestCheckBinaryExprIntGtrRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 > '@'`, env, (4 > '@'), ConstBool)
}
func TestCheckBinaryExprIntGtrFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 > 2.0`, env, (4 > 2.0), ConstBool)
}
func TestCheckBinaryExprIntGtrComplex(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 > 8.0i`, env,
		`illegal constant expression: untyped number > untyped number`,
	)
}
func TestCheckBinaryExprIntGtrBool(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 > true`, env,
		`cannot convert true to type int`,
		`invalid operation: 4 > true (mismatched types int and bool)`,
	)
}
func TestCheckBinaryExprIntGtrString(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 > "abc"`, env,
		`cannot convert "abc" to type int`,
		`invalid operation: 4 > "abc" (mismatched types int and string)`,
	)
}
func TestCheckBinaryExprIntGtrNil(t *testing.T) {
	env := MakeSimpleEnv()
	expectCheckError(t, `4 > nil`, env,
		`cannot convert nil to type int`,
		`invalid operation: 4 > nil (mismatched types int and <T>)`,
	)
}
func TestCheckBinaryExprIntRhlInt(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 >> 4`, env, NewConstInt64(4 >> 4), ConstInt)
}
func TestCheckBinaryExprIntRhlRune(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 >> '@'`, env, NewConstInt64(4 >> '@'), ConstInt)
}
func TestCheckBinaryExprIntRhlFloat(t *testing.T) {
	env := MakeSimpleEnv()
	expectConst(t, `4 >> 2.0`, env, NewConstInt64(4 >> 2.0), ConstInt)
}