import 'synthesized_super_constructor_with_parameters_lib.dart';

class A1 {
  A1(this.a);
  final int a;
}

class A2 {
  A2({this.a = 0});
  final int a;
}

class A3 {
  A3([this.a = 0]);
  final int a;
}

class A4 extends AA4 {
  A4([super.foo]);
}

class A5 extends AA5 {
  A5([super.foo]);
}

class AA4 {
  AA4([this.foo = 42]);
  final int foo;
}

class AA5 {
  AA5([this.foo = 42]);
  final int foo;
}

class B1 {}

class B2 {}

class B3 {}

class B4 {}

class B5 {}

class B7 {}

class B9 {}

class C1 = A1 with B1;
class C2 = A2 with B2;
class C3 = A3 with B3;
class C4 = A4 with B4;
class C5a = A5 with B5;
class C5b = C5a with B5;
class C5c = C5b with B5;
class C7 = A7 with B7;
class C9 = A9 with B9;

class D1 extends C1 {
  D1(super.a);
}

class D2 extends C2 {
  D2({super.a});
}

class D3 extends C3 {
  D3([super.a]);
}

class D4 extends C4 {
  D4([super.foo]);
}

class D5 extends C5c {
  D5([super.foo]);
}

class D6 extends C6 {
  D6({super.a});
}

class D7 extends C7 {
  D7([super.a]);
}

class D8 extends C8 {
  D8({super.a});
}

class D9 extends C9 {
  D9([super.a]);
}

main() {}
