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

class A extends core::Object {
  constructor •() → self::A
    : super core::Object::•()
    ;
  operator ~() → core::int
    return 1;
  operator unary-() → core::double
    return 2.0;
}
static field self::A a = new self::A::•();
static field core::int v_complement = self::a.{self::A::~}(){() → core::int};
static field core::double v_negate = self::a.{self::A::unary-}(){() → core::double};
static method main() → dynamic {
  self::a;
  self::v_complement;
  self::v_negate;
}
