class An {
  An({num x = 3.14});
}

class Ap {
  Ap([num x = 3.14]);
}

class Bn extends An {
  Bn({int super.x});
  Bn.req({required int super.x});
}

class Bp extends Ap {
  Bp([int super.x]);
  Bp.req(int super.x);
}

class C1 extends S1 {
  C1([super.x]) : c = x + 1;
  int c;
}

class C2 extends S2 {
  C2({super.x}) : c = x + 1;
  int c;
}

class C3 extends S3 {
  C3([super.x = 42]) : c = x + 1;
  int c;
}

class C4 extends S4 {
  C4({super.x = 42}) : c = x + 1;
  int c;
}

class C5 extends S5 {
  C5([int super.x]);
}

class C6 extends S6 {
  C6([int? super.x]);
  int? b;
}

class C7 extends S7 {
  C7([super.x]) : c = x + 1;
  int c;
}

class C8 extends S8 {
  C8([super.x]) : c = x + 1;
  int c;
}

class C9 extends S9 {
  C9([super.x]) : c = x + 1;
  int c;
}

class CC7 extends C7 {
  CC7([super.x]) : cc = x * 1;
  int cc;
}

class CC8 extends C8 {
  CC8([super.x]) : cc = x * 1;
  int cc;
}

class CC9 extends C9 {
  CC9([super.x]) : cc = x * 1;
  int cc;
}

class D6 extends C6 {
  D6([int super.x]);
}

class S1 {
  S1([int x = 0]) : s = x - 1;
  int s;
}

class S2 {
  S2({int x = 0}) : s = x - 1;
  int s;
}

class S3 {
  S3([int x = 0]) : s = x - 1;
  int s;
}

class S4 {
  S4({int x = 0}) : s = x - 1;
  int s;
}

class S5 {
  S5([num x = 3.14]) : a = x - 1;
  num a;
}

class S6 {
  S6([num? x = 3.14]) : a = x;
  num? a;
}

class S7 {
  S7([int x = 0]) : s = x - 1;
  int s;
}

class S8 {
  S8([int x = 0]) : s = x - 1;
  int s;
}

class S9 {
  S9([int x = 0]) : s = x - 1;
  int s;
}

main() {}
