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

class B extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  operator []=(core::int x, core::String y) → void {}
}
class C extends self::B {
  synthetic constructor •() → void
    : super self::B::•()
    ;
  operator []=(core::Object x, core::Object y) → void {}
  method h() → void {
    super.{self::B::[]=}(self::f<dynamic>(), self::f<dynamic>());
  }
}
static method f<T extends core::Object = dynamic>() → self::f::T
  return null;
static method main() → dynamic {}
