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

typedef F<T extends core::Object = dynamic> = (T) → void;
class C<T extends core::Object = dynamic> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  method f<U extends (self::C::T) → void = (self::C::T) → void>(self::C::f::U x) → void {}
}
static method g(self::C<core::num> c) → void {
  c.{self::C::f}<(core::Object) → void>((core::Object o) → core::Null {});
}
static method test() → void {
  self::g(new self::C::•<core::int>());
}
static method main() → void {}
