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 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() {}

mixin B1 {}

mixin B2 {}

mixin B3 {}

mixin B4 {}

mixin B5 {}

mixin B7 {}

mixin B9 {}
