library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/bounds_check_in_typedef.dart:7:32: Error: Type argument 'Y' doesn't conform to the bound 'String' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// typedef F = Function<Z extends A<Y>>() Function<Y extends num>();
//                                ^
// pkg/front_end/testcases/general/bounds_check_in_typedef.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends String> {}
//         ^
//
// pkg/front_end/testcases/general/bounds_check_in_typedef.dart:8:61: Error: Type argument 'Y' doesn't conform to the bound 'String' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// typedef G = void Function<Y extends num>(Function<Z extends A<Y>>());
//                                                             ^
// pkg/front_end/testcases/general/bounds_check_in_typedef.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends String> {}
//         ^
//
import self as self;
import "dart:core" as core;

typedef F = <Y extends core::num = dynamic>() → <Z extends self::A<Y> = dynamic>() → dynamic;
typedef G = <Y extends core::num = dynamic>(<Z extends self::A<Y> = dynamic>() → dynamic) → void;
class A<X extends core::String> extends core::Object {
  synthetic constructor •() → self::A<self::A::X>
    : super core::Object::•()
    ;
}
static method main() → dynamic {}
