// Errors:
//
// pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart:11:12: Error: Generic type 'Hest' can't be used without type arguments in a type variable bound.
// Try providing type arguments to 'Hest' here.
// class Fisk<TypeY extends Hest> {}
//            ^^^^^

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

class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
class Naebdyr<TypeZ extends self::Fisk<dynamic> = self::Fisk<dynamic>> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
static method main() → dynamic {}
