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

class Super<T extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::Super<self::Super::T%>
    ;
  method method(generic-covariant-impl self::Super::T% t) → void
    ;
}
class Mixin extends core::Object {
  synthetic constructor •() → self::Mixin
    ;
  method method(core::int t) → void
    ;
}
class Class = self::Super<core::int> with self::Mixin {
  synthetic constructor •() → self::Class
    : super self::Super::•()
    ;
  forwarding-stub method method(generic-covariant-impl core::int t) → void
    return super.{self::Mixin::method}(t);
}
class Subclass extends self::Class {
  synthetic constructor •() → self::Subclass
    ;
  method test() → void
    ;
}
static method main() → dynamic
  ;
