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

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