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

class C<T extends core::Object = dynamic> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  method f<U extends core::Object = dynamic>(self::C::f::U x) → (self::C::T) → void
    return (dynamic y) → dynamic {};
}
static method test(self::C<core::String> c) → void {
  (core::int) → (core::String) → void tearoff = c.f;
}
static method main() → dynamic {}
