library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

static field core::bool a_equal = 1 =={core::num::==}{(core::Object) → core::bool} 2;
static field core::bool a_notEqual = !(1 =={core::num::==}{(core::Object) → core::bool} 2);
static field core::int a_bitXor = 1.{core::int::^}(2){(core::int) → core::int};
static field core::int a_bitAnd = 1.{core::int::&}(2){(core::int) → core::int};
static field core::int a_bitOr = 1.{core::int::|}(2){(core::int) → core::int};
static field core::int a_bitShiftRight = 1.{core::int::>>}(2){(core::int) → core::int};
static field core::int a_bitShiftLeft = 1.{core::int::<<}(2){(core::int) → core::int};
static field core::int a_add = 1.{core::num::+}(2){(core::num) → core::int};
static field core::int a_subtract = 1.{core::num::-}(2){(core::num) → core::int};
static field core::int a_multiply = 1.{core::num::*}(2){(core::num) → core::int};
static field core::double a_divide = 1.{core::num::/}(2){(core::num) → core::double};
static field core::int a_floorDivide = 1.{core::num::~/}(2){(core::num) → core::int};
static field core::bool a_greater = 1.{core::num::>}(2){(core::num) → core::bool};
static field core::bool a_less = 1.{core::num::<}(2){(core::num) → core::bool};
static field core::bool a_greaterEqual = 1.{core::num::>=}(2){(core::num) → core::bool};
static field core::bool a_lessEqual = 1.{core::num::<=}(2){(core::num) → core::bool};
static field core::int a_modulo = 1.{core::num::%}(2){(core::num) → core::int};
static method main() → dynamic {
  self::a_equal;
  self::a_notEqual;
  self::a_bitXor;
  self::a_bitAnd;
  self::a_bitOr;
  self::a_bitShiftRight;
  self::a_bitShiftLeft;
  self::a_add;
  self::a_subtract;
  self::a_multiply;
  self::a_divide;
  self::a_floorDivide;
  self::a_greater;
  self::a_less;
  self::a_greaterEqual;
  self::a_lessEqual;
  self::a_modulo;
}
