class A1 {
  A1({required this.foo});
  final int foo;
}

class A2 {
  A2({required this.foo, required this.bar});
  final String bar;
  final int foo;
}

class B1 extends A1 {
  B1({required super.foo}) : super();
}

class B2 extends A2 {
  B2() : super(foo: 42, bar: "bar", baz: false);
}

class C1 extends A1 {
  C1({required super.foo}) : super(foo: foo);
}

class C2 extends A2 {
  C2({required super.foo}) : super();
  C2.other({required super.foo}) : super(bar: 'bar');
}

main() {}
