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

class A extends core::Object {
  field core::int x = 2;
  constructor •() → void
    : super core::Object::•()
    ;
}
static method main() → dynamic {
  self::A a = new self::A::•();
  self::A b = a;
  core::print(a.{self::A::x});
  core::print(a.{self::A::x}.{core::num::+}(2));
}
