library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

class B<T extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::B<self::B::T%>
    : super core::Object::•()
    ;
  method f(covariant-by-class self::B::T% x, core::int y) → void {}
}
abstract class I extends core::Object {
  synthetic constructor •() → self::I
    : super core::Object::•()
    ;
  abstract method f(core::int x, core::Object y) → void;
}
abstract class C extends self::B<core::int> implements self::I {
  synthetic constructor •() → self::C
    : super self::B::•()
    ;
  abstract forwarding-stub method f(covariant-by-class core::int x, core::Object y) → void;
}
static method main() → void {}
