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

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