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

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