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

class A extends core::Object {
  constructor foo() → self::A
    : super core::Object::•() {}
  constructor •() → self::A
    : super core::Object::•() {}
  static factory bar() → self::A
    return new self::A::•();
}
static method testFoo() → dynamic
  return self::A::foo;
static method testNew() → dynamic
  return self::A::•;
static method testBar() → 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 {}
