library test;
import self as self;
import "dart:core" as core;

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