class A1 {
  A1({x, y});
}

class A2 {
  A2(x, {y});
}

class A3 {
  A3(x, {y});
}

class A4 {
  const A4({x, y});
}

class A5 {
  const A5(x, {y});
}

class A6 {
  const A6(x, {y});
}

class A7 {
  const A7({x, y});
}

class A8 {
  const A8(x, {y});
}

class A9 {
  const A9(x, {y});
}

class B1 extends A1 {
  B1.bar({super.x}) : super(y: new Test.bar());
  B1.foo({super.x}) : super(y: new Test.foo());
}

class B2 extends A2 {
  B2.bar(super.x) : super(y: new Test.bar());
  B2.foo(super.x) : super(y: new Test.foo());
}

class B3 extends A3 {
  B3.bar({super.y}) : super(new Test.bar());
  B3.foo({super.y}) : super(new Test.foo());
}

class B4 extends A4 {
  B4.bar({super.x}) : super(y: new Test.bar());
  B4.foo({super.x}) : super(y: new Test.foo());
}

class B5 extends A5 {
  B5.bar(super.x) : super(y: new Test.bar());
  B5.foo(super.x) : super(y: new Test.foo());
}

class B6 extends A6 {
  B6.bar({super.y}) : super(new Test.bar());
  B6.foo({super.y}) : super(new Test.foo());
}

class B7 extends A7 {
  const B7.bar({super.x}) : super(y: new Test.bar());
  const B7.foo({super.x}) : super(y: new Test.foo());
}

class B8 extends A8 {
  const B8.bar(super.x) : super(y: new Test.bar());
  const B8.foo(super.x) : super(y: new Test.foo());
}

class B9 extends A9 {
  const B9.bar({super.y}) : super(new Test.bar());
  const B9.foo({super.y}) : super(new Test.foo());
}

class Test {
  Test.foo() {}
  factory Test.bar() => new Test.foo();
}

main() {}
