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

typedef F<V extends core::Object* = dynamic> = () →* V*;
class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
  synthetic constructor •() → self::C<self::C::T*>*
    : super self::D::•()
    ;
  method f<U extends core::Object* = dynamic>(self::C::f::U* x) → () →* self::C::f::U* {}
}
class D<T extends core::Object* = dynamic> extends core::Object {
  synthetic constructor •() → self::D<self::D::T*>*
    : super core::Object::•()
    ;
  method f<U extends core::Object* = dynamic>(self::D::f::U* u) → () →* self::D::f::U*
    return null;
}
static method main() → dynamic {}
