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

import "dart:async";

class B<T extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::B<self::B::T%>
    : super core::Object::•()
    ;
  operator []=(covariant-by-class core::Map<core::int, self::B::T%> x, covariant-by-class core::List<self::B::T%> y) → void {}
}
class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
  synthetic constructor •() → self::C<self::C::U%>
    : super self::B::•()
    ;
  operator []=(covariant-by-class core::Object x, covariant-by-class core::Object y) → void {}
  method h() → void {
    super.{self::B::[]=}(self::f<core::Map<core::int, asy::Future<self::C::U%>>>(), self::f<core::List<asy::Future<self::C::U%>>>());
  }
}
static method f<T extends core::Object? = dynamic>() → self::f::T%
  return throw "";
static method main() → dynamic {}
