// Unhandled errors:
//
// pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart:11:13: Error: Can't use a super-bounded type for instance creation. Got '#lib1::B<dart.core::Comparable<dynamic>>'.
// Specify a regular-bounded type instead of the super-bounded type. Note that the latter may be due to type inference.
// var y = new B();
//             ^

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

class B<T extends core::Comparable<self::B::T> = core::Comparable<dynamic>> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
static field self::B<core::Comparable<dynamic>> y = new self::B::•<core::Comparable<dynamic>>();
static method main() → dynamic {}
