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

typedef F<T extends core::Object> = (T) → void;
class C<T extends core::Object> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  method f<U extends (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 {}
