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

class A1 extends core::Object {
  final field core::int foo;
  constructor •(core::int foo) → self::A1
    ;
  constructor named(core::int foo) → self::A1
    ;
  constructor named2(core::int foo) → self::A1
    ;
  constructor named3({required core::int foo = null}) → self::A1
    ;
}
class B1 extends self::A1 {
  constructor •(core::int foo) → self::B1
    ;
  constructor named(core::int foo) → self::B1
    ;
  constructor named2(core::int foo) → self::B1
    ;
  constructor named3({required core::int foo = null}) → self::B1
    ;
}
class A2 extends core::Object {
  final field core::int foo;
  final field core::String bar;
  constructor •({required core::int foo = null, required core::String bar = null}) → self::A2
    ;
}
class B2 extends self::A2 {
  constructor •({required core::String bar = null, required core::int foo = null}) → self::B2
    ;
}
static method main() → dynamic
  ;
