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

class Foo extends core::Object {
  field self::Bar* _field = new self::Bar::•();
  synthetic constructor •() → self::Foo*
    : super core::Object::•()
    ;
}
class Bar extends core::Object {
  synthetic constructor •() → self::Bar*
    : super core::Object::•()
    ;
}
static method useCallback(dynamic callback) → dynamic {
  dynamic _ = callback.call();
}
static method main() → dynamic {
  dynamic x;
  function inner() → self::Foo* {
    x = new self::Foo::•();
    return new self::Foo::•();
  }
  self::useCallback(inner);
  self::Bar* _ = inner.call().{self::Foo::_field};
}
