// Unhandled errors:
//
// pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart:11:13: Error: Inferred type argument 'Comparable<dynamic>' doesn't conform to the bound 'Comparable<T>' of the type variable 'T' on 'B'.
//  - 'Comparable' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// 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 •() → self::B<self::B::T>
    : super core::Object::•()
    ;
}
static field self::B<core::Comparable<dynamic>> y = new self::B::•<core::Comparable<dynamic>>();
static method main() → dynamic {}
