library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

class A<X extends core::Object? = dynamic> extends core::Object {
  constructor foo() → self::A<self::A::X%>
    : super core::Object::•() {}
  constructor •() → self::A<self::A::X%>
    : super core::Object::•() {}
  static factory bar<X extends core::Object? = dynamic>() → self::A<self::A::bar::X%>
    return new self::A::•<self::A::bar::X%>();
}
static method testFoo() → dynamic
  return self::A::foo;
static method testFooArgs() → dynamic
  return self::A::foo;
static method testNew() → dynamic
  return self::A::•;
static method testNewArgs() → dynamic
  return self::A::•;
static method testBar() → dynamic
  return self::A::bar;
static method testBarArgs() → dynamic
  return self::A::bar;
static method testFooExtraArgs() → dynamic
  return self::A::foo;
static method testNewExtraArgs() → dynamic
  return self::A::•;
static method testBarExtraArgs() → dynamic
  return self::A::bar;
static method main() → dynamic {}
