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

typedef F<contravariant T extends core::Object* = dynamic> = (T*) →* void;
class C<T extends core::Object* = dynamic> extends core::Object {
  synthetic constructor •() → self::C<self::C::T*>*
    : super core::Object::•()
    ;
  operator [](core::int* i) → (self::C::T*) →* void
    return null;
}
static method test(self::C<core::num*>* c) → (core::num*) →* void {
  return c.{self::C::[]}(0) as{TypeError} (core::num*) →* void;
}
static method main() → dynamic {}
