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

class A extends core::Object {
  synthetic constructor •() → self::A
    : super core::Object::•()
    ;
  operator +(dynamic other) → core::int
    return 1;
  operator -(dynamic other) → core::double
    return 2.0;
}
static field core::int v_add = new self::A::•().{self::A::+}("foo"){(dynamic) → core::int};
static field core::double v_minus = new self::A::•().{self::A::-}("bar"){(dynamic) → core::double};
static method main() → dynamic {
  self::v_add;
  self::v_minus;
}
