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

class C extends core::Object {
  field dynamic y = null;
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  get x() → dynamic
    return null;
  method test() → void {
    dynamic v1 = this.{self::C::x};
    dynamic v2 = this.{self::C::x};
    dynamic v3 = this.{self::C::y};
    dynamic v4 = this.{self::C::y};
  }
}
static method test(self::C c, dynamic d) → void {
  dynamic v1 = c.x;
  dynamic v2 = c.y;
  dynamic v3 = d.x;
}
static method main() → dynamic {}
