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

class A<X extends core::Object* = dynamic> extends core::Object {
  synthetic constructor •() → self::A<self::A::X*>*
    : super core::Object::•()
    ;
  method bar<generic-covariant-impl Y extends self::A::X* = self::A::X*>() → dynamic
    return null;
}
class B extends core::Object {
  synthetic constructor •() → self::B*
    : super core::Object::•()
    ;
  static method foo<Y extends core::Object* = core::Object*>() → self::A<self::B::foo::Y*>*
    return null;
}
static method baz() → dynamic {
  self::B::foo<core::Object*>().{self::A::bar}<core::String*>();
}
static method main() → dynamic {}
