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

abstract class C<E extends core::Object> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
  method sort([(self::C::E, self::C::E) → core::int compare = null]) → void {
    self::C::sort2<self::C::E>(this, let final (self::C::E, self::C::E) → core::int #t1 = compare in #t1.==(null) ?{(self::C::E, self::C::E) → core::int} self::C::_compareAny : #t1);
  }
  static method _compareAny(dynamic a, dynamic b) → core::int {
    throw "unimplemented";
  }
  static method sort2<E extends core::Object>(self::C<self::C::sort2::E> a, (self::C::sort2::E, self::C::sort2::E) → core::int compare) → void {
    throw "unimplemented";
  }
}
static method main() → dynamic {}
