library test;
//
// Problems in library:
//
// pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart:13:7: Error: Found unsupported uses of 'T' in supertype 'A'.
// class B<T> implements A<F<T>> {
//       ^
//
// pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart:17:16: Error: Found unsupported uses of 'T' in supertype 'A'.
// abstract class I<T> implements A<F<T>> {
//                ^
//
// pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart:21:16: Error: Found unsupported uses of 'T' in supertype 'B'.
// abstract class C<T> extends B<F<T>> implements I<F<T>> {}
//                ^
//
// pkg/front_end/testcases/general/interface_covariantInterface_from_class.dart:21:16: Error: Found unsupported uses of 'T' in supertype 'I'.
// abstract class C<T> extends B<F<T>> implements I<F<T>> {}
//                ^
//
import self as self;
import "dart:core" as core;

typedef F<T extends core::Object* = dynamic> = (T*) →* void;
abstract class A<T extends core::Object* = dynamic> extends core::Object {
  synthetic constructor •() → self::A<self::A::T*>*
    : super core::Object::•()
    ;
  abstract method f(generic-covariant-impl self::A::T* x, core::int* y) → void;
}
class B<T extends core::Object* = dynamic> extends core::Object {
  synthetic constructor •() → self::B<self::B::T*>*
    : super core::Object::•()
    ;
  method f((self::B::T*) →* void x, core::int* y) → void {}
}
abstract class I<T extends core::Object* = dynamic> extends core::Object {
  synthetic constructor •() → self::I<self::I::T*>*
    : super core::Object::•()
    ;
  abstract method f((self::I::T*) →* void x, core::Object* y) → void;
}
abstract class C<T extends core::Object* = dynamic> extends core::Object {
  synthetic constructor •() → self::C<self::C::T*>*
    : super core::Object::•()
    ;
}
static method main() → void {}
