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 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 testFooExtraArgs() → dynamic
  return self::A::foo;
static method testNewExtraArgs() → dynamic
  return self::A::•;
static method main() → dynamic {}
