[cfe] Add some of the compile-time errors for super parameters

Part of https://github.com/dart-lang/sdk/issues/47525

Change-Id: Ic0ad44656f6b5f6fa56f8c130e3e44b8729a9659
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/223160
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index ece4718..e7890ff 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -1049,51 +1049,74 @@
       ];
     }
 
-    if (initializers.isNotEmpty && initializers.last is SuperInitializer) {
-      List<VariableDeclaration>? positionalSuperParameters;
-      List<VariableDeclaration>? namedSuperParameters;
-
-      List<FormalParameterBuilder>? formals =
-          (member as ConstructorBuilder).formals;
-      if (formals != null) {
-        for (FormalParameterBuilder formal in formals) {
-          if (formal.isSuperInitializingFormal) {
-            if (formal.isNamed) {
-              (namedSuperParameters ??= <VariableDeclaration>[])
-                  .add(formal.variable!);
-            } else {
-              (positionalSuperParameters ??= <VariableDeclaration>[])
-                  .add(formal.variable!);
-            }
-          }
-        }
-
+    if (libraryBuilder.enableSuperParametersInLibrary) {
+      if (initializers.isNotEmpty && initializers.last is SuperInitializer) {
         SuperInitializer superInitializer =
             initializers.last as SuperInitializer;
         Arguments arguments = superInitializer.arguments;
-        if (positionalSuperParameters != null) {
-          if (arguments.positional.isNotEmpty) {
-            addProblem(fasta.messagePositionalSuperParametersAndArguments,
-                arguments.fileOffset, noLength,
-                context: <LocatedMessage>[
-                  fasta.messageSuperInitializerParameter.withLocation(
-                      uri, positionalSuperParameters.first.fileOffset, noLength)
-                ]);
-          } else {
-            for (VariableDeclaration positional in positionalSuperParameters) {
-              arguments.positional.add(
-                  new VariableGetImpl(positional, forNullGuardedAccess: false)
-                    ..fileOffset = positional.fileOffset);
+
+        List<VariableDeclaration>? positionalSuperParameters;
+        List<VariableDeclaration>? namedSuperParameters;
+
+        List<FormalParameterBuilder>? formals =
+            (member as ConstructorBuilder).formals;
+        if (formals != null) {
+          for (FormalParameterBuilder formal in formals) {
+            if (formal.isSuperInitializingFormal) {
+              if (formal.isNamed) {
+                (namedSuperParameters ??= <VariableDeclaration>[])
+                    .add(formal.variable!);
+              } else {
+                (positionalSuperParameters ??= <VariableDeclaration>[])
+                    .add(formal.variable!);
+              }
+            }
+          }
+
+          if (positionalSuperParameters != null) {
+            if (arguments.positional.isNotEmpty) {
+              addProblem(fasta.messagePositionalSuperParametersAndArguments,
+                  arguments.fileOffset, noLength,
+                  context: <LocatedMessage>[
+                    fasta.messageSuperInitializerParameter.withLocation(uri,
+                        positionalSuperParameters.first.fileOffset, noLength)
+                  ]);
+            } else {
+              for (VariableDeclaration positional
+                  in positionalSuperParameters) {
+                arguments.positional.add(
+                    new VariableGetImpl(positional, forNullGuardedAccess: false)
+                      ..fileOffset = positional.fileOffset);
+              }
+            }
+          }
+          if (namedSuperParameters != null) {
+            // TODO(cstefantsova): Report name conflicts.
+            for (VariableDeclaration named in namedSuperParameters) {
+              arguments.named.add(new NamedExpression(
+                  named.name!,
+                  new VariableGetImpl(named, forNullGuardedAccess: false)
+                    ..fileOffset = named.fileOffset)
+                ..fileOffset = named.fileOffset);
             }
           }
         }
-        if (namedSuperParameters != null) {
-          // TODO(cstefantsova): Report name conflicts.
-          for (VariableDeclaration named in namedSuperParameters) {
-            arguments.named.add(new NamedExpression(named.name!,
-                new VariableGetImpl(named, forNullGuardedAccess: false))
-              ..fileOffset = named.fileOffset);
-          }
+
+        LocatedMessage? message = checkArgumentsForFunction(
+            superInitializer.target.function,
+            arguments,
+            arguments.fileOffset, <TypeParameter>[]);
+        if (message != null) {
+          initializers[initializers.length - 1] = buildInvalidInitializer(
+              buildUnresolvedError(
+                  forest.createNullLiteral(superInitializer.fileOffset),
+                  constructorNameForDiagnostics(
+                      superInitializer.target.name.text),
+                  arguments,
+                  superInitializer.fileOffset,
+                  isSuper: true,
+                  message: message,
+                  kind: UnresolvedKind.Constructor));
         }
       }
     }
diff --git a/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart
new file mode 100644
index 0000000..bd5cc28
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart
@@ -0,0 +1,33 @@
+// Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+class A1 {
+  final int foo;
+  A1({required this.foo});
+}
+
+class B1 extends A1 {
+  B1({required super.foo}) : super(); // Ok.
+}
+
+class C1 extends A1 {
+  C1({required super.foo}) : super(foo: foo); // Error.
+}
+
+class A2 {
+  final int foo;
+  final String bar;
+  A2({required this.foo, required this.bar});
+}
+
+class B2 extends A2 {
+  B2() : super(foo: 42, bar: "bar", baz: false); // Error.
+}
+
+class C2 extends A2 {
+  C2({required super.foo}) : super(); // Error.
+  C2.other({required super.foo}) : super(bar: 'bar'); // Ok.
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.strong.expect b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.strong.expect
new file mode 100644
index 0000000..01051cd
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.strong.expect
@@ -0,0 +1,68 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:15:22: Error: Duplicated named argument 'foo'.
+//   C1({required super.foo}) : super(foo: foo); // Error.
+//                      ^^^
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:25:37: Error: No named parameter with the name 'baz'.
+//   B2() : super(foo: 42, bar: "bar", baz: false); // Error.
+//                                     ^^^
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:29:35: Error: Required named parameter 'bar' must be provided.
+//   C2({required super.foo}) : super(); // Error.
+//                                   ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A1 extends core::Object {
+  final field core::int foo;
+  constructor •({required core::int foo = #C1}) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
+    ;
+}
+class B1 extends self::A1 {
+  constructor •({required dynamic foo = #C1}) → self::B1
+    : super self::A1::•(foo: foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+    ;
+}
+class C1 extends self::A1 {
+  constructor •({required dynamic foo = #C1}) → self::C1
+    : super self::A1::•(foo: invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:15:22: Error: Duplicated named argument 'foo'.
+  C1({required super.foo}) : super(foo: foo); // Error.
+                     ^^^" in block {
+      foo;
+    } =>foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+    ;
+}
+class A2 extends core::Object {
+  final field core::int foo;
+  final field core::String bar;
+  constructor •({required core::int foo = #C1, required core::String bar = #C1}) → self::A2
+    : self::A2::foo = foo, self::A2::bar = bar, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •() → self::B2
+    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:25:37: Error: No named parameter with the name 'baz'.
+  B2() : super(foo: 42, bar: \"bar\", baz: false); // Error.
+                                    ^^^"
+    ;
+}
+class C2 extends self::A2 {
+  constructor •({required dynamic foo = #C1}) → self::C2
+    : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:29:35: Error: Required named parameter 'bar' must be provided.
+  C2({required super.foo}) : super(); // Error.
+                                  ^"
+    ;
+  constructor other({required dynamic foo = #C1}) → self::C2
+    : super self::A2::•(bar: "bar", foo: foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+    ;
+}
+static method main() → dynamic {}
+
+constants  {
+  #C1 = null
+}
diff --git a/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.strong.transformed.expect b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.strong.transformed.expect
new file mode 100644
index 0000000..74cac10
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.strong.transformed.expect
@@ -0,0 +1,68 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:15:22: Error: Duplicated named argument 'foo'.
+//   C1({required super.foo}) : super(foo: foo); // Error.
+//                      ^^^
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:25:37: Error: No named parameter with the name 'baz'.
+//   B2() : super(foo: 42, bar: "bar", baz: false); // Error.
+//                                     ^^^
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:29:35: Error: Required named parameter 'bar' must be provided.
+//   C2({required super.foo}) : super(); // Error.
+//                                   ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A1 extends core::Object {
+  final field core::int foo;
+  constructor •({required core::int foo = #C1}) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
+    ;
+}
+class B1 extends self::A1 {
+  constructor •({required dynamic foo = #C1}) → self::B1
+    : super self::A1::•(foo: foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+    ;
+}
+class C1 extends self::A1 {
+  constructor •({required dynamic foo = #C1}) → self::C1
+    : super self::A1::•(foo: invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:15:22: Error: Duplicated named argument 'foo'.
+  C1({required super.foo}) : super(foo: foo); // Error.
+                     ^^^" in block {
+      foo;
+    } =>foo)
+    ;
+}
+class A2 extends core::Object {
+  final field core::int foo;
+  final field core::String bar;
+  constructor •({required core::int foo = #C1, required core::String bar = #C1}) → self::A2
+    : self::A2::foo = foo, self::A2::bar = bar, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •() → self::B2
+    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:25:37: Error: No named parameter with the name 'baz'.
+  B2() : super(foo: 42, bar: \"bar\", baz: false); // Error.
+                                    ^^^"
+    ;
+}
+class C2 extends self::A2 {
+  constructor •({required dynamic foo = #C1}) → self::C2
+    : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:29:35: Error: Required named parameter 'bar' must be provided.
+  C2({required super.foo}) : super(); // Error.
+                                  ^"
+    ;
+  constructor other({required dynamic foo = #C1}) → self::C2
+    : super self::A2::•(bar: "bar", foo: foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+    ;
+}
+static method main() → dynamic {}
+
+constants  {
+  #C1 = null
+}
diff --git a/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.textual_outline.expect
new file mode 100644
index 0000000..3c4243b
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.textual_outline.expect
@@ -0,0 +1,23 @@
+class A1 {
+  final int foo;
+  A1({required this.foo});
+}
+class B1 extends A1 {
+  B1({required super.foo}) : super();
+}
+class C1 extends A1 {
+  C1({required super.foo}) : super(foo: foo);
+}
+class A2 {
+  final int foo;
+  final String bar;
+  A2({required this.foo, required this.bar});
+}
+class B2 extends A2 {
+  B2() : super(foo: 42, bar: "bar", baz: false);
+}
+class C2 extends A2 {
+  C2({required super.foo}) : super();
+  C2.other({required super.foo}) : super(bar: 'bar');
+}
+main() {}
diff --git a/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.weak.expect b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.weak.expect
new file mode 100644
index 0000000..01051cd
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.weak.expect
@@ -0,0 +1,68 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:15:22: Error: Duplicated named argument 'foo'.
+//   C1({required super.foo}) : super(foo: foo); // Error.
+//                      ^^^
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:25:37: Error: No named parameter with the name 'baz'.
+//   B2() : super(foo: 42, bar: "bar", baz: false); // Error.
+//                                     ^^^
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:29:35: Error: Required named parameter 'bar' must be provided.
+//   C2({required super.foo}) : super(); // Error.
+//                                   ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A1 extends core::Object {
+  final field core::int foo;
+  constructor •({required core::int foo = #C1}) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
+    ;
+}
+class B1 extends self::A1 {
+  constructor •({required dynamic foo = #C1}) → self::B1
+    : super self::A1::•(foo: foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+    ;
+}
+class C1 extends self::A1 {
+  constructor •({required dynamic foo = #C1}) → self::C1
+    : super self::A1::•(foo: invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:15:22: Error: Duplicated named argument 'foo'.
+  C1({required super.foo}) : super(foo: foo); // Error.
+                     ^^^" in block {
+      foo;
+    } =>foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+    ;
+}
+class A2 extends core::Object {
+  final field core::int foo;
+  final field core::String bar;
+  constructor •({required core::int foo = #C1, required core::String bar = #C1}) → self::A2
+    : self::A2::foo = foo, self::A2::bar = bar, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •() → self::B2
+    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:25:37: Error: No named parameter with the name 'baz'.
+  B2() : super(foo: 42, bar: \"bar\", baz: false); // Error.
+                                    ^^^"
+    ;
+}
+class C2 extends self::A2 {
+  constructor •({required dynamic foo = #C1}) → self::C2
+    : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:29:35: Error: Required named parameter 'bar' must be provided.
+  C2({required super.foo}) : super(); // Error.
+                                  ^"
+    ;
+  constructor other({required dynamic foo = #C1}) → self::C2
+    : super self::A2::•(bar: "bar", foo: foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+    ;
+}
+static method main() → dynamic {}
+
+constants  {
+  #C1 = null
+}
diff --git a/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.weak.modular.expect b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.weak.modular.expect
new file mode 100644
index 0000000..01051cd
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.weak.modular.expect
@@ -0,0 +1,68 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:15:22: Error: Duplicated named argument 'foo'.
+//   C1({required super.foo}) : super(foo: foo); // Error.
+//                      ^^^
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:25:37: Error: No named parameter with the name 'baz'.
+//   B2() : super(foo: 42, bar: "bar", baz: false); // Error.
+//                                     ^^^
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:29:35: Error: Required named parameter 'bar' must be provided.
+//   C2({required super.foo}) : super(); // Error.
+//                                   ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A1 extends core::Object {
+  final field core::int foo;
+  constructor •({required core::int foo = #C1}) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
+    ;
+}
+class B1 extends self::A1 {
+  constructor •({required dynamic foo = #C1}) → self::B1
+    : super self::A1::•(foo: foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+    ;
+}
+class C1 extends self::A1 {
+  constructor •({required dynamic foo = #C1}) → self::C1
+    : super self::A1::•(foo: invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:15:22: Error: Duplicated named argument 'foo'.
+  C1({required super.foo}) : super(foo: foo); // Error.
+                     ^^^" in block {
+      foo;
+    } =>foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+    ;
+}
+class A2 extends core::Object {
+  final field core::int foo;
+  final field core::String bar;
+  constructor •({required core::int foo = #C1, required core::String bar = #C1}) → self::A2
+    : self::A2::foo = foo, self::A2::bar = bar, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •() → self::B2
+    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:25:37: Error: No named parameter with the name 'baz'.
+  B2() : super(foo: 42, bar: \"bar\", baz: false); // Error.
+                                    ^^^"
+    ;
+}
+class C2 extends self::A2 {
+  constructor •({required dynamic foo = #C1}) → self::C2
+    : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:29:35: Error: Required named parameter 'bar' must be provided.
+  C2({required super.foo}) : super(); // Error.
+                                  ^"
+    ;
+  constructor other({required dynamic foo = #C1}) → self::C2
+    : super self::A2::•(bar: "bar", foo: foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+    ;
+}
+static method main() → dynamic {}
+
+constants  {
+  #C1 = null
+}
diff --git a/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.weak.outline.expect b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.weak.outline.expect
new file mode 100644
index 0000000..f3d5bdd
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.weak.outline.expect
@@ -0,0 +1,35 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A1 extends core::Object {
+  final field core::int foo;
+  constructor •({required core::int foo}) → self::A1
+    ;
+}
+class B1 extends self::A1 {
+  constructor •({required dynamic foo}) → self::B1
+    ;
+}
+class C1 extends self::A1 {
+  constructor •({required dynamic foo}) → self::C1
+    ;
+}
+class A2 extends core::Object {
+  final field core::int foo;
+  final field core::String bar;
+  constructor •({required core::int foo, required core::String bar}) → self::A2
+    ;
+}
+class B2 extends self::A2 {
+  constructor •() → self::B2
+    ;
+}
+class C2 extends self::A2 {
+  constructor •({required dynamic foo}) → self::C2
+    ;
+  constructor other({required dynamic foo}) → self::C2
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.weak.transformed.expect b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.weak.transformed.expect
new file mode 100644
index 0000000..74cac10
--- /dev/null
+++ b/pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart.weak.transformed.expect
@@ -0,0 +1,68 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:15:22: Error: Duplicated named argument 'foo'.
+//   C1({required super.foo}) : super(foo: foo); // Error.
+//                      ^^^
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:25:37: Error: No named parameter with the name 'baz'.
+//   B2() : super(foo: 42, bar: "bar", baz: false); // Error.
+//                                     ^^^
+//
+// pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:29:35: Error: Required named parameter 'bar' must be provided.
+//   C2({required super.foo}) : super(); // Error.
+//                                   ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A1 extends core::Object {
+  final field core::int foo;
+  constructor •({required core::int foo = #C1}) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
+    ;
+}
+class B1 extends self::A1 {
+  constructor •({required dynamic foo = #C1}) → self::B1
+    : super self::A1::•(foo: foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+    ;
+}
+class C1 extends self::A1 {
+  constructor •({required dynamic foo = #C1}) → self::C1
+    : super self::A1::•(foo: invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:15:22: Error: Duplicated named argument 'foo'.
+  C1({required super.foo}) : super(foo: foo); // Error.
+                     ^^^" in block {
+      foo;
+    } =>foo)
+    ;
+}
+class A2 extends core::Object {
+  final field core::int foo;
+  final field core::String bar;
+  constructor •({required core::int foo = #C1, required core::String bar = #C1}) → self::A2
+    : self::A2::foo = foo, self::A2::bar = bar, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •() → self::B2
+    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:25:37: Error: No named parameter with the name 'baz'.
+  B2() : super(foo: 42, bar: \"bar\", baz: false); // Error.
+                                    ^^^"
+    ;
+}
+class C2 extends self::A2 {
+  constructor •({required dynamic foo = #C1}) → self::C2
+    : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_named_super_parameters.dart:29:35: Error: Required named parameter 'bar' must be provided.
+  C2({required super.foo}) : super(); // Error.
+                                  ^"
+    ;
+  constructor other({required dynamic foo = #C1}) → self::C2
+    : super self::A2::•(bar: "bar", foo: foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+    ;
+}
+static method main() → dynamic {}
+
+constants  {
+  #C1 = null
+}
diff --git a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart
index f8bb940..d34d4a6 100644
--- a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart
+++ b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart
@@ -2,17 +2,31 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-class A {
+class A1 {
   final int foo;
-  A(this.foo);
+  A1(this.foo);
 }
 
-class B extends A {
-  B(super.foo) : super();
+class B1 extends A1 {
+  B1(super.foo) : super(); // Ok.
 }
 
-class C extends A {
-  C(super.foo) : super(42); // Error.
+class C1 extends A1 {
+  C1(super.foo) : super(42); // Error.
+}
+
+class A2 {
+  final int foo;
+  final String bar;
+  A2(this.foo, this.bar);
+}
+
+class B2 extends A2 {
+  B2() : super(0, 1, 2); // Error.
+}
+
+class C2 extends A2 {
+  C2(super.foo) : super(); // Error.
 }
 
 main() {}
diff --git a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.strong.expect b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.strong.expect
index 630145e..228f432 100644
--- a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.strong.expect
+++ b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.strong.expect
@@ -2,30 +2,61 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:23: Error: Positional super-initializer parameters cannot be used when the super initializer has positional arguments.
-//   C(super.foo) : super(42); // Error.
-//                       ^
-// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:11: Context: This is the super-initializer parameter.
-//   C(super.foo) : super(42); // Error.
-//           ^
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:24: Error: Positional super-initializer parameters cannot be used when the super initializer has positional arguments.
+//   C1(super.foo) : super(42); // Error.
+//                        ^
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:12: Context: This is the super-initializer parameter.
+//   C1(super.foo) : super(42); // Error.
+//            ^
+//
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:25:15: Error: Too many positional arguments: 2 allowed, but 3 found.
+// Try removing the extra positional arguments.
+//   B2() : super(0, 1, 2); // Error.
+//               ^
+//
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:29:24: Error: Too few positional arguments: 2 required, 1 given.
+//   C2(super.foo) : super(); // Error.
+//                        ^
 //
 import self as self;
 import "dart:core" as core;
 
-class A extends core::Object {
+class A1 extends core::Object {
   final field core::int foo;
-  constructor •(core::int foo) → self::A
-    : self::A::foo = foo, super core::Object::•()
+  constructor •(core::int foo) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
     ;
 }
-class B extends self::A {
-  constructor •(dynamic foo) → self::B
-    : super self::A::•(foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+class B1 extends self::A1 {
+  constructor •(dynamic foo) → self::B1
+    : super self::A1::•(foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
     ;
 }
-class C extends self::A {
-  constructor •(dynamic foo) → self::C
-    : super self::A::•(42)
+class C1 extends self::A1 {
+  constructor •(dynamic foo) → self::C1
+    : super self::A1::•(42)
+    ;
+}
+class A2 extends core::Object {
+  final field core::int foo;
+  final field core::String bar;
+  constructor •(core::int foo, core::String bar) → self::A2
+    : self::A2::foo = foo, self::A2::bar = bar, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •() → self::B2
+    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:25:15: Error: Too many positional arguments: 2 allowed, but 3 found.
+Try removing the extra positional arguments.
+  B2() : super(0, 1, 2); // Error.
+              ^"
+    ;
+}
+class C2 extends self::A2 {
+  constructor •(dynamic foo) → self::C2
+    : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:29:24: Error: Too few positional arguments: 2 required, 1 given.
+  C2(super.foo) : super(); // Error.
+                       ^"
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.strong.transformed.expect b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.strong.transformed.expect
index 630145e..228f432 100644
--- a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.strong.transformed.expect
@@ -2,30 +2,61 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:23: Error: Positional super-initializer parameters cannot be used when the super initializer has positional arguments.
-//   C(super.foo) : super(42); // Error.
-//                       ^
-// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:11: Context: This is the super-initializer parameter.
-//   C(super.foo) : super(42); // Error.
-//           ^
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:24: Error: Positional super-initializer parameters cannot be used when the super initializer has positional arguments.
+//   C1(super.foo) : super(42); // Error.
+//                        ^
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:12: Context: This is the super-initializer parameter.
+//   C1(super.foo) : super(42); // Error.
+//            ^
+//
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:25:15: Error: Too many positional arguments: 2 allowed, but 3 found.
+// Try removing the extra positional arguments.
+//   B2() : super(0, 1, 2); // Error.
+//               ^
+//
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:29:24: Error: Too few positional arguments: 2 required, 1 given.
+//   C2(super.foo) : super(); // Error.
+//                        ^
 //
 import self as self;
 import "dart:core" as core;
 
-class A extends core::Object {
+class A1 extends core::Object {
   final field core::int foo;
-  constructor •(core::int foo) → self::A
-    : self::A::foo = foo, super core::Object::•()
+  constructor •(core::int foo) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
     ;
 }
-class B extends self::A {
-  constructor •(dynamic foo) → self::B
-    : super self::A::•(foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+class B1 extends self::A1 {
+  constructor •(dynamic foo) → self::B1
+    : super self::A1::•(foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
     ;
 }
-class C extends self::A {
-  constructor •(dynamic foo) → self::C
-    : super self::A::•(42)
+class C1 extends self::A1 {
+  constructor •(dynamic foo) → self::C1
+    : super self::A1::•(42)
+    ;
+}
+class A2 extends core::Object {
+  final field core::int foo;
+  final field core::String bar;
+  constructor •(core::int foo, core::String bar) → self::A2
+    : self::A2::foo = foo, self::A2::bar = bar, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •() → self::B2
+    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:25:15: Error: Too many positional arguments: 2 allowed, but 3 found.
+Try removing the extra positional arguments.
+  B2() : super(0, 1, 2); // Error.
+              ^"
+    ;
+}
+class C2 extends self::A2 {
+  constructor •(dynamic foo) → self::C2
+    : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:29:24: Error: Too few positional arguments: 2 required, 1 given.
+  C2(super.foo) : super(); // Error.
+                       ^"
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.textual_outline.expect
index 942d614..a6fc5bc 100644
--- a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.textual_outline.expect
@@ -1,11 +1,22 @@
-class A {
+class A1 {
   final int foo;
-  A(this.foo);
+  A1(this.foo);
 }
-class B extends A {
-  B(super.foo) : super();
+class B1 extends A1 {
+  B1(super.foo) : super();
 }
-class C extends A {
-  C(super.foo) : super(42);
+class C1 extends A1 {
+  C1(super.foo) : super(42);
+}
+class A2 {
+  final int foo;
+  final String bar;
+  A2(this.foo, this.bar);
+}
+class B2 extends A2 {
+  B2() : super(0, 1, 2);
+}
+class C2 extends A2 {
+  C2(super.foo) : super();
 }
 main() {}
diff --git a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.expect b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.expect
index 630145e..228f432 100644
--- a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.expect
+++ b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.expect
@@ -2,30 +2,61 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:23: Error: Positional super-initializer parameters cannot be used when the super initializer has positional arguments.
-//   C(super.foo) : super(42); // Error.
-//                       ^
-// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:11: Context: This is the super-initializer parameter.
-//   C(super.foo) : super(42); // Error.
-//           ^
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:24: Error: Positional super-initializer parameters cannot be used when the super initializer has positional arguments.
+//   C1(super.foo) : super(42); // Error.
+//                        ^
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:12: Context: This is the super-initializer parameter.
+//   C1(super.foo) : super(42); // Error.
+//            ^
+//
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:25:15: Error: Too many positional arguments: 2 allowed, but 3 found.
+// Try removing the extra positional arguments.
+//   B2() : super(0, 1, 2); // Error.
+//               ^
+//
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:29:24: Error: Too few positional arguments: 2 required, 1 given.
+//   C2(super.foo) : super(); // Error.
+//                        ^
 //
 import self as self;
 import "dart:core" as core;
 
-class A extends core::Object {
+class A1 extends core::Object {
   final field core::int foo;
-  constructor •(core::int foo) → self::A
-    : self::A::foo = foo, super core::Object::•()
+  constructor •(core::int foo) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
     ;
 }
-class B extends self::A {
-  constructor •(dynamic foo) → self::B
-    : super self::A::•(foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+class B1 extends self::A1 {
+  constructor •(dynamic foo) → self::B1
+    : super self::A1::•(foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
     ;
 }
-class C extends self::A {
-  constructor •(dynamic foo) → self::C
-    : super self::A::•(42)
+class C1 extends self::A1 {
+  constructor •(dynamic foo) → self::C1
+    : super self::A1::•(42)
+    ;
+}
+class A2 extends core::Object {
+  final field core::int foo;
+  final field core::String bar;
+  constructor •(core::int foo, core::String bar) → self::A2
+    : self::A2::foo = foo, self::A2::bar = bar, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •() → self::B2
+    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:25:15: Error: Too many positional arguments: 2 allowed, but 3 found.
+Try removing the extra positional arguments.
+  B2() : super(0, 1, 2); // Error.
+              ^"
+    ;
+}
+class C2 extends self::A2 {
+  constructor •(dynamic foo) → self::C2
+    : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:29:24: Error: Too few positional arguments: 2 required, 1 given.
+  C2(super.foo) : super(); // Error.
+                       ^"
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.modular.expect b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.modular.expect
index 630145e..228f432 100644
--- a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.modular.expect
@@ -2,30 +2,61 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:23: Error: Positional super-initializer parameters cannot be used when the super initializer has positional arguments.
-//   C(super.foo) : super(42); // Error.
-//                       ^
-// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:11: Context: This is the super-initializer parameter.
-//   C(super.foo) : super(42); // Error.
-//           ^
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:24: Error: Positional super-initializer parameters cannot be used when the super initializer has positional arguments.
+//   C1(super.foo) : super(42); // Error.
+//                        ^
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:12: Context: This is the super-initializer parameter.
+//   C1(super.foo) : super(42); // Error.
+//            ^
+//
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:25:15: Error: Too many positional arguments: 2 allowed, but 3 found.
+// Try removing the extra positional arguments.
+//   B2() : super(0, 1, 2); // Error.
+//               ^
+//
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:29:24: Error: Too few positional arguments: 2 required, 1 given.
+//   C2(super.foo) : super(); // Error.
+//                        ^
 //
 import self as self;
 import "dart:core" as core;
 
-class A extends core::Object {
+class A1 extends core::Object {
   final field core::int foo;
-  constructor •(core::int foo) → self::A
-    : self::A::foo = foo, super core::Object::•()
+  constructor •(core::int foo) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
     ;
 }
-class B extends self::A {
-  constructor •(dynamic foo) → self::B
-    : super self::A::•(foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+class B1 extends self::A1 {
+  constructor •(dynamic foo) → self::B1
+    : super self::A1::•(foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
     ;
 }
-class C extends self::A {
-  constructor •(dynamic foo) → self::C
-    : super self::A::•(42)
+class C1 extends self::A1 {
+  constructor •(dynamic foo) → self::C1
+    : super self::A1::•(42)
+    ;
+}
+class A2 extends core::Object {
+  final field core::int foo;
+  final field core::String bar;
+  constructor •(core::int foo, core::String bar) → self::A2
+    : self::A2::foo = foo, self::A2::bar = bar, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •() → self::B2
+    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:25:15: Error: Too many positional arguments: 2 allowed, but 3 found.
+Try removing the extra positional arguments.
+  B2() : super(0, 1, 2); // Error.
+              ^"
+    ;
+}
+class C2 extends self::A2 {
+  constructor •(dynamic foo) → self::C2
+    : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:29:24: Error: Too few positional arguments: 2 required, 1 given.
+  C2(super.foo) : super(); // Error.
+                       ^"
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.outline.expect b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.outline.expect
index 767d2ef..184b3f4 100644
--- a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.outline.expect
@@ -2,17 +2,31 @@
 import self as self;
 import "dart:core" as core;
 
-class A extends core::Object {
+class A1 extends core::Object {
   final field core::int foo;
-  constructor •(core::int foo) → self::A
+  constructor •(core::int foo) → self::A1
     ;
 }
-class B extends self::A {
-  constructor •(dynamic foo) → self::B
+class B1 extends self::A1 {
+  constructor •(dynamic foo) → self::B1
     ;
 }
-class C extends self::A {
-  constructor •(dynamic foo) → self::C
+class C1 extends self::A1 {
+  constructor •(dynamic foo) → self::C1
+    ;
+}
+class A2 extends core::Object {
+  final field core::int foo;
+  final field core::String bar;
+  constructor •(core::int foo, core::String bar) → self::A2
+    ;
+}
+class B2 extends self::A2 {
+  constructor •() → self::B2
+    ;
+}
+class C2 extends self::A2 {
+  constructor •(dynamic foo) → self::C2
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.transformed.expect b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.transformed.expect
index 630145e..228f432 100644
--- a/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart.weak.transformed.expect
@@ -2,30 +2,61 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:23: Error: Positional super-initializer parameters cannot be used when the super initializer has positional arguments.
-//   C(super.foo) : super(42); // Error.
-//                       ^
-// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:11: Context: This is the super-initializer parameter.
-//   C(super.foo) : super(42); // Error.
-//           ^
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:24: Error: Positional super-initializer parameters cannot be used when the super initializer has positional arguments.
+//   C1(super.foo) : super(42); // Error.
+//                        ^
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:15:12: Context: This is the super-initializer parameter.
+//   C1(super.foo) : super(42); // Error.
+//            ^
+//
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:25:15: Error: Too many positional arguments: 2 allowed, but 3 found.
+// Try removing the extra positional arguments.
+//   B2() : super(0, 1, 2); // Error.
+//               ^
+//
+// pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:29:24: Error: Too few positional arguments: 2 required, 1 given.
+//   C2(super.foo) : super(); // Error.
+//                        ^
 //
 import self as self;
 import "dart:core" as core;
 
-class A extends core::Object {
+class A1 extends core::Object {
   final field core::int foo;
-  constructor •(core::int foo) → self::A
-    : self::A::foo = foo, super core::Object::•()
+  constructor •(core::int foo) → self::A1
+    : self::A1::foo = foo, super core::Object::•()
     ;
 }
-class B extends self::A {
-  constructor •(dynamic foo) → self::B
-    : super self::A::•(foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
+class B1 extends self::A1 {
+  constructor •(dynamic foo) → self::B1
+    : super self::A1::•(foo as{TypeError,ForDynamic,ForNonNullableByDefault} core::int)
     ;
 }
-class C extends self::A {
-  constructor •(dynamic foo) → self::C
-    : super self::A::•(42)
+class C1 extends self::A1 {
+  constructor •(dynamic foo) → self::C1
+    : super self::A1::•(42)
+    ;
+}
+class A2 extends core::Object {
+  final field core::int foo;
+  final field core::String bar;
+  constructor •(core::int foo, core::String bar) → self::A2
+    : self::A2::foo = foo, self::A2::bar = bar, super core::Object::•()
+    ;
+}
+class B2 extends self::A2 {
+  constructor •() → self::B2
+    : final dynamic #t1 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:25:15: Error: Too many positional arguments: 2 allowed, but 3 found.
+Try removing the extra positional arguments.
+  B2() : super(0, 1, 2); // Error.
+              ^"
+    ;
+}
+class C2 extends self::A2 {
+  constructor •(dynamic foo) → self::C2
+    : final dynamic #t2 = invalid-expression "pkg/front_end/testcases/super_parameters/simple_positional_super_parameters.dart:29:24: Error: Too few positional arguments: 2 required, 1 given.
+  C2(super.foo) : super(); // Error.
+                       ^"
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status
index 9eb437c..5df5fee 100644
--- a/pkg/front_end/testcases/textual_outline.status
+++ b/pkg/front_end/testcases/textual_outline.status
@@ -200,6 +200,7 @@
 regress/issue_41265.crash: Crash
 regress/issue_41265.crash: FormatterCrash
 super_parameters/simple: FormatterCrash
+super_parameters/simple_named_super_parameters: FormatterCrash
 super_parameters/simple_positional_super_parameters: FormatterCrash
 super_parameters/typed_super_parameter: FormatterCrash
 triple_shift/invalid_operator: FormatterCrash