// Unhandled errors:
//
// pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart:12: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 •() → self::Hest<self::Hest::TypeX>
    : super core::Object::•()
    ;
}
class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
  synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
    : super core::Object::•()
    ;
}
static method main() → dynamic {}
