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

class C extends core::Object {
  field dynamic f = () → dynamic => 0;
  constructor •() → void
    : super core::Object::•()
    ;
}
class D extends self::C {
  constructor •() → void
    : super self::C::•()
    ;
  method g() → void {
    dynamic y = super.{self::C::f}.call();
  }
}
static method main() → dynamic {}
