[model] Mark erroneously initialized optional parameters as such

This adds the flag isErroneouslyInitialized to the VariableDeclaration
AST node in Kernel. The flag is set to true whenever it is concluded
during compilation that the initializer contains errors is erroneous
for the parameter in any other way, for exaple, due to a type mismatch.

Change-Id: I1b3c9c662974fb9537ab4f89b58dd004979feebe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/431862
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
diff --git a/pkg/front_end/lib/src/builder/formal_parameter_builder.dart b/pkg/front_end/lib/src/builder/formal_parameter_builder.dart
index 31b8ac4..a7f21db 100644
--- a/pkg/front_end/lib/src/builder/formal_parameter_builder.dart
+++ b/pkg/front_end/lib/src/builder/formal_parameter_builder.dart
@@ -6,7 +6,13 @@
     show FormalParameterKind;
 import 'package:_fe_analyzer_shared/src/scanner/scanner.dart' show Token;
 import 'package:kernel/ast.dart'
-    show DartType, DynamicType, Expression, NullLiteral, VariableDeclaration;
+    show
+        DartType,
+        DynamicType,
+        Expression,
+        InvalidExpression,
+        NullLiteral,
+        VariableDeclaration;
 import 'package:kernel/class_hierarchy.dart';
 
 import '../base/constant_context.dart' show ConstantContext;
@@ -282,6 +288,9 @@
         initializer = bodyBuilder.typeInferrer.inferParameterInitializer(
             bodyBuilder, initializer, variable!.type, hasDeclaredInitializer);
         variable!.initializer = initializer..parent = variable;
+        if (initializer is InvalidExpression) {
+          variable!.isErroneouslyInitialized = true;
+        }
         initializerWasInferred = true;
         bodyBuilder.performBacklogComputations();
       } else if (kind.isOptional) {
diff --git a/pkg/front_end/lib/src/kernel/body_builder.dart b/pkg/front_end/lib/src/kernel/body_builder.dart
index 6c2ee7e..dd5c7dc 100644
--- a/pkg/front_end/lib/src/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/kernel/body_builder.dart
@@ -1242,6 +1242,9 @@
                 originParameter.type,
                 parameter.hasDeclaredInitializer);
             originParameter.initializer = initializer..parent = originParameter;
+            if (initializer is InvalidExpression) {
+              originParameter.isErroneouslyInitialized = true;
+            }
             parameter.initializerWasInferred = true;
           }
           VariableDeclaration? tearOffParameter =
diff --git a/pkg/front_end/lib/src/source/source_library_builder.dart b/pkg/front_end/lib/src/source/source_library_builder.dart
index b84f019..bf35bfa 100644
--- a/pkg/front_end/lib/src/source/source_library_builder.dart
+++ b/pkg/front_end/lib/src/source/source_library_builder.dart
@@ -1424,6 +1424,7 @@
               formal.fileOffset,
               formal.name.length,
               formal.fileUri);
+          formal.variable?.isErroneouslyInitialized = true;
         }
       }
     }
diff --git a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.expect b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.expect
index ce9d1aa..45c6677 100644
--- a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.expect
+++ b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.expect
@@ -40,13 +40,13 @@
 }
 static extension-type-member synthetic method E|constructor#_#new#tearOff(core::int x) → self::E% /* erasure=core::int, declared=! */
   return self::E|constructor#(x);
-static extension-type-member method E|constructor#testPositional([core::int x = #C1, core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */ {
+static extension-type-member method E|constructor#testPositional([erroneously-initialized core::int x = #C1, erroneously-initialized core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */ {
   lowered final self::E% /* erasure=core::int, declared=! */ #this = x;
   return #this;
 }
 static extension-type-member synthetic method E|constructor#_#testPositional#tearOff([core::int x = #C1, core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */
   return self::E|constructor#testPositional(x, y);
-static extension-type-member method E|constructor#testNamed({core::int x = #C1, core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */ {
+static extension-type-member method E|constructor#testNamed({erroneously-initialized core::int x = #C1, erroneously-initialized core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */ {
   lowered final self::E% /* erasure=core::int, declared=! */ #this = x;
   return #this;
 }
diff --git a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.modular.expect b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.modular.expect
index ce9d1aa..45c6677 100644
--- a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.modular.expect
@@ -40,13 +40,13 @@
 }
 static extension-type-member synthetic method E|constructor#_#new#tearOff(core::int x) → self::E% /* erasure=core::int, declared=! */
   return self::E|constructor#(x);
-static extension-type-member method E|constructor#testPositional([core::int x = #C1, core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */ {
+static extension-type-member method E|constructor#testPositional([erroneously-initialized core::int x = #C1, erroneously-initialized core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */ {
   lowered final self::E% /* erasure=core::int, declared=! */ #this = x;
   return #this;
 }
 static extension-type-member synthetic method E|constructor#_#testPositional#tearOff([core::int x = #C1, core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */
   return self::E|constructor#testPositional(x, y);
-static extension-type-member method E|constructor#testNamed({core::int x = #C1, core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */ {
+static extension-type-member method E|constructor#testNamed({erroneously-initialized core::int x = #C1, erroneously-initialized core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */ {
   lowered final self::E% /* erasure=core::int, declared=! */ #this = x;
   return #this;
 }
diff --git a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.outline.expect b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.outline.expect
index 1c18b66..8bbd651 100644
--- a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.outline.expect
@@ -38,11 +38,11 @@
   ;
 static extension-type-member synthetic method E|constructor#_#new#tearOff(core::int x) → self::E% /* erasure=core::int, declared=! */
   return self::E|constructor#(x);
-static extension-type-member method E|constructor#testPositional([core::int x = null, core::int y = null]) → self::E% /* erasure=core::int, declared=! */
+static extension-type-member method E|constructor#testPositional([erroneously-initialized core::int x = null, erroneously-initialized core::int y = null]) → self::E% /* erasure=core::int, declared=! */
   ;
 static extension-type-member synthetic method E|constructor#_#testPositional#tearOff([core::int x, core::int y]) → self::E% /* erasure=core::int, declared=! */
   return self::E|constructor#testPositional(x, y);
-static extension-type-member method E|constructor#testNamed({core::int x = null, core::String y = null}) → self::E% /* erasure=core::int, declared=! */
+static extension-type-member method E|constructor#testNamed({erroneously-initialized core::int x = null, erroneously-initialized core::String y = null}) → self::E% /* erasure=core::int, declared=! */
   ;
 static extension-type-member synthetic method E|constructor#_#testNamed#tearOff({core::int x, core::String y}) → self::E% /* erasure=core::int, declared=! */
   return self::E|constructor#testNamed(x: x, y: y);
diff --git a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.transformed.expect b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.transformed.expect
index ce9d1aa..45c6677 100644
--- a/pkg/front_end/testcases/extension_types/issue56402.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extension_types/issue56402.dart.strong.transformed.expect
@@ -40,13 +40,13 @@
 }
 static extension-type-member synthetic method E|constructor#_#new#tearOff(core::int x) → self::E% /* erasure=core::int, declared=! */
   return self::E|constructor#(x);
-static extension-type-member method E|constructor#testPositional([core::int x = #C1, core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */ {
+static extension-type-member method E|constructor#testPositional([erroneously-initialized core::int x = #C1, erroneously-initialized core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */ {
   lowered final self::E% /* erasure=core::int, declared=! */ #this = x;
   return #this;
 }
 static extension-type-member synthetic method E|constructor#_#testPositional#tearOff([core::int x = #C1, core::int y = #C1]) → self::E% /* erasure=core::int, declared=! */
   return self::E|constructor#testPositional(x, y);
-static extension-type-member method E|constructor#testNamed({core::int x = #C1, core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */ {
+static extension-type-member method E|constructor#testNamed({erroneously-initialized core::int x = #C1, erroneously-initialized core::String y = #C1}) → self::E% /* erasure=core::int, declared=! */ {
   lowered final self::E% /* erasure=core::int, declared=! */ #this = x;
   return #this;
 }
diff --git a/pkg/front_end/testcases/extension_types/nullability.dart.strong.expect b/pkg/front_end/testcases/extension_types/nullability.dart.strong.expect
index 5c0b5a1..19197d2 100644
--- a/pkg/front_end/testcases/extension_types/nullability.dart.strong.expect
+++ b/pkg/front_end/testcases/extension_types/nullability.dart.strong.expect
@@ -267,8 +267,8 @@
   e4NNNullable = null;
   e5NNNullable = null;
 }
-static method testOptionalPositional([self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableOP = #C1, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleOP = #C1, self::E2% /* erasure=core::Object?, declared=! */ e2OP = #C1, self::E3% /* erasure=core::String?, declared=! */ e3OP = #C1, self::E4% /* erasure=core::int, declared=! */ e4OP = #C1, self::E5% /* erasure=core::Object?, declared=! */ e5OP = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableOPNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleOPNullable = #C1, self::E2? /* erasure=core::Object? */ e2OPNullable = #C1, self::E3? /* erasure=core::String? */ e3OPNullable = #C1, self::E4? /* erasure=core::int? */ e4OPNullable = #C1, self::E5? /* erasure=core::Object? */ e5OPNullable = #C1]) → dynamic {}
-static method testNamedNotRequired({self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableNNR = #C1, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleNNR = #C1, self::E2% /* erasure=core::Object?, declared=! */ e2NNR = #C1, self::E3% /* erasure=core::String?, declared=! */ e3NNR = #C1, self::E4% /* erasure=core::int, declared=! */ e4NNR = #C1, self::E5% /* erasure=core::Object?, declared=! */ e5NNR = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableNNRNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleNNRNullable = #C1, self::E2? /* erasure=core::Object? */ e2NNRNullable = #C1, self::E3? /* erasure=core::String? */ e3NNRNullable = #C1, self::E4? /* erasure=core::int? */ e4NNRNullable = #C1, self::E5? /* erasure=core::Object? */ e5NNRNullable = #C1}) → dynamic {}
+static method testOptionalPositional([erroneously-initialized self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableOP = #C1, erroneously-initialized self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleOP = #C1, erroneously-initialized self::E2% /* erasure=core::Object?, declared=! */ e2OP = #C1, erroneously-initialized self::E3% /* erasure=core::String?, declared=! */ e3OP = #C1, erroneously-initialized self::E4% /* erasure=core::int, declared=! */ e4OP = #C1, erroneously-initialized self::E5% /* erasure=core::Object?, declared=! */ e5OP = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableOPNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleOPNullable = #C1, self::E2? /* erasure=core::Object? */ e2OPNullable = #C1, self::E3? /* erasure=core::String? */ e3OPNullable = #C1, self::E4? /* erasure=core::int? */ e4OPNullable = #C1, self::E5? /* erasure=core::Object? */ e5OPNullable = #C1]) → dynamic {}
+static method testNamedNotRequired({erroneously-initialized self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableNNR = #C1, erroneously-initialized self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleNNR = #C1, erroneously-initialized self::E2% /* erasure=core::Object?, declared=! */ e2NNR = #C1, erroneously-initialized self::E3% /* erasure=core::String?, declared=! */ e3NNR = #C1, erroneously-initialized self::E4% /* erasure=core::int, declared=! */ e4NNR = #C1, erroneously-initialized self::E5% /* erasure=core::Object?, declared=! */ e5NNR = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableNNRNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleNNRNullable = #C1, self::E2? /* erasure=core::Object? */ e2NNRNullable = #C1, self::E3? /* erasure=core::String? */ e3NNRNullable = #C1, self::E4? /* erasure=core::int? */ e4NNRNullable = #C1, self::E5? /* erasure=core::Object? */ e5NNRNullable = #C1}) → dynamic {}
 
 constants  {
   #C1 = null
diff --git a/pkg/front_end/testcases/extension_types/nullability.dart.strong.modular.expect b/pkg/front_end/testcases/extension_types/nullability.dart.strong.modular.expect
index 5c0b5a1..19197d2 100644
--- a/pkg/front_end/testcases/extension_types/nullability.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/extension_types/nullability.dart.strong.modular.expect
@@ -267,8 +267,8 @@
   e4NNNullable = null;
   e5NNNullable = null;
 }
-static method testOptionalPositional([self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableOP = #C1, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleOP = #C1, self::E2% /* erasure=core::Object?, declared=! */ e2OP = #C1, self::E3% /* erasure=core::String?, declared=! */ e3OP = #C1, self::E4% /* erasure=core::int, declared=! */ e4OP = #C1, self::E5% /* erasure=core::Object?, declared=! */ e5OP = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableOPNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleOPNullable = #C1, self::E2? /* erasure=core::Object? */ e2OPNullable = #C1, self::E3? /* erasure=core::String? */ e3OPNullable = #C1, self::E4? /* erasure=core::int? */ e4OPNullable = #C1, self::E5? /* erasure=core::Object? */ e5OPNullable = #C1]) → dynamic {}
-static method testNamedNotRequired({self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableNNR = #C1, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleNNR = #C1, self::E2% /* erasure=core::Object?, declared=! */ e2NNR = #C1, self::E3% /* erasure=core::String?, declared=! */ e3NNR = #C1, self::E4% /* erasure=core::int, declared=! */ e4NNR = #C1, self::E5% /* erasure=core::Object?, declared=! */ e5NNR = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableNNRNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleNNRNullable = #C1, self::E2? /* erasure=core::Object? */ e2NNRNullable = #C1, self::E3? /* erasure=core::String? */ e3NNRNullable = #C1, self::E4? /* erasure=core::int? */ e4NNRNullable = #C1, self::E5? /* erasure=core::Object? */ e5NNRNullable = #C1}) → dynamic {}
+static method testOptionalPositional([erroneously-initialized self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableOP = #C1, erroneously-initialized self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleOP = #C1, erroneously-initialized self::E2% /* erasure=core::Object?, declared=! */ e2OP = #C1, erroneously-initialized self::E3% /* erasure=core::String?, declared=! */ e3OP = #C1, erroneously-initialized self::E4% /* erasure=core::int, declared=! */ e4OP = #C1, erroneously-initialized self::E5% /* erasure=core::Object?, declared=! */ e5OP = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableOPNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleOPNullable = #C1, self::E2? /* erasure=core::Object? */ e2OPNullable = #C1, self::E3? /* erasure=core::String? */ e3OPNullable = #C1, self::E4? /* erasure=core::int? */ e4OPNullable = #C1, self::E5? /* erasure=core::Object? */ e5OPNullable = #C1]) → dynamic {}
+static method testNamedNotRequired({erroneously-initialized self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableNNR = #C1, erroneously-initialized self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleNNR = #C1, erroneously-initialized self::E2% /* erasure=core::Object?, declared=! */ e2NNR = #C1, erroneously-initialized self::E3% /* erasure=core::String?, declared=! */ e3NNR = #C1, erroneously-initialized self::E4% /* erasure=core::int, declared=! */ e4NNR = #C1, erroneously-initialized self::E5% /* erasure=core::Object?, declared=! */ e5NNR = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableNNRNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleNNRNullable = #C1, self::E2? /* erasure=core::Object? */ e2NNRNullable = #C1, self::E3? /* erasure=core::String? */ e3NNRNullable = #C1, self::E4? /* erasure=core::int? */ e4NNRNullable = #C1, self::E5? /* erasure=core::Object? */ e5NNRNullable = #C1}) → dynamic {}
 
 constants  {
   #C1 = null
diff --git a/pkg/front_end/testcases/extension_types/nullability.dart.strong.outline.expect b/pkg/front_end/testcases/extension_types/nullability.dart.strong.outline.expect
index 69a7da0..c49ce59 100644
--- a/pkg/front_end/testcases/extension_types/nullability.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/extension_types/nullability.dart.strong.outline.expect
@@ -130,7 +130,7 @@
   ;
 static method testNotNullable(self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableNN, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleNN, self::E2% /* erasure=core::Object?, declared=! */ e2NN, self::E3% /* erasure=core::String?, declared=! */ e3NN, self::E4% /* erasure=core::int, declared=! */ e4NN, self::E5% /* erasure=core::Object?, declared=! */ e5NN, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableNNNullable, self::E1<core::double>? /* erasure=core::double? */ e1doubleNNNullable, self::E2? /* erasure=core::Object? */ e2NNNullable, self::E3? /* erasure=core::String? */ e3NNNullable, self::E4? /* erasure=core::int? */ e4NNNullable, self::E5? /* erasure=core::Object? */ e5NNNullable) → dynamic
   ;
-static method testOptionalPositional([self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableOP, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleOP, self::E2% /* erasure=core::Object?, declared=! */ e2OP, self::E3% /* erasure=core::String?, declared=! */ e3OP, self::E4% /* erasure=core::int, declared=! */ e4OP, self::E5% /* erasure=core::Object?, declared=! */ e5OP, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableOPNullable, self::E1<core::double>? /* erasure=core::double? */ e1doubleOPNullable, self::E2? /* erasure=core::Object? */ e2OPNullable, self::E3? /* erasure=core::String? */ e3OPNullable, self::E4? /* erasure=core::int? */ e4OPNullable, self::E5? /* erasure=core::Object? */ e5OPNullable]) → dynamic
+static method testOptionalPositional([erroneously-initialized self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableOP, erroneously-initialized self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleOP, erroneously-initialized self::E2% /* erasure=core::Object?, declared=! */ e2OP, erroneously-initialized self::E3% /* erasure=core::String?, declared=! */ e3OP, erroneously-initialized self::E4% /* erasure=core::int, declared=! */ e4OP, erroneously-initialized self::E5% /* erasure=core::Object?, declared=! */ e5OP, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableOPNullable, self::E1<core::double>? /* erasure=core::double? */ e1doubleOPNullable, self::E2? /* erasure=core::Object? */ e2OPNullable, self::E3? /* erasure=core::String? */ e3OPNullable, self::E4? /* erasure=core::int? */ e4OPNullable, self::E5? /* erasure=core::Object? */ e5OPNullable]) → dynamic
   ;
-static method testNamedNotRequired({self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableNNR, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleNNR, self::E2% /* erasure=core::Object?, declared=! */ e2NNR, self::E3% /* erasure=core::String?, declared=! */ e3NNR, self::E4% /* erasure=core::int, declared=! */ e4NNR, self::E5% /* erasure=core::Object?, declared=! */ e5NNR, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableNNRNullable, self::E1<core::double>? /* erasure=core::double? */ e1doubleNNRNullable, self::E2? /* erasure=core::Object? */ e2NNRNullable, self::E3? /* erasure=core::String? */ e3NNRNullable, self::E4? /* erasure=core::int? */ e4NNRNullable, self::E5? /* erasure=core::Object? */ e5NNRNullable}) → dynamic
+static method testNamedNotRequired({erroneously-initialized self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableNNR, erroneously-initialized self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleNNR, erroneously-initialized self::E2% /* erasure=core::Object?, declared=! */ e2NNR, erroneously-initialized self::E3% /* erasure=core::String?, declared=! */ e3NNR, erroneously-initialized self::E4% /* erasure=core::int, declared=! */ e4NNR, erroneously-initialized self::E5% /* erasure=core::Object?, declared=! */ e5NNR, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableNNRNullable, self::E1<core::double>? /* erasure=core::double? */ e1doubleNNRNullable, self::E2? /* erasure=core::Object? */ e2NNRNullable, self::E3? /* erasure=core::String? */ e3NNRNullable, self::E4? /* erasure=core::int? */ e4NNRNullable, self::E5? /* erasure=core::Object? */ e5NNRNullable}) → dynamic
   ;
diff --git a/pkg/front_end/testcases/extension_types/nullability.dart.strong.transformed.expect b/pkg/front_end/testcases/extension_types/nullability.dart.strong.transformed.expect
index 8a17012..307a916 100644
--- a/pkg/front_end/testcases/extension_types/nullability.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/extension_types/nullability.dart.strong.transformed.expect
@@ -267,8 +267,8 @@
   e4NNNullable = null;
   e5NNNullable = null;
 }
-static method testOptionalPositional([self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableOP = #C1, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleOP = #C1, self::E2% /* erasure=core::Object?, declared=! */ e2OP = #C1, self::E3% /* erasure=core::String?, declared=! */ e3OP = #C1, self::E4% /* erasure=core::int, declared=! */ e4OP = #C1, self::E5% /* erasure=core::Object?, declared=! */ e5OP = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableOPNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleOPNullable = #C1, self::E2? /* erasure=core::Object? */ e2OPNullable = #C1, self::E3? /* erasure=core::String? */ e3OPNullable = #C1, self::E4? /* erasure=core::int? */ e4OPNullable = #C1, self::E5? /* erasure=core::Object? */ e5OPNullable = #C1]) → dynamic {}
-static method testNamedNotRequired({self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableNNR = #C1, self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleNNR = #C1, self::E2% /* erasure=core::Object?, declared=! */ e2NNR = #C1, self::E3% /* erasure=core::String?, declared=! */ e3NNR = #C1, self::E4% /* erasure=core::int, declared=! */ e4NNR = #C1, self::E5% /* erasure=core::Object?, declared=! */ e5NNR = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableNNRNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleNNRNullable = #C1, self::E2? /* erasure=core::Object? */ e2NNRNullable = #C1, self::E3? /* erasure=core::String? */ e3NNRNullable = #C1, self::E4? /* erasure=core::int? */ e4NNRNullable = #C1, self::E5? /* erasure=core::Object? */ e5NNRNullable = #C1}) → dynamic {}
+static method testOptionalPositional([erroneously-initialized self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableOP = #C1, erroneously-initialized self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleOP = #C1, erroneously-initialized self::E2% /* erasure=core::Object?, declared=! */ e2OP = #C1, erroneously-initialized self::E3% /* erasure=core::String?, declared=! */ e3OP = #C1, erroneously-initialized self::E4% /* erasure=core::int, declared=! */ e4OP = #C1, erroneously-initialized self::E5% /* erasure=core::Object?, declared=! */ e5OP = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableOPNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleOPNullable = #C1, self::E2? /* erasure=core::Object? */ e2OPNullable = #C1, self::E3? /* erasure=core::String? */ e3OPNullable = #C1, self::E4? /* erasure=core::int? */ e4OPNullable = #C1, self::E5? /* erasure=core::Object? */ e5OPNullable = #C1]) → dynamic {}
+static method testNamedNotRequired({erroneously-initialized self::E1<core::num?>% /* erasure=core::num?, declared=! */ e1numNullableNNR = #C1, erroneously-initialized self::E1<core::double>% /* erasure=core::double, declared=! */ e1doubleNNR = #C1, erroneously-initialized self::E2% /* erasure=core::Object?, declared=! */ e2NNR = #C1, erroneously-initialized self::E3% /* erasure=core::String?, declared=! */ e3NNR = #C1, erroneously-initialized self::E4% /* erasure=core::int, declared=! */ e4NNR = #C1, erroneously-initialized self::E5% /* erasure=core::Object?, declared=! */ e5NNR = #C1, self::E1<core::num?>? /* erasure=core::num? */ e1numNullableNNRNullable = #C1, self::E1<core::double>? /* erasure=core::double? */ e1doubleNNRNullable = #C1, self::E2? /* erasure=core::Object? */ e2NNRNullable = #C1, self::E3? /* erasure=core::String? */ e3NNRNullable = #C1, self::E4? /* erasure=core::int? */ e4NNRNullable = #C1, self::E5? /* erasure=core::Object? */ e5NNRNullable = #C1}) → dynamic {}
 
 constants  {
   #C1 = null
diff --git a/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart
new file mode 100644
index 0000000..223f51b
--- /dev/null
+++ b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart
@@ -0,0 +1,43 @@
+// Copyright (c) 2025, 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.
+
+topLevelOptionalPositional([int x = ""]) {}
+topLevelOptionalNamed({int x = ""}) {}
+topLevelOptionalPositionalImplicit([int x]) {}
+topLevelOptionalNamedImplicit({int x}) {}
+
+class A {
+  A.optionalPositional([int x = ""]) {}
+  A.optionalNamed({int x = ""}) {}
+  A.optionalPositionalImplicit([int x]) {}
+  A.optionalNamedImplicit({int x}) {}
+
+  void fooOptionalPositional([int x = ""]) {}
+  void fooOptionalNamed({int x = ""}) {}
+  void fooOptionalPositionalImplicit([int x]) {}
+  void fooOptionalNamedImplicit({int x}) {}
+}
+
+extension E on A {
+  void barOptionalPositional([int x = ""]) {}
+  void barOptionalNamed({int x = ""}) {}
+  void barOptionalPositionalImplicit([int x]) {}
+  void barOptionalNamedImplicit({int x}) {}
+}
+
+extension type ET(A it) {
+  void bazOptionalPositional([int x = ""]) {}
+  void bazOptionalNamed({int x = ""}) {}
+  void bazOptionalPositionalImplicit([int x]) {}
+  void bazOptionalNamedImplicit({int x}) {}
+}
+
+enum EN {
+  element;
+
+  void foobarOptionalPositional([int x = ""]) {}
+  void foobarOptionalNamed({int x = ""}) {}
+  void foobarOptionalPositionalImplicit([int x]) {}
+  void foobarOptionalNamedImplicit({int x}) {}
+}
diff --git a/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.strong.expect b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.strong.expect
new file mode 100644
index 0000000..9ca3826
--- /dev/null
+++ b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.strong.expect
@@ -0,0 +1,246 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:11:33: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   A.optionalPositional([int x = ""]) {}
+//                                 ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:12:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   A.optionalNamed({int x = ""}) {}
+//                            ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:16:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void fooOptionalPositional([int x = ""]) {}
+//                                       ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:17:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void fooOptionalNamed({int x = ""}) {}
+//                                  ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:39:42: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void foobarOptionalPositional([int x = ""]) {}
+//                                          ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:40:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void foobarOptionalNamed({int x = ""}) {}
+//                                     ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:7:41: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+// topLevelOptionalPositionalImplicit([int x]) {}
+//                                         ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:8:36: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+// topLevelOptionalNamedImplicit({int x}) {}
+//                                    ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:18:43: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void fooOptionalPositionalImplicit([int x]) {}
+//                                           ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:19:38: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void fooOptionalNamedImplicit({int x}) {}
+//                                      ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:13:37: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   A.optionalPositionalImplicit([int x]) {}
+//                                     ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:14:32: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   A.optionalNamedImplicit({int x}) {}
+//                                ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:25:43: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void barOptionalPositionalImplicit([int x]) {}
+//                                           ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:26:38: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void barOptionalNamedImplicit({int x}) {}
+//                                      ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:32:43: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void bazOptionalPositionalImplicit([int x]) {}
+//                                           ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:33:38: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void bazOptionalNamedImplicit({int x}) {}
+//                                      ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:41:46: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void foobarOptionalPositionalImplicit([int x]) {}
+//                                              ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:42:41: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void foobarOptionalNamedImplicit({int x}) {}
+//                                         ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:5:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// topLevelOptionalPositional([int x = ""]) {}
+//                                     ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:6:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// topLevelOptionalNamed({int x = ""}) {}
+//                                ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:23:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void barOptionalPositional([int x = ""]) {}
+//                                       ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:24:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void barOptionalNamed({int x = ""}) {}
+//                                  ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:30:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void bazOptionalPositional([int x = ""]) {}
+//                                       ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:31:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void bazOptionalNamed({int x = ""}) {}
+//                                  ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor optionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:11:33: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  A.optionalPositional([int x = \"\"]) {}
+                                ^"]) → self::A
+    : super core::Object::•() {}
+  constructor optionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:12:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  A.optionalNamed({int x = \"\"}) {}
+                           ^"}) → self::A
+    : super core::Object::•() {}
+  constructor optionalPositionalImplicit([erroneously-initialized core::int x = #C1]) → self::A
+    : super core::Object::•() {}
+  constructor optionalNamedImplicit({erroneously-initialized core::int x = #C1}) → self::A
+    : super core::Object::•() {}
+  method fooOptionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:16:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void fooOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void {}
+  method fooOptionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:17:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void fooOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void {}
+  method fooOptionalPositionalImplicit([erroneously-initialized core::int x = #C1]) → void {}
+  method fooOptionalNamedImplicit({erroneously-initialized core::int x = #C1}) → void {}
+}
+class EN extends core::_Enum /*isEnum*/  {
+  enum-element static const field self::EN element = #C4;
+  static const field core::List<self::EN> values = #C5;
+  const synthetic constructor •(core::int #index, core::String #name) → self::EN
+    : super core::_Enum::•(#index, #name)
+    ;
+  method _enumToString() → core::String
+    return "EN.${this.{core::_Enum::_name}{core::String}}";
+  method foobarOptionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:39:42: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void foobarOptionalPositional([int x = \"\"]) {}
+                                         ^"]) → void {}
+  method foobarOptionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:40:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void foobarOptionalNamed({int x = \"\"}) {}
+                                    ^"}) → void {}
+  method foobarOptionalPositionalImplicit([erroneously-initialized core::int x = #C1]) → void {}
+  method foobarOptionalNamedImplicit({erroneously-initialized core::int x = #C1}) → void {}
+}
+extension E on self::A {
+  method barOptionalPositional = self::E|barOptionalPositional;
+  method tearoff barOptionalPositional = self::E|get#barOptionalPositional;
+  method barOptionalNamed = self::E|barOptionalNamed;
+  method tearoff barOptionalNamed = self::E|get#barOptionalNamed;
+  method barOptionalPositionalImplicit = self::E|barOptionalPositionalImplicit;
+  method tearoff barOptionalPositionalImplicit = self::E|get#barOptionalPositionalImplicit;
+  method barOptionalNamedImplicit = self::E|barOptionalNamedImplicit;
+  method tearoff barOptionalNamedImplicit = self::E|get#barOptionalNamedImplicit;
+}
+extension type ET(self::A it) {
+  abstract extension-type-member representation-field get it() → self::A;
+  method bazOptionalPositional = self::ET|bazOptionalPositional;
+  method tearoff bazOptionalPositional = self::ET|get#bazOptionalPositional;
+  method bazOptionalNamed = self::ET|bazOptionalNamed;
+  method tearoff bazOptionalNamed = self::ET|get#bazOptionalNamed;
+  method bazOptionalPositionalImplicit = self::ET|bazOptionalPositionalImplicit;
+  method tearoff bazOptionalPositionalImplicit = self::ET|get#bazOptionalPositionalImplicit;
+  method bazOptionalNamedImplicit = self::ET|bazOptionalNamedImplicit;
+  method tearoff bazOptionalNamedImplicit = self::ET|get#bazOptionalNamedImplicit;
+  constructor • = self::ET|constructor#;
+  constructor tearoff • = self::ET|constructor#_#new#tearOff;
+}
+static method topLevelOptionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:5:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+topLevelOptionalPositional([int x = \"\"]) {}
+                                    ^"]) → dynamic {}
+static method topLevelOptionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:6:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+topLevelOptionalNamed({int x = \"\"}) {}
+                               ^"}) → dynamic {}
+static method topLevelOptionalPositionalImplicit([erroneously-initialized core::int x = #C1]) → dynamic {}
+static method topLevelOptionalNamedImplicit({erroneously-initialized core::int x = #C1}) → dynamic {}
+static extension-member method E|barOptionalPositional(lowered final self::A #this, [erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:23:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void barOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void {}
+static extension-member method E|get#barOptionalPositional(lowered final self::A #this) → ([core::int]) → void
+  return ([core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:23:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void barOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void => self::E|barOptionalPositional(#this, x);
+static extension-member method E|barOptionalNamed(lowered final self::A #this, {erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:24:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void barOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void {}
+static extension-member method E|get#barOptionalNamed(lowered final self::A #this) → ({x: core::int}) → void
+  return ({core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:24:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void barOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void => self::E|barOptionalNamed(#this, x: x);
+static extension-member method E|barOptionalPositionalImplicit(lowered final self::A #this, [erroneously-initialized core::int x = #C1]) → void {}
+static extension-member method E|get#barOptionalPositionalImplicit(lowered final self::A #this) → ([core::int]) → void
+  return ([core::int x = #C1]) → void => self::E|barOptionalPositionalImplicit(#this, x);
+static extension-member method E|barOptionalNamedImplicit(lowered final self::A #this, {erroneously-initialized core::int x = #C1}) → void {}
+static extension-member method E|get#barOptionalNamedImplicit(lowered final self::A #this) → ({x: core::int}) → void
+  return ({core::int x = #C1}) → void => self::E|barOptionalNamedImplicit(#this, x: x);
+static extension-type-member method ET|constructor#(self::A it) → self::ET% /* erasure=self::A, declared=! */ {
+  lowered final self::ET% /* erasure=self::A, declared=! */ #this = it;
+  return #this;
+}
+static extension-type-member synthetic method ET|constructor#_#new#tearOff(self::A it) → self::ET% /* erasure=self::A, declared=! */
+  return self::ET|constructor#(it);
+static extension-type-member method ET|bazOptionalPositional(lowered final self::ET% /* erasure=self::A, declared=! */ #this, [erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:30:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void bazOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void {}
+static extension-type-member method ET|get#bazOptionalPositional(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ([core::int]) → void
+  return ([core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:30:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void bazOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void => self::ET|bazOptionalPositional(#this, x);
+static extension-type-member method ET|bazOptionalNamed(lowered final self::ET% /* erasure=self::A, declared=! */ #this, {erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:31:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void bazOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void {}
+static extension-type-member method ET|get#bazOptionalNamed(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ({x: core::int}) → void
+  return ({core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:31:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void bazOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void => self::ET|bazOptionalNamed(#this, x: x);
+static extension-type-member method ET|bazOptionalPositionalImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this, [erroneously-initialized core::int x = #C1]) → void {}
+static extension-type-member method ET|get#bazOptionalPositionalImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ([core::int]) → void
+  return ([core::int x = #C1]) → void => self::ET|bazOptionalPositionalImplicit(#this, x);
+static extension-type-member method ET|bazOptionalNamedImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this, {erroneously-initialized core::int x = #C1}) → void {}
+static extension-type-member method ET|get#bazOptionalNamedImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ({x: core::int}) → void
+  return ({core::int x = #C1}) → void => self::ET|bazOptionalNamedImplicit(#this, x: x);
+
+constants  {
+  #C1 = null
+  #C2 = 0
+  #C3 = "element"
+  #C4 = self::EN {index:#C2, _name:#C3}
+  #C5 = <self::EN>[#C4]
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///erroneously_initialized_parameters.dart:
+- EN. (from org-dartlang-testcase:///erroneously_initialized_parameters.dart:36:6)
+- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.strong.modular.expect b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.strong.modular.expect
new file mode 100644
index 0000000..9ca3826
--- /dev/null
+++ b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.strong.modular.expect
@@ -0,0 +1,246 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:11:33: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   A.optionalPositional([int x = ""]) {}
+//                                 ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:12:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   A.optionalNamed({int x = ""}) {}
+//                            ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:16:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void fooOptionalPositional([int x = ""]) {}
+//                                       ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:17:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void fooOptionalNamed({int x = ""}) {}
+//                                  ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:39:42: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void foobarOptionalPositional([int x = ""]) {}
+//                                          ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:40:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void foobarOptionalNamed({int x = ""}) {}
+//                                     ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:7:41: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+// topLevelOptionalPositionalImplicit([int x]) {}
+//                                         ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:8:36: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+// topLevelOptionalNamedImplicit({int x}) {}
+//                                    ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:18:43: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void fooOptionalPositionalImplicit([int x]) {}
+//                                           ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:19:38: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void fooOptionalNamedImplicit({int x}) {}
+//                                      ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:13:37: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   A.optionalPositionalImplicit([int x]) {}
+//                                     ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:14:32: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   A.optionalNamedImplicit({int x}) {}
+//                                ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:25:43: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void barOptionalPositionalImplicit([int x]) {}
+//                                           ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:26:38: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void barOptionalNamedImplicit({int x}) {}
+//                                      ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:32:43: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void bazOptionalPositionalImplicit([int x]) {}
+//                                           ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:33:38: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void bazOptionalNamedImplicit({int x}) {}
+//                                      ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:41:46: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void foobarOptionalPositionalImplicit([int x]) {}
+//                                              ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:42:41: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void foobarOptionalNamedImplicit({int x}) {}
+//                                         ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:5:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// topLevelOptionalPositional([int x = ""]) {}
+//                                     ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:6:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// topLevelOptionalNamed({int x = ""}) {}
+//                                ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:23:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void barOptionalPositional([int x = ""]) {}
+//                                       ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:24:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void barOptionalNamed({int x = ""}) {}
+//                                  ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:30:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void bazOptionalPositional([int x = ""]) {}
+//                                       ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:31:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void bazOptionalNamed({int x = ""}) {}
+//                                  ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor optionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:11:33: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  A.optionalPositional([int x = \"\"]) {}
+                                ^"]) → self::A
+    : super core::Object::•() {}
+  constructor optionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:12:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  A.optionalNamed({int x = \"\"}) {}
+                           ^"}) → self::A
+    : super core::Object::•() {}
+  constructor optionalPositionalImplicit([erroneously-initialized core::int x = #C1]) → self::A
+    : super core::Object::•() {}
+  constructor optionalNamedImplicit({erroneously-initialized core::int x = #C1}) → self::A
+    : super core::Object::•() {}
+  method fooOptionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:16:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void fooOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void {}
+  method fooOptionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:17:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void fooOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void {}
+  method fooOptionalPositionalImplicit([erroneously-initialized core::int x = #C1]) → void {}
+  method fooOptionalNamedImplicit({erroneously-initialized core::int x = #C1}) → void {}
+}
+class EN extends core::_Enum /*isEnum*/  {
+  enum-element static const field self::EN element = #C4;
+  static const field core::List<self::EN> values = #C5;
+  const synthetic constructor •(core::int #index, core::String #name) → self::EN
+    : super core::_Enum::•(#index, #name)
+    ;
+  method _enumToString() → core::String
+    return "EN.${this.{core::_Enum::_name}{core::String}}";
+  method foobarOptionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:39:42: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void foobarOptionalPositional([int x = \"\"]) {}
+                                         ^"]) → void {}
+  method foobarOptionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:40:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void foobarOptionalNamed({int x = \"\"}) {}
+                                    ^"}) → void {}
+  method foobarOptionalPositionalImplicit([erroneously-initialized core::int x = #C1]) → void {}
+  method foobarOptionalNamedImplicit({erroneously-initialized core::int x = #C1}) → void {}
+}
+extension E on self::A {
+  method barOptionalPositional = self::E|barOptionalPositional;
+  method tearoff barOptionalPositional = self::E|get#barOptionalPositional;
+  method barOptionalNamed = self::E|barOptionalNamed;
+  method tearoff barOptionalNamed = self::E|get#barOptionalNamed;
+  method barOptionalPositionalImplicit = self::E|barOptionalPositionalImplicit;
+  method tearoff barOptionalPositionalImplicit = self::E|get#barOptionalPositionalImplicit;
+  method barOptionalNamedImplicit = self::E|barOptionalNamedImplicit;
+  method tearoff barOptionalNamedImplicit = self::E|get#barOptionalNamedImplicit;
+}
+extension type ET(self::A it) {
+  abstract extension-type-member representation-field get it() → self::A;
+  method bazOptionalPositional = self::ET|bazOptionalPositional;
+  method tearoff bazOptionalPositional = self::ET|get#bazOptionalPositional;
+  method bazOptionalNamed = self::ET|bazOptionalNamed;
+  method tearoff bazOptionalNamed = self::ET|get#bazOptionalNamed;
+  method bazOptionalPositionalImplicit = self::ET|bazOptionalPositionalImplicit;
+  method tearoff bazOptionalPositionalImplicit = self::ET|get#bazOptionalPositionalImplicit;
+  method bazOptionalNamedImplicit = self::ET|bazOptionalNamedImplicit;
+  method tearoff bazOptionalNamedImplicit = self::ET|get#bazOptionalNamedImplicit;
+  constructor • = self::ET|constructor#;
+  constructor tearoff • = self::ET|constructor#_#new#tearOff;
+}
+static method topLevelOptionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:5:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+topLevelOptionalPositional([int x = \"\"]) {}
+                                    ^"]) → dynamic {}
+static method topLevelOptionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:6:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+topLevelOptionalNamed({int x = \"\"}) {}
+                               ^"}) → dynamic {}
+static method topLevelOptionalPositionalImplicit([erroneously-initialized core::int x = #C1]) → dynamic {}
+static method topLevelOptionalNamedImplicit({erroneously-initialized core::int x = #C1}) → dynamic {}
+static extension-member method E|barOptionalPositional(lowered final self::A #this, [erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:23:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void barOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void {}
+static extension-member method E|get#barOptionalPositional(lowered final self::A #this) → ([core::int]) → void
+  return ([core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:23:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void barOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void => self::E|barOptionalPositional(#this, x);
+static extension-member method E|barOptionalNamed(lowered final self::A #this, {erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:24:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void barOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void {}
+static extension-member method E|get#barOptionalNamed(lowered final self::A #this) → ({x: core::int}) → void
+  return ({core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:24:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void barOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void => self::E|barOptionalNamed(#this, x: x);
+static extension-member method E|barOptionalPositionalImplicit(lowered final self::A #this, [erroneously-initialized core::int x = #C1]) → void {}
+static extension-member method E|get#barOptionalPositionalImplicit(lowered final self::A #this) → ([core::int]) → void
+  return ([core::int x = #C1]) → void => self::E|barOptionalPositionalImplicit(#this, x);
+static extension-member method E|barOptionalNamedImplicit(lowered final self::A #this, {erroneously-initialized core::int x = #C1}) → void {}
+static extension-member method E|get#barOptionalNamedImplicit(lowered final self::A #this) → ({x: core::int}) → void
+  return ({core::int x = #C1}) → void => self::E|barOptionalNamedImplicit(#this, x: x);
+static extension-type-member method ET|constructor#(self::A it) → self::ET% /* erasure=self::A, declared=! */ {
+  lowered final self::ET% /* erasure=self::A, declared=! */ #this = it;
+  return #this;
+}
+static extension-type-member synthetic method ET|constructor#_#new#tearOff(self::A it) → self::ET% /* erasure=self::A, declared=! */
+  return self::ET|constructor#(it);
+static extension-type-member method ET|bazOptionalPositional(lowered final self::ET% /* erasure=self::A, declared=! */ #this, [erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:30:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void bazOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void {}
+static extension-type-member method ET|get#bazOptionalPositional(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ([core::int]) → void
+  return ([core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:30:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void bazOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void => self::ET|bazOptionalPositional(#this, x);
+static extension-type-member method ET|bazOptionalNamed(lowered final self::ET% /* erasure=self::A, declared=! */ #this, {erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:31:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void bazOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void {}
+static extension-type-member method ET|get#bazOptionalNamed(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ({x: core::int}) → void
+  return ({core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:31:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void bazOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void => self::ET|bazOptionalNamed(#this, x: x);
+static extension-type-member method ET|bazOptionalPositionalImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this, [erroneously-initialized core::int x = #C1]) → void {}
+static extension-type-member method ET|get#bazOptionalPositionalImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ([core::int]) → void
+  return ([core::int x = #C1]) → void => self::ET|bazOptionalPositionalImplicit(#this, x);
+static extension-type-member method ET|bazOptionalNamedImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this, {erroneously-initialized core::int x = #C1}) → void {}
+static extension-type-member method ET|get#bazOptionalNamedImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ({x: core::int}) → void
+  return ({core::int x = #C1}) → void => self::ET|bazOptionalNamedImplicit(#this, x: x);
+
+constants  {
+  #C1 = null
+  #C2 = 0
+  #C3 = "element"
+  #C4 = self::EN {index:#C2, _name:#C3}
+  #C5 = <self::EN>[#C4]
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///erroneously_initialized_parameters.dart:
+- EN. (from org-dartlang-testcase:///erroneously_initialized_parameters.dart:36:6)
+- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.strong.outline.expect b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.strong.outline.expect
new file mode 100644
index 0000000..564c091
--- /dev/null
+++ b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.strong.outline.expect
@@ -0,0 +1,211 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:11:33: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   A.optionalPositional([int x = ""]) {}
+//                                 ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:12:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   A.optionalNamed({int x = ""}) {}
+//                            ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:16:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void fooOptionalPositional([int x = ""]) {}
+//                                       ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:17:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void fooOptionalNamed({int x = ""}) {}
+//                                  ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:39:42: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void foobarOptionalPositional([int x = ""]) {}
+//                                          ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:40:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void foobarOptionalNamed({int x = ""}) {}
+//                                     ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:7:41: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+// topLevelOptionalPositionalImplicit([int x]) {}
+//                                         ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:8:36: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+// topLevelOptionalNamedImplicit({int x}) {}
+//                                    ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:18:43: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void fooOptionalPositionalImplicit([int x]) {}
+//                                           ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:19:38: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void fooOptionalNamedImplicit({int x}) {}
+//                                      ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:13:37: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   A.optionalPositionalImplicit([int x]) {}
+//                                     ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:14:32: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   A.optionalNamedImplicit({int x}) {}
+//                                ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:25:43: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void barOptionalPositionalImplicit([int x]) {}
+//                                           ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:26:38: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void barOptionalNamedImplicit({int x}) {}
+//                                      ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:32:43: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void bazOptionalPositionalImplicit([int x]) {}
+//                                           ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:33:38: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void bazOptionalNamedImplicit({int x}) {}
+//                                      ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:41:46: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void foobarOptionalPositionalImplicit([int x]) {}
+//                                              ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:42:41: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void foobarOptionalNamedImplicit({int x}) {}
+//                                         ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor optionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:11:33: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  A.optionalPositional([int x = \"\"]) {}
+                                ^" in "" as{TypeError} core::int]) → self::A
+    ;
+  constructor optionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:12:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  A.optionalNamed({int x = \"\"}) {}
+                           ^" in "" as{TypeError} core::int}) → self::A
+    ;
+  constructor optionalPositionalImplicit([erroneously-initialized core::int x = null]) → self::A
+    ;
+  constructor optionalNamedImplicit({erroneously-initialized core::int x = null}) → self::A
+    ;
+  method fooOptionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:16:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void fooOptionalPositional([int x = \"\"]) {}
+                                      ^" in "" as{TypeError} core::int]) → void
+    ;
+  method fooOptionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:17:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void fooOptionalNamed({int x = \"\"}) {}
+                                 ^" in "" as{TypeError} core::int}) → void
+    ;
+  method fooOptionalPositionalImplicit([erroneously-initialized core::int x = null]) → void
+    ;
+  method fooOptionalNamedImplicit({erroneously-initialized core::int x = null}) → void
+    ;
+}
+class EN extends core::_Enum /*isEnum*/  {
+  enum-element static const field self::EN element = const self::EN::•(0, "element");
+  static const field core::List<self::EN> values = const <self::EN>[self::EN::element];
+  const synthetic constructor •(core::int #index, core::String #name) → self::EN
+    : super core::_Enum::•(#index, #name)
+    ;
+  method _enumToString() → core::String
+    return "EN.${this.{core::_Enum::_name}{core::String}}";
+  method foobarOptionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:39:42: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void foobarOptionalPositional([int x = \"\"]) {}
+                                         ^" in "" as{TypeError} core::int]) → void
+    ;
+  method foobarOptionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:40:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void foobarOptionalNamed({int x = \"\"}) {}
+                                    ^" in "" as{TypeError} core::int}) → void
+    ;
+  method foobarOptionalPositionalImplicit([erroneously-initialized core::int x = null]) → void
+    ;
+  method foobarOptionalNamedImplicit({erroneously-initialized core::int x = null}) → void
+    ;
+}
+extension E on self::A {
+  method barOptionalPositional = self::E|barOptionalPositional;
+  method tearoff barOptionalPositional = self::E|get#barOptionalPositional;
+  method barOptionalNamed = self::E|barOptionalNamed;
+  method tearoff barOptionalNamed = self::E|get#barOptionalNamed;
+  method barOptionalPositionalImplicit = self::E|barOptionalPositionalImplicit;
+  method tearoff barOptionalPositionalImplicit = self::E|get#barOptionalPositionalImplicit;
+  method barOptionalNamedImplicit = self::E|barOptionalNamedImplicit;
+  method tearoff barOptionalNamedImplicit = self::E|get#barOptionalNamedImplicit;
+}
+extension type ET(self::A it) {
+  abstract extension-type-member representation-field get it() → self::A;
+  method bazOptionalPositional = self::ET|bazOptionalPositional;
+  method tearoff bazOptionalPositional = self::ET|get#bazOptionalPositional;
+  method bazOptionalNamed = self::ET|bazOptionalNamed;
+  method tearoff bazOptionalNamed = self::ET|get#bazOptionalNamed;
+  method bazOptionalPositionalImplicit = self::ET|bazOptionalPositionalImplicit;
+  method tearoff bazOptionalPositionalImplicit = self::ET|get#bazOptionalPositionalImplicit;
+  method bazOptionalNamedImplicit = self::ET|bazOptionalNamedImplicit;
+  method tearoff bazOptionalNamedImplicit = self::ET|get#bazOptionalNamedImplicit;
+  constructor • = self::ET|constructor#;
+  constructor tearoff • = self::ET|constructor#_#new#tearOff;
+}
+static method topLevelOptionalPositional([has-declared-initializer core::int x]) → dynamic
+  ;
+static method topLevelOptionalNamed({has-declared-initializer core::int x}) → dynamic
+  ;
+static method topLevelOptionalPositionalImplicit([erroneously-initialized core::int x]) → dynamic
+  ;
+static method topLevelOptionalNamedImplicit({erroneously-initialized core::int x}) → dynamic
+  ;
+static extension-member method E|barOptionalPositional(lowered final self::A #this, [has-declared-initializer core::int x]) → void
+  ;
+static extension-member method E|get#barOptionalPositional(lowered final self::A #this) → ([core::int]) → void
+  return ([core::int x]) → void => self::E|barOptionalPositional(#this, x);
+static extension-member method E|barOptionalNamed(lowered final self::A #this, {has-declared-initializer core::int x}) → void
+  ;
+static extension-member method E|get#barOptionalNamed(lowered final self::A #this) → ({x: core::int}) → void
+  return ({core::int x}) → void => self::E|barOptionalNamed(#this, x: x);
+static extension-member method E|barOptionalPositionalImplicit(lowered final self::A #this, [erroneously-initialized core::int x]) → void
+  ;
+static extension-member method E|get#barOptionalPositionalImplicit(lowered final self::A #this) → ([core::int]) → void
+  return ([core::int x]) → void => self::E|barOptionalPositionalImplicit(#this, x);
+static extension-member method E|barOptionalNamedImplicit(lowered final self::A #this, {erroneously-initialized core::int x}) → void
+  ;
+static extension-member method E|get#barOptionalNamedImplicit(lowered final self::A #this) → ({x: core::int}) → void
+  return ({core::int x}) → void => self::E|barOptionalNamedImplicit(#this, x: x);
+static extension-type-member method ET|constructor#(self::A it) → self::ET% /* erasure=self::A, declared=! */
+  ;
+static extension-type-member synthetic method ET|constructor#_#new#tearOff(self::A it) → self::ET% /* erasure=self::A, declared=! */
+  return self::ET|constructor#(it);
+static extension-type-member method ET|bazOptionalPositional(lowered final self::ET% /* erasure=self::A, declared=! */ #this, [has-declared-initializer core::int x]) → void
+  ;
+static extension-type-member method ET|get#bazOptionalPositional(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ([core::int]) → void
+  return ([core::int x]) → void => self::ET|bazOptionalPositional(#this, x);
+static extension-type-member method ET|bazOptionalNamed(lowered final self::ET% /* erasure=self::A, declared=! */ #this, {has-declared-initializer core::int x}) → void
+  ;
+static extension-type-member method ET|get#bazOptionalNamed(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ({x: core::int}) → void
+  return ({core::int x}) → void => self::ET|bazOptionalNamed(#this, x: x);
+static extension-type-member method ET|bazOptionalPositionalImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this, [erroneously-initialized core::int x]) → void
+  ;
+static extension-type-member method ET|get#bazOptionalPositionalImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ([core::int]) → void
+  return ([core::int x]) → void => self::ET|bazOptionalPositionalImplicit(#this, x);
+static extension-type-member method ET|bazOptionalNamedImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this, {erroneously-initialized core::int x}) → void
+  ;
+static extension-type-member method ET|get#bazOptionalNamedImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ({x: core::int}) → void
+  return ({core::int x}) → void => self::ET|bazOptionalNamedImplicit(#this, x: x);
+
+
+Extra constant evaluation status:
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///erroneously_initialized_parameters.dart:37:3 -> InstanceConstant(const EN{_Enum.index: 0, _Enum._name: "element"})
+Evaluated: ListLiteral @ org-dartlang-testcase:///erroneously_initialized_parameters.dart:36:6 -> ListConstant(const <EN>[const EN{_Enum.index: 0, _Enum._name: "element"}])
+Extra constant evaluation: evaluated: 41, effectively constant: 2
diff --git a/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.strong.transformed.expect b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.strong.transformed.expect
new file mode 100644
index 0000000..9ca3826
--- /dev/null
+++ b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.strong.transformed.expect
@@ -0,0 +1,246 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:11:33: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   A.optionalPositional([int x = ""]) {}
+//                                 ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:12:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   A.optionalNamed({int x = ""}) {}
+//                            ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:16:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void fooOptionalPositional([int x = ""]) {}
+//                                       ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:17:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void fooOptionalNamed({int x = ""}) {}
+//                                  ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:39:42: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void foobarOptionalPositional([int x = ""]) {}
+//                                          ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:40:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void foobarOptionalNamed({int x = ""}) {}
+//                                     ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:7:41: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+// topLevelOptionalPositionalImplicit([int x]) {}
+//                                         ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:8:36: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+// topLevelOptionalNamedImplicit({int x}) {}
+//                                    ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:18:43: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void fooOptionalPositionalImplicit([int x]) {}
+//                                           ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:19:38: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void fooOptionalNamedImplicit({int x}) {}
+//                                      ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:13:37: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   A.optionalPositionalImplicit([int x]) {}
+//                                     ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:14:32: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   A.optionalNamedImplicit({int x}) {}
+//                                ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:25:43: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void barOptionalPositionalImplicit([int x]) {}
+//                                           ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:26:38: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void barOptionalNamedImplicit({int x}) {}
+//                                      ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:32:43: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void bazOptionalPositionalImplicit([int x]) {}
+//                                           ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:33:38: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void bazOptionalNamedImplicit({int x}) {}
+//                                      ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:41:46: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void foobarOptionalPositionalImplicit([int x]) {}
+//                                              ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:42:41: Error: The parameter 'x' can't have a value of 'null' because of its type 'int', but the implicit default value is 'null'.
+// Try adding either an explicit non-'null' default value or the 'required' modifier.
+//   void foobarOptionalNamedImplicit({int x}) {}
+//                                         ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:5:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// topLevelOptionalPositional([int x = ""]) {}
+//                                     ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:6:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// topLevelOptionalNamed({int x = ""}) {}
+//                                ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:23:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void barOptionalPositional([int x = ""]) {}
+//                                       ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:24:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void barOptionalNamed({int x = ""}) {}
+//                                  ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:30:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void bazOptionalPositional([int x = ""]) {}
+//                                       ^
+//
+// pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:31:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+//   void bazOptionalNamed({int x = ""}) {}
+//                                  ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  constructor optionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:11:33: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  A.optionalPositional([int x = \"\"]) {}
+                                ^"]) → self::A
+    : super core::Object::•() {}
+  constructor optionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:12:28: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  A.optionalNamed({int x = \"\"}) {}
+                           ^"}) → self::A
+    : super core::Object::•() {}
+  constructor optionalPositionalImplicit([erroneously-initialized core::int x = #C1]) → self::A
+    : super core::Object::•() {}
+  constructor optionalNamedImplicit({erroneously-initialized core::int x = #C1}) → self::A
+    : super core::Object::•() {}
+  method fooOptionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:16:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void fooOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void {}
+  method fooOptionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:17:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void fooOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void {}
+  method fooOptionalPositionalImplicit([erroneously-initialized core::int x = #C1]) → void {}
+  method fooOptionalNamedImplicit({erroneously-initialized core::int x = #C1}) → void {}
+}
+class EN extends core::_Enum /*isEnum*/  {
+  enum-element static const field self::EN element = #C4;
+  static const field core::List<self::EN> values = #C5;
+  const synthetic constructor •(core::int #index, core::String #name) → self::EN
+    : super core::_Enum::•(#index, #name)
+    ;
+  method _enumToString() → core::String
+    return "EN.${this.{core::_Enum::_name}{core::String}}";
+  method foobarOptionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:39:42: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void foobarOptionalPositional([int x = \"\"]) {}
+                                         ^"]) → void {}
+  method foobarOptionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:40:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void foobarOptionalNamed({int x = \"\"}) {}
+                                    ^"}) → void {}
+  method foobarOptionalPositionalImplicit([erroneously-initialized core::int x = #C1]) → void {}
+  method foobarOptionalNamedImplicit({erroneously-initialized core::int x = #C1}) → void {}
+}
+extension E on self::A {
+  method barOptionalPositional = self::E|barOptionalPositional;
+  method tearoff barOptionalPositional = self::E|get#barOptionalPositional;
+  method barOptionalNamed = self::E|barOptionalNamed;
+  method tearoff barOptionalNamed = self::E|get#barOptionalNamed;
+  method barOptionalPositionalImplicit = self::E|barOptionalPositionalImplicit;
+  method tearoff barOptionalPositionalImplicit = self::E|get#barOptionalPositionalImplicit;
+  method barOptionalNamedImplicit = self::E|barOptionalNamedImplicit;
+  method tearoff barOptionalNamedImplicit = self::E|get#barOptionalNamedImplicit;
+}
+extension type ET(self::A it) {
+  abstract extension-type-member representation-field get it() → self::A;
+  method bazOptionalPositional = self::ET|bazOptionalPositional;
+  method tearoff bazOptionalPositional = self::ET|get#bazOptionalPositional;
+  method bazOptionalNamed = self::ET|bazOptionalNamed;
+  method tearoff bazOptionalNamed = self::ET|get#bazOptionalNamed;
+  method bazOptionalPositionalImplicit = self::ET|bazOptionalPositionalImplicit;
+  method tearoff bazOptionalPositionalImplicit = self::ET|get#bazOptionalPositionalImplicit;
+  method bazOptionalNamedImplicit = self::ET|bazOptionalNamedImplicit;
+  method tearoff bazOptionalNamedImplicit = self::ET|get#bazOptionalNamedImplicit;
+  constructor • = self::ET|constructor#;
+  constructor tearoff • = self::ET|constructor#_#new#tearOff;
+}
+static method topLevelOptionalPositional([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:5:37: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+topLevelOptionalPositional([int x = \"\"]) {}
+                                    ^"]) → dynamic {}
+static method topLevelOptionalNamed({erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:6:32: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+topLevelOptionalNamed({int x = \"\"}) {}
+                               ^"}) → dynamic {}
+static method topLevelOptionalPositionalImplicit([erroneously-initialized core::int x = #C1]) → dynamic {}
+static method topLevelOptionalNamedImplicit({erroneously-initialized core::int x = #C1}) → dynamic {}
+static extension-member method E|barOptionalPositional(lowered final self::A #this, [erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:23:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void barOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void {}
+static extension-member method E|get#barOptionalPositional(lowered final self::A #this) → ([core::int]) → void
+  return ([core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:23:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void barOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void => self::E|barOptionalPositional(#this, x);
+static extension-member method E|barOptionalNamed(lowered final self::A #this, {erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:24:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void barOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void {}
+static extension-member method E|get#barOptionalNamed(lowered final self::A #this) → ({x: core::int}) → void
+  return ({core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:24:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void barOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void => self::E|barOptionalNamed(#this, x: x);
+static extension-member method E|barOptionalPositionalImplicit(lowered final self::A #this, [erroneously-initialized core::int x = #C1]) → void {}
+static extension-member method E|get#barOptionalPositionalImplicit(lowered final self::A #this) → ([core::int]) → void
+  return ([core::int x = #C1]) → void => self::E|barOptionalPositionalImplicit(#this, x);
+static extension-member method E|barOptionalNamedImplicit(lowered final self::A #this, {erroneously-initialized core::int x = #C1}) → void {}
+static extension-member method E|get#barOptionalNamedImplicit(lowered final self::A #this) → ({x: core::int}) → void
+  return ({core::int x = #C1}) → void => self::E|barOptionalNamedImplicit(#this, x: x);
+static extension-type-member method ET|constructor#(self::A it) → self::ET% /* erasure=self::A, declared=! */ {
+  lowered final self::ET% /* erasure=self::A, declared=! */ #this = it;
+  return #this;
+}
+static extension-type-member synthetic method ET|constructor#_#new#tearOff(self::A it) → self::ET% /* erasure=self::A, declared=! */
+  return self::ET|constructor#(it);
+static extension-type-member method ET|bazOptionalPositional(lowered final self::ET% /* erasure=self::A, declared=! */ #this, [erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:30:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void bazOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void {}
+static extension-type-member method ET|get#bazOptionalPositional(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ([core::int]) → void
+  return ([core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:30:39: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void bazOptionalPositional([int x = \"\"]) {}
+                                      ^"]) → void => self::ET|bazOptionalPositional(#this, x);
+static extension-type-member method ET|bazOptionalNamed(lowered final self::ET% /* erasure=self::A, declared=! */ #this, {erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:31:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void bazOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void {}
+static extension-type-member method ET|get#bazOptionalNamed(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ({x: core::int}) → void
+  return ({core::int x = invalid-expression "pkg/front_end/testcases/general/erroneously_initialized_parameters.dart:31:34: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  void bazOptionalNamed({int x = \"\"}) {}
+                                 ^"}) → void => self::ET|bazOptionalNamed(#this, x: x);
+static extension-type-member method ET|bazOptionalPositionalImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this, [erroneously-initialized core::int x = #C1]) → void {}
+static extension-type-member method ET|get#bazOptionalPositionalImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ([core::int]) → void
+  return ([core::int x = #C1]) → void => self::ET|bazOptionalPositionalImplicit(#this, x);
+static extension-type-member method ET|bazOptionalNamedImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this, {erroneously-initialized core::int x = #C1}) → void {}
+static extension-type-member method ET|get#bazOptionalNamedImplicit(lowered final self::ET% /* erasure=self::A, declared=! */ #this) → ({x: core::int}) → void
+  return ({core::int x = #C1}) → void => self::ET|bazOptionalNamedImplicit(#this, x: x);
+
+constants  {
+  #C1 = null
+  #C2 = 0
+  #C3 = "element"
+  #C4 = self::EN {index:#C2, _name:#C3}
+  #C5 = <self::EN>[#C4]
+}
+
+
+Constructor coverage from constants:
+org-dartlang-testcase:///erroneously_initialized_parameters.dart:
+- EN. (from org-dartlang-testcase:///erroneously_initialized_parameters.dart:36:6)
+- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
+- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.textual_outline.expect b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.textual_outline.expect
new file mode 100644
index 0000000..70deb24
--- /dev/null
+++ b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.textual_outline.expect
@@ -0,0 +1,41 @@
+topLevelOptionalPositional([int x = ""]) {}
+
+topLevelOptionalNamed({int x = ""}) {}
+
+topLevelOptionalPositionalImplicit([int x]) {}
+
+topLevelOptionalNamedImplicit({int x}) {}
+
+class A {
+  A.optionalPositional([int x = ""]) {}
+  A.optionalNamed({int x = ""}) {}
+  A.optionalPositionalImplicit([int x]) {}
+  A.optionalNamedImplicit({int x}) {}
+  void fooOptionalPositional([int x = ""]) {}
+  void fooOptionalNamed({int x = ""}) {}
+  void fooOptionalPositionalImplicit([int x]) {}
+  void fooOptionalNamedImplicit({int x}) {}
+}
+
+extension E on A {
+  void barOptionalPositional([int x = ""]) {}
+  void barOptionalNamed({int x = ""}) {}
+  void barOptionalPositionalImplicit([int x]) {}
+  void barOptionalNamedImplicit({int x}) {}
+}
+
+extension type ET(A it) {
+  void bazOptionalPositional([int x = ""]) {}
+  void bazOptionalNamed({int x = ""}) {}
+  void bazOptionalPositionalImplicit([int x]) {}
+  void bazOptionalNamedImplicit({int x}) {}
+}
+
+enum EN {
+  element;
+
+  void foobarOptionalPositional([int x = ""]) {}
+  void foobarOptionalNamed({int x = ""}) {}
+  void foobarOptionalPositionalImplicit([int x]) {}
+  void foobarOptionalNamedImplicit({int x}) {}
+}
diff --git a/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..aabe68c
--- /dev/null
+++ b/pkg/front_end/testcases/general/erroneously_initialized_parameters.dart.textual_outline_modelled.expect
@@ -0,0 +1,41 @@
+class A {
+  A.optionalNamed({int x = ""}) {}
+  A.optionalNamedImplicit({int x}) {}
+  A.optionalPositional([int x = ""]) {}
+  A.optionalPositionalImplicit([int x]) {}
+  void fooOptionalNamed({int x = ""}) {}
+  void fooOptionalNamedImplicit({int x}) {}
+  void fooOptionalPositional([int x = ""]) {}
+  void fooOptionalPositionalImplicit([int x]) {}
+}
+
+enum EN {
+  element;
+
+  void foobarOptionalPositional([int x = ""]) {}
+  void foobarOptionalNamed({int x = ""}) {}
+  void foobarOptionalPositionalImplicit([int x]) {}
+  void foobarOptionalNamedImplicit({int x}) {}
+}
+
+extension E on A {
+  void barOptionalNamed({int x = ""}) {}
+  void barOptionalNamedImplicit({int x}) {}
+  void barOptionalPositional([int x = ""]) {}
+  void barOptionalPositionalImplicit([int x]) {}
+}
+
+extension type ET(A it) {
+  void bazOptionalNamed({int x = ""}) {}
+  void bazOptionalNamedImplicit({int x}) {}
+  void bazOptionalPositional([int x = ""]) {}
+  void bazOptionalPositionalImplicit([int x]) {}
+}
+
+topLevelOptionalNamed({int x = ""}) {}
+
+topLevelOptionalNamedImplicit({int x}) {}
+
+topLevelOptionalPositional([int x = ""]) {}
+
+topLevelOptionalPositionalImplicit([int x]) {}
diff --git a/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.expect b/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.expect
index 8961377..4a9f1e0 100644
--- a/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.expect
+++ b/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.expect
@@ -42,13 +42,13 @@
   synthetic constructor •() → self::Super
     : super core::Object::•()
     ;
-  method foo({core::num x = #C1, core::String y = #C1}) → dynamic {}
+  method foo({erroneously-initialized core::num x = #C1, erroneously-initialized core::String y = #C1}) → dynamic {}
 }
 class Sub extends self::Super {
   synthetic constructor •() → self::Sub
     : super self::Super::•()
     ;
-  erroneous method foo({core::num x = #C1, core::Symbol x2 = #C1, core::bool x3 = #C1}) → dynamic {}
+  erroneous method foo({erroneously-initialized core::num x = #C1, erroneously-initialized core::Symbol x2 = #C1, erroneously-initialized core::bool x3 = #C1}) → dynamic {}
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.modular.expect b/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.modular.expect
index 8961377..4a9f1e0 100644
--- a/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.modular.expect
@@ -42,13 +42,13 @@
   synthetic constructor •() → self::Super
     : super core::Object::•()
     ;
-  method foo({core::num x = #C1, core::String y = #C1}) → dynamic {}
+  method foo({erroneously-initialized core::num x = #C1, erroneously-initialized core::String y = #C1}) → dynamic {}
 }
 class Sub extends self::Super {
   synthetic constructor •() → self::Sub
     : super self::Super::•()
     ;
-  erroneous method foo({core::num x = #C1, core::Symbol x2 = #C1, core::bool x3 = #C1}) → dynamic {}
+  erroneous method foo({erroneously-initialized core::num x = #C1, erroneously-initialized core::Symbol x2 = #C1, erroneously-initialized core::bool x3 = #C1}) → dynamic {}
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.outline.expect b/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.outline.expect
index 4e1c6a1..cc5ef92 100644
--- a/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.outline.expect
@@ -41,12 +41,12 @@
 class Super extends core::Object {
   synthetic constructor •() → self::Super
     ;
-  method foo({core::num x = null, core::String y = null}) → dynamic
+  method foo({erroneously-initialized core::num x = null, erroneously-initialized core::String y = null}) → dynamic
     ;
 }
 class Sub extends self::Super {
   synthetic constructor •() → self::Sub
     ;
-  erroneous method foo({core::num x = null, core::Symbol x2 = null, core::bool x3 = null}) → dynamic
+  erroneous method foo({erroneously-initialized core::num x = null, erroneously-initialized core::Symbol x2 = null, erroneously-initialized core::bool x3 = null}) → dynamic
     ;
 }
diff --git a/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.transformed.expect b/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.transformed.expect
index 8961377..4a9f1e0 100644
--- a/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/invalid_override_named_parameter.dart.strong.transformed.expect
@@ -42,13 +42,13 @@
   synthetic constructor •() → self::Super
     : super core::Object::•()
     ;
-  method foo({core::num x = #C1, core::String y = #C1}) → dynamic {}
+  method foo({erroneously-initialized core::num x = #C1, erroneously-initialized core::String y = #C1}) → dynamic {}
 }
 class Sub extends self::Super {
   synthetic constructor •() → self::Sub
     : super self::Super::•()
     ;
-  erroneous method foo({core::num x = #C1, core::Symbol x2 = #C1, core::bool x3 = #C1}) → dynamic {}
+  erroneous method foo({erroneously-initialized core::num x = #C1, erroneously-initialized core::Symbol x2 = #C1, erroneously-initialized core::bool x3 = #C1}) → dynamic {}
 }
 
 constants  {
diff --git a/pkg/front_end/testcases/general/issue55152_3.dart.strong.expect b/pkg/front_end/testcases/general/issue55152_3.dart.strong.expect
index 7e0aa56..3535285 100644
--- a/pkg/front_end/testcases/general/issue55152_3.dart.strong.expect
+++ b/pkg/front_end/testcases/general/issue55152_3.dart.strong.expect
@@ -12,7 +12,7 @@
 typedef Alias<X extends core::Object? = dynamic> = self::Const<X%>;
 typedef Alias2<X extends core::Object? = dynamic> = self::Const<X%>;
 class Class extends core::Object /*hasConstConstructor*/  {
-  const constructor named({dynamic x = invalid-expression "pkg/front_end/testcases/general/issue55152_3.dart:11:21: Error: Not a constant expression.
+  const constructor named({erroneously-initialized dynamic x = invalid-expression "pkg/front_end/testcases/general/issue55152_3.dart:11:21: Error: Not a constant expression.
       {dynamic x = (({dynamic y = const [Alias2.impl()]}) =>
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"}) → self::Class
     : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/issue55152_3.dart.strong.modular.expect b/pkg/front_end/testcases/general/issue55152_3.dart.strong.modular.expect
index 7e0aa56..3535285 100644
--- a/pkg/front_end/testcases/general/issue55152_3.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/general/issue55152_3.dart.strong.modular.expect
@@ -12,7 +12,7 @@
 typedef Alias<X extends core::Object? = dynamic> = self::Const<X%>;
 typedef Alias2<X extends core::Object? = dynamic> = self::Const<X%>;
 class Class extends core::Object /*hasConstConstructor*/  {
-  const constructor named({dynamic x = invalid-expression "pkg/front_end/testcases/general/issue55152_3.dart:11:21: Error: Not a constant expression.
+  const constructor named({erroneously-initialized dynamic x = invalid-expression "pkg/front_end/testcases/general/issue55152_3.dart:11:21: Error: Not a constant expression.
       {dynamic x = (({dynamic y = const [Alias2.impl()]}) =>
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"}) → self::Class
     : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/issue55152_3.dart.strong.outline.expect b/pkg/front_end/testcases/general/issue55152_3.dart.strong.outline.expect
index 7e0aa56..3535285 100644
--- a/pkg/front_end/testcases/general/issue55152_3.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/general/issue55152_3.dart.strong.outline.expect
@@ -12,7 +12,7 @@
 typedef Alias<X extends core::Object? = dynamic> = self::Const<X%>;
 typedef Alias2<X extends core::Object? = dynamic> = self::Const<X%>;
 class Class extends core::Object /*hasConstConstructor*/  {
-  const constructor named({dynamic x = invalid-expression "pkg/front_end/testcases/general/issue55152_3.dart:11:21: Error: Not a constant expression.
+  const constructor named({erroneously-initialized dynamic x = invalid-expression "pkg/front_end/testcases/general/issue55152_3.dart:11:21: Error: Not a constant expression.
       {dynamic x = (({dynamic y = const [Alias2.impl()]}) =>
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"}) → self::Class
     : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/issue55152_3.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue55152_3.dart.strong.transformed.expect
index 7e0aa56..3535285 100644
--- a/pkg/front_end/testcases/general/issue55152_3.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/issue55152_3.dart.strong.transformed.expect
@@ -12,7 +12,7 @@
 typedef Alias<X extends core::Object? = dynamic> = self::Const<X%>;
 typedef Alias2<X extends core::Object? = dynamic> = self::Const<X%>;
 class Class extends core::Object /*hasConstConstructor*/  {
-  const constructor named({dynamic x = invalid-expression "pkg/front_end/testcases/general/issue55152_3.dart:11:21: Error: Not a constant expression.
+  const constructor named({erroneously-initialized dynamic x = invalid-expression "pkg/front_end/testcases/general/issue55152_3.dart:11:21: Error: Not a constant expression.
       {dynamic x = (({dynamic y = const [Alias2.impl()]}) =>
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"}) → self::Class
     : super core::Object::•()
diff --git a/pkg/front_end/testcases/general/records_opt_out.dart.strong.expect b/pkg/front_end/testcases/general/records_opt_out.dart.strong.expect
index f1bb7a3..e6ddd3f 100644
--- a/pkg/front_end/testcases/general/records_opt_out.dart.strong.expect
+++ b/pkg/front_end/testcases/general/records_opt_out.dart.strong.expect
@@ -85,13 +85,13 @@
 
 static method method1(core::int a, core::String b) → invalid-type
   return invalid-expression "This requires the experimental 'records' language feature to be enabled.";
-static method method2([invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::int
+static method method2([erroneously-initialized invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::int
   return record{<invalid>}.$1;
-static method method3([invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::String
+static method method3([erroneously-initialized invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::String
   return record{<invalid>}.$2;
 static method method4(core::int a, core::String b) → invalid-type
   return invalid-expression "This requires the experimental 'records' language feature to be enabled.";
-static method method5([invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::int
+static method method5([erroneously-initialized invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::int
   return record{<invalid>}.a;
-static method method6([invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::String
+static method method6([erroneously-initialized invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::String
   return record{<invalid>}.b;
diff --git a/pkg/front_end/testcases/general/records_opt_out.dart.strong.modular.expect b/pkg/front_end/testcases/general/records_opt_out.dart.strong.modular.expect
index f1bb7a3..e6ddd3f 100644
--- a/pkg/front_end/testcases/general/records_opt_out.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/general/records_opt_out.dart.strong.modular.expect
@@ -85,13 +85,13 @@
 
 static method method1(core::int a, core::String b) → invalid-type
   return invalid-expression "This requires the experimental 'records' language feature to be enabled.";
-static method method2([invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::int
+static method method2([erroneously-initialized invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::int
   return record{<invalid>}.$1;
-static method method3([invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::String
+static method method3([erroneously-initialized invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::String
   return record{<invalid>}.$2;
 static method method4(core::int a, core::String b) → invalid-type
   return invalid-expression "This requires the experimental 'records' language feature to be enabled.";
-static method method5([invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::int
+static method method5([erroneously-initialized invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::int
   return record{<invalid>}.a;
-static method method6([invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::String
+static method method6([erroneously-initialized invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::String
   return record{<invalid>}.b;
diff --git a/pkg/front_end/testcases/general/records_opt_out.dart.strong.transformed.expect b/pkg/front_end/testcases/general/records_opt_out.dart.strong.transformed.expect
index f1bb7a3..e6ddd3f 100644
--- a/pkg/front_end/testcases/general/records_opt_out.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/records_opt_out.dart.strong.transformed.expect
@@ -85,13 +85,13 @@
 
 static method method1(core::int a, core::String b) → invalid-type
   return invalid-expression "This requires the experimental 'records' language feature to be enabled.";
-static method method2([invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::int
+static method method2([erroneously-initialized invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::int
   return record{<invalid>}.$1;
-static method method3([invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::String
+static method method3([erroneously-initialized invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::String
   return record{<invalid>}.$2;
 static method method4(core::int a, core::String b) → invalid-type
   return invalid-expression "This requires the experimental 'records' language feature to be enabled.";
-static method method5([invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::int
+static method method5([erroneously-initialized invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::int
   return record{<invalid>}.a;
-static method method6([invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::String
+static method method6([erroneously-initialized invalid-type record = invalid-expression "This requires the experimental 'records' language feature to be enabled."]) → core::String
   return record{<invalid>}.b;
diff --git a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.expect b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.expect
index 7871712..a0d6425 100644
--- a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.expect
@@ -11,7 +11,7 @@
 
 class Foo extends core::Object {
   field core::int x = 1;
-  constructor •([core::int x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  constructor •([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   Foo([this.x = /*error:INVALID_ASSIGNMENT*/ \"1\"]);
                                              ^"]) → self::Foo
     : self::Foo::x = x, super core::Object::•()
diff --git a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.modular.expect b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.modular.expect
index 7871712..a0d6425 100644
--- a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.modular.expect
@@ -11,7 +11,7 @@
 
 class Foo extends core::Object {
   field core::int x = 1;
-  constructor •([core::int x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  constructor •([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   Foo([this.x = /*error:INVALID_ASSIGNMENT*/ \"1\"]);
                                              ^"]) → self::Foo
     : self::Foo::x = x, super core::Object::•()
diff --git a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.outline.expect b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.outline.expect
index 32c1d33..fec0132 100644
--- a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.outline.expect
@@ -11,7 +11,7 @@
 
 class Foo extends core::Object {
   field core::int x;
-  constructor •([core::int x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  constructor •([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   Foo([this.x = /*error:INVALID_ASSIGNMENT*/ \"1\"]);
                                              ^" in "1" as{TypeError} core::int]) → self::Foo
     ;
diff --git a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.transformed.expect
index 7871712..a0d6425 100644
--- a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.strong.transformed.expect
@@ -11,7 +11,7 @@
 
 class Foo extends core::Object {
   field core::int x = 1;
-  constructor •([core::int x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+  constructor •([erroneously-initialized core::int x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
   Foo([this.x = /*error:INVALID_ASSIGNMENT*/ \"1\"]);
                                              ^"]) → self::Foo
     : self::Foo::x = x, super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/issue40954.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue40954.dart.strong.expect
index f40ac3c..3ddcea0 100644
--- a/pkg/front_end/testcases/nnbd/issue40954.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue40954.dart.strong.expect
@@ -50,13 +50,13 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  static method test1(dynamic v, [self::A a = #C1]) → void {}
-  static method test2(dynamic v, {self::A a = #C1}) → void {}
-  method test11(dynamic v, [self::A a = #C1]) → void {}
-  method test22(dynamic v, {self::A a = #C1}) → void {}
+  static method test1(dynamic v, [erroneously-initialized self::A a = #C1]) → void {}
+  static method test2(dynamic v, {erroneously-initialized self::A a = #C1}) → void {}
+  method test11(dynamic v, [erroneously-initialized self::A a = #C1]) → void {}
+  method test22(dynamic v, {erroneously-initialized self::A a = #C1}) → void {}
 }
-static method test1(dynamic v, [self::A a = #C1]) → void {}
-static method test2(dynamic v, {self::A a = #C1}) → void {}
+static method test1(dynamic v, [erroneously-initialized self::A a = #C1]) → void {}
+static method test2(dynamic v, {erroneously-initialized self::A a = #C1}) → void {}
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/nnbd/issue40954.dart.strong.modular.expect b/pkg/front_end/testcases/nnbd/issue40954.dart.strong.modular.expect
index f40ac3c..3ddcea0 100644
--- a/pkg/front_end/testcases/nnbd/issue40954.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/nnbd/issue40954.dart.strong.modular.expect
@@ -50,13 +50,13 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  static method test1(dynamic v, [self::A a = #C1]) → void {}
-  static method test2(dynamic v, {self::A a = #C1}) → void {}
-  method test11(dynamic v, [self::A a = #C1]) → void {}
-  method test22(dynamic v, {self::A a = #C1}) → void {}
+  static method test1(dynamic v, [erroneously-initialized self::A a = #C1]) → void {}
+  static method test2(dynamic v, {erroneously-initialized self::A a = #C1}) → void {}
+  method test11(dynamic v, [erroneously-initialized self::A a = #C1]) → void {}
+  method test22(dynamic v, {erroneously-initialized self::A a = #C1}) → void {}
 }
-static method test1(dynamic v, [self::A a = #C1]) → void {}
-static method test2(dynamic v, {self::A a = #C1}) → void {}
+static method test1(dynamic v, [erroneously-initialized self::A a = #C1]) → void {}
+static method test2(dynamic v, {erroneously-initialized self::A a = #C1}) → void {}
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/nnbd/issue40954.dart.strong.outline.expect b/pkg/front_end/testcases/nnbd/issue40954.dart.strong.outline.expect
index ca98828..d94ab27 100644
--- a/pkg/front_end/testcases/nnbd/issue40954.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue40954.dart.strong.outline.expect
@@ -48,18 +48,18 @@
 class C extends core::Object {
   synthetic constructor •() → self::C
     ;
-  static method test1(dynamic v, [self::A a]) → void
+  static method test1(dynamic v, [erroneously-initialized self::A a]) → void
     ;
-  static method test2(dynamic v, {self::A a}) → void
+  static method test2(dynamic v, {erroneously-initialized self::A a}) → void
     ;
-  method test11(dynamic v, [self::A a = null]) → void
+  method test11(dynamic v, [erroneously-initialized self::A a = null]) → void
     ;
-  method test22(dynamic v, {self::A a = null}) → void
+  method test22(dynamic v, {erroneously-initialized self::A a = null}) → void
     ;
 }
-static method test1(dynamic v, [self::A a]) → void
+static method test1(dynamic v, [erroneously-initialized self::A a]) → void
   ;
-static method test2(dynamic v, {self::A a}) → void
+static method test2(dynamic v, {erroneously-initialized self::A a}) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/nnbd/issue40954.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue40954.dart.strong.transformed.expect
index f40ac3c..3ddcea0 100644
--- a/pkg/front_end/testcases/nnbd/issue40954.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue40954.dart.strong.transformed.expect
@@ -50,13 +50,13 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  static method test1(dynamic v, [self::A a = #C1]) → void {}
-  static method test2(dynamic v, {self::A a = #C1}) → void {}
-  method test11(dynamic v, [self::A a = #C1]) → void {}
-  method test22(dynamic v, {self::A a = #C1}) → void {}
+  static method test1(dynamic v, [erroneously-initialized self::A a = #C1]) → void {}
+  static method test2(dynamic v, {erroneously-initialized self::A a = #C1}) → void {}
+  method test11(dynamic v, [erroneously-initialized self::A a = #C1]) → void {}
+  method test22(dynamic v, {erroneously-initialized self::A a = #C1}) → void {}
 }
-static method test1(dynamic v, [self::A a = #C1]) → void {}
-static method test2(dynamic v, {self::A a = #C1}) → void {}
+static method test1(dynamic v, [erroneously-initialized self::A a = #C1]) → void {}
+static method test2(dynamic v, {erroneously-initialized self::A a = #C1}) → void {}
 static method main() → dynamic {}
 
 constants  {
diff --git a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.expect
index 52d01f2..2cd432c 100644
--- a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.expect
@@ -103,16 +103,16 @@
 
 class A extends core::Object {
   final field core::int i;
-  constructor constructor1([core::int i = #C1]) → self::A
+  constructor constructor1([erroneously-initialized core::int i = #C1]) → self::A
     : self::A::i = i, super core::Object::•()
     ;
-  constructor constructor2({core::int i = #C1}) → self::A
+  constructor constructor2({erroneously-initialized core::int i = #C1}) → self::A
     : self::A::i = i, super core::Object::•()
     ;
-  constructor constructor3([core::int i = #C1]) → self::A
+  constructor constructor3([erroneously-initialized core::int i = #C1]) → self::A
     : self::A::i = i, super core::Object::•()
     ;
-  constructor constructor4({core::int i = #C1}) → self::A
+  constructor constructor4({erroneously-initialized core::int i = #C1}) → self::A
     : self::A::i = i, super core::Object::•()
     ;
   constructor constructor5([core::int? i = #C1]) → self::A
@@ -140,12 +140,12 @@
     return new self::A::constructor6(i: i);
   static factory factory7({required core::int i}) → self::A /* redirection-target: self::A::constructor7 */
     return new self::A::constructor7(i: i);
-  static factory factory8([core::int i = #C1]) → self::A
+  static factory factory8([erroneously-initialized core::int i = #C1]) → self::A
     return new self::A::constructor3();
-  static factory factory9({core::int i = #C1}) → self::A
+  static factory factory9({erroneously-initialized core::int i = #C1}) → self::A
     return new self::A::constructor4();
-  method method3([core::int i = #C1]) → dynamic {}
-  method method4({core::int i = #C1}) → dynamic {}
+  method method3([erroneously-initialized core::int i = #C1]) → dynamic {}
+  method method4({erroneously-initialized core::int i = #C1}) → dynamic {}
   method method5([core::int? i = #C1]) → dynamic {}
   method method6({core::int? i = #C1}) → dynamic {}
   method method7({required core::int i}) → dynamic {}
@@ -165,16 +165,16 @@
 }
 class C extends core::Object implements self::B {
   field core::int i;
-  constructor constructor1([core::int i = #C1]) → self::C
+  constructor constructor1([erroneously-initialized core::int i = #C1]) → self::C
     : self::C::i = i, super core::Object::•()
     ;
-  constructor constructor2({core::int i = #C1}) → self::C
+  constructor constructor2({erroneously-initialized core::int i = #C1}) → self::C
     : self::C::i = i, super core::Object::•()
     ;
-  constructor constructor3([core::int i = #C1]) → self::C
+  constructor constructor3([erroneously-initialized core::int i = #C1]) → self::C
     : self::C::i = i, super core::Object::•()
     ;
-  constructor constructor4({core::int i = #C1}) → self::C
+  constructor constructor4({erroneously-initialized core::int i = #C1}) → self::C
     : self::C::i = i, super core::Object::•()
     ;
   constructor constructor5([core::int? i = #C1]) → self::C
@@ -200,12 +200,12 @@
     return new self::C::constructor6(i: i);
   static factory factory7({required core::int i}) → self::C /* redirection-target: self::C::constructor7 */
     return new self::C::constructor7(i: i);
-  static factory factory8([core::int i = #C1]) → self::C
+  static factory factory8([erroneously-initialized core::int i = #C1]) → self::C
     return new self::C::constructor3();
-  static factory factory9({core::int i = #C1}) → self::C
+  static factory factory9({erroneously-initialized core::int i = #C1}) → self::C
     return new self::C::constructor4();
-  method method3([core::int i = #C1]) → dynamic {}
-  method method4({core::int i = #C1}) → dynamic {}
+  method method3([erroneously-initialized core::int i = #C1]) → dynamic {}
+  method method4({erroneously-initialized core::int i = #C1}) → dynamic {}
   method method5([core::int? i = #C1]) → dynamic {}
   method method6({core::int? i = #C1}) → dynamic {}
   method method7({required core::int i}) → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.modular.expect b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.modular.expect
index 52d01f2..2cd432c 100644
--- a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.modular.expect
@@ -103,16 +103,16 @@
 
 class A extends core::Object {
   final field core::int i;
-  constructor constructor1([core::int i = #C1]) → self::A
+  constructor constructor1([erroneously-initialized core::int i = #C1]) → self::A
     : self::A::i = i, super core::Object::•()
     ;
-  constructor constructor2({core::int i = #C1}) → self::A
+  constructor constructor2({erroneously-initialized core::int i = #C1}) → self::A
     : self::A::i = i, super core::Object::•()
     ;
-  constructor constructor3([core::int i = #C1]) → self::A
+  constructor constructor3([erroneously-initialized core::int i = #C1]) → self::A
     : self::A::i = i, super core::Object::•()
     ;
-  constructor constructor4({core::int i = #C1}) → self::A
+  constructor constructor4({erroneously-initialized core::int i = #C1}) → self::A
     : self::A::i = i, super core::Object::•()
     ;
   constructor constructor5([core::int? i = #C1]) → self::A
@@ -140,12 +140,12 @@
     return new self::A::constructor6(i: i);
   static factory factory7({required core::int i}) → self::A /* redirection-target: self::A::constructor7 */
     return new self::A::constructor7(i: i);
-  static factory factory8([core::int i = #C1]) → self::A
+  static factory factory8([erroneously-initialized core::int i = #C1]) → self::A
     return new self::A::constructor3();
-  static factory factory9({core::int i = #C1}) → self::A
+  static factory factory9({erroneously-initialized core::int i = #C1}) → self::A
     return new self::A::constructor4();
-  method method3([core::int i = #C1]) → dynamic {}
-  method method4({core::int i = #C1}) → dynamic {}
+  method method3([erroneously-initialized core::int i = #C1]) → dynamic {}
+  method method4({erroneously-initialized core::int i = #C1}) → dynamic {}
   method method5([core::int? i = #C1]) → dynamic {}
   method method6({core::int? i = #C1}) → dynamic {}
   method method7({required core::int i}) → dynamic {}
@@ -165,16 +165,16 @@
 }
 class C extends core::Object implements self::B {
   field core::int i;
-  constructor constructor1([core::int i = #C1]) → self::C
+  constructor constructor1([erroneously-initialized core::int i = #C1]) → self::C
     : self::C::i = i, super core::Object::•()
     ;
-  constructor constructor2({core::int i = #C1}) → self::C
+  constructor constructor2({erroneously-initialized core::int i = #C1}) → self::C
     : self::C::i = i, super core::Object::•()
     ;
-  constructor constructor3([core::int i = #C1]) → self::C
+  constructor constructor3([erroneously-initialized core::int i = #C1]) → self::C
     : self::C::i = i, super core::Object::•()
     ;
-  constructor constructor4({core::int i = #C1}) → self::C
+  constructor constructor4({erroneously-initialized core::int i = #C1}) → self::C
     : self::C::i = i, super core::Object::•()
     ;
   constructor constructor5([core::int? i = #C1]) → self::C
@@ -200,12 +200,12 @@
     return new self::C::constructor6(i: i);
   static factory factory7({required core::int i}) → self::C /* redirection-target: self::C::constructor7 */
     return new self::C::constructor7(i: i);
-  static factory factory8([core::int i = #C1]) → self::C
+  static factory factory8([erroneously-initialized core::int i = #C1]) → self::C
     return new self::C::constructor3();
-  static factory factory9({core::int i = #C1}) → self::C
+  static factory factory9({erroneously-initialized core::int i = #C1}) → self::C
     return new self::C::constructor4();
-  method method3([core::int i = #C1]) → dynamic {}
-  method method4({core::int i = #C1}) → dynamic {}
+  method method3([erroneously-initialized core::int i = #C1]) → dynamic {}
+  method method4({erroneously-initialized core::int i = #C1}) → dynamic {}
   method method5([core::int? i = #C1]) → dynamic {}
   method method6({core::int? i = #C1}) → dynamic {}
   method method7({required core::int i}) → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.outline.expect b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.outline.expect
index 2731adf..bcec2d4 100644
--- a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.outline.expect
@@ -87,13 +87,13 @@
 
 class A extends core::Object {
   final field core::int i;
-  constructor constructor1([core::int i = null]) → self::A
+  constructor constructor1([erroneously-initialized core::int i = null]) → self::A
     ;
-  constructor constructor2({core::int i = null}) → self::A
+  constructor constructor2({erroneously-initialized core::int i = null}) → self::A
     ;
-  constructor constructor3([core::int i = null]) → self::A
+  constructor constructor3([erroneously-initialized core::int i = null]) → self::A
     ;
-  constructor constructor4({core::int i = null}) → self::A
+  constructor constructor4({erroneously-initialized core::int i = null}) → self::A
     ;
   constructor constructor5([core::int? i = null]) → self::A
     ;
@@ -113,13 +113,13 @@
     return new self::A::constructor6(i: i);
   static factory factory7({required core::int i}) → self::A /* redirection-target: self::A::constructor7 */
     return new self::A::constructor7(i: i);
-  static factory factory8([core::int i = null]) → self::A
+  static factory factory8([erroneously-initialized core::int i = null]) → self::A
     ;
-  static factory factory9({core::int i = null}) → self::A
+  static factory factory9({erroneously-initialized core::int i = null}) → self::A
     ;
-  method method3([core::int i = null]) → dynamic
+  method method3([erroneously-initialized core::int i = null]) → dynamic
     ;
-  method method4({core::int i = null}) → dynamic
+  method method4({erroneously-initialized core::int i = null}) → dynamic
     ;
   method method5([core::int? i = null]) → dynamic
     ;
@@ -142,13 +142,13 @@
 }
 class C extends core::Object implements self::B {
   field core::int i;
-  constructor constructor1([core::int i = null]) → self::C
+  constructor constructor1([erroneously-initialized core::int i = null]) → self::C
     ;
-  constructor constructor2({core::int i = null}) → self::C
+  constructor constructor2({erroneously-initialized core::int i = null}) → self::C
     ;
-  constructor constructor3([core::int i = null]) → self::C
+  constructor constructor3([erroneously-initialized core::int i = null]) → self::C
     ;
-  constructor constructor4({core::int i = null}) → self::C
+  constructor constructor4({erroneously-initialized core::int i = null}) → self::C
     ;
   constructor constructor5([core::int? i = null]) → self::C
     ;
@@ -166,13 +166,13 @@
     return new self::C::constructor6(i: i);
   static factory factory7({required core::int i}) → self::C /* redirection-target: self::C::constructor7 */
     return new self::C::constructor7(i: i);
-  static factory factory8([core::int i = null]) → self::C
+  static factory factory8([erroneously-initialized core::int i = null]) → self::C
     ;
-  static factory factory9({core::int i = null}) → self::C
+  static factory factory9({erroneously-initialized core::int i = null}) → self::C
     ;
-  method method3([core::int i = null]) → dynamic
+  method method3([erroneously-initialized core::int i = null]) → dynamic
     ;
-  method method4({core::int i = null}) → dynamic
+  method method4({erroneously-initialized core::int i = null}) → dynamic
     ;
   method method5([core::int? i = null]) → dynamic
     ;
diff --git a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.transformed.expect
index 7b529ce..73ce2ce 100644
--- a/pkg/front_end/testcases/nnbd/issue42362.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42362.dart.strong.transformed.expect
@@ -103,16 +103,16 @@
 
 class A extends core::Object {
   final field core::int i;
-  constructor constructor1([core::int i = #C1]) → self::A
+  constructor constructor1([erroneously-initialized core::int i = #C1]) → self::A
     : self::A::i = i, super core::Object::•()
     ;
-  constructor constructor2({core::int i = #C1}) → self::A
+  constructor constructor2({erroneously-initialized core::int i = #C1}) → self::A
     : self::A::i = i, super core::Object::•()
     ;
-  constructor constructor3([core::int i = #C1]) → self::A
+  constructor constructor3([erroneously-initialized core::int i = #C1]) → self::A
     : self::A::i = i, super core::Object::•()
     ;
-  constructor constructor4({core::int i = #C1}) → self::A
+  constructor constructor4({erroneously-initialized core::int i = #C1}) → self::A
     : self::A::i = i, super core::Object::•()
     ;
   constructor constructor5([core::int? i = #C1]) → self::A
@@ -140,12 +140,12 @@
     return new self::A::constructor6(i: i);
   static factory factory7({required core::int i}) → self::A /* redirection-target: self::A::constructor7 */
     return new self::A::constructor7(i: i);
-  static factory factory8([core::int i = #C1]) → self::A
+  static factory factory8([erroneously-initialized core::int i = #C1]) → self::A
     return new self::A::constructor3();
-  static factory factory9({core::int i = #C1}) → self::A
+  static factory factory9({erroneously-initialized core::int i = #C1}) → self::A
     return new self::A::constructor4();
-  method method3([core::int i = #C1]) → dynamic {}
-  method method4({core::int i = #C1}) → dynamic {}
+  method method3([erroneously-initialized core::int i = #C1]) → dynamic {}
+  method method4({erroneously-initialized core::int i = #C1}) → dynamic {}
   method method5([core::int? i = #C1]) → dynamic {}
   method method6({core::int? i = #C1}) → dynamic {}
   method method7({required core::int i}) → dynamic {}
@@ -165,16 +165,16 @@
 }
 class C extends core::Object implements self::B {
   field core::int i;
-  constructor constructor1([core::int i = #C1]) → self::C
+  constructor constructor1([erroneously-initialized core::int i = #C1]) → self::C
     : self::C::i = i, super core::Object::•()
     ;
-  constructor constructor2({core::int i = #C1}) → self::C
+  constructor constructor2({erroneously-initialized core::int i = #C1}) → self::C
     : self::C::i = i, super core::Object::•()
     ;
-  constructor constructor3([core::int i = #C1]) → self::C
+  constructor constructor3([erroneously-initialized core::int i = #C1]) → self::C
     : self::C::i = i, super core::Object::•()
     ;
-  constructor constructor4({core::int i = #C1}) → self::C
+  constructor constructor4({erroneously-initialized core::int i = #C1}) → self::C
     : self::C::i = i, super core::Object::•()
     ;
   constructor constructor5([core::int? i = #C1]) → self::C
@@ -200,12 +200,12 @@
     return new self::C::constructor6(i: i);
   static factory factory7({required core::int i}) → self::C /* redirection-target: self::C::constructor7 */
     return new self::C::constructor7(i: i);
-  static factory factory8([core::int i = #C1]) → self::C
+  static factory factory8([erroneously-initialized core::int i = #C1]) → self::C
     return new self::C::constructor3();
-  static factory factory9({core::int i = #C1}) → self::C
+  static factory factory9({erroneously-initialized core::int i = #C1}) → self::C
     return new self::C::constructor4();
-  method method3([core::int i = #C1]) → dynamic {}
-  method method4({core::int i = #C1}) → dynamic {}
+  method method3([erroneously-initialized core::int i = #C1]) → dynamic {}
+  method method4({erroneously-initialized core::int i = #C1}) → dynamic {}
   method method5([core::int? i = #C1]) → dynamic {}
   method method6({core::int? i = #C1}) → dynamic {}
   method method7({required core::int i}) → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.expect
index 2dc4e36..207c98c 100644
--- a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.expect
@@ -16,10 +16,10 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor gen({core::int i = #C1}) → self::C
+  constructor gen({erroneously-initialized core::int i = #C1}) → self::C
     : super core::Object::•()
     ;
-  static factory fact({core::int i = #C1}) → self::C {
+  static factory fact({erroneously-initialized core::int i = #C1}) → self::C {
     return new self::C::gen();
   }
   static factory redirect({core::int i = #C1}) → self::C /* redirection-target: self::C::gen */
diff --git a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.modular.expect b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.modular.expect
index 2dc4e36..207c98c 100644
--- a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.modular.expect
@@ -16,10 +16,10 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor gen({core::int i = #C1}) → self::C
+  constructor gen({erroneously-initialized core::int i = #C1}) → self::C
     : super core::Object::•()
     ;
-  static factory fact({core::int i = #C1}) → self::C {
+  static factory fact({erroneously-initialized core::int i = #C1}) → self::C {
     return new self::C::gen();
   }
   static factory redirect({core::int i = #C1}) → self::C /* redirection-target: self::C::gen */
diff --git a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.outline.expect b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.outline.expect
index cd81133..a190091 100644
--- a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.outline.expect
@@ -16,9 +16,9 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor gen({core::int i = null}) → self::C
+  constructor gen({erroneously-initialized core::int i = null}) → self::C
     ;
-  static factory fact({core::int i = null}) → self::C
+  static factory fact({erroneously-initialized core::int i = null}) → self::C
     ;
   static factory redirect({core::int i = null}) → self::C /* redirection-target: self::C::gen */
     return new self::C::gen(i: i);
diff --git a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.transformed.expect
index 2dc4e36..207c98c 100644
--- a/pkg/front_end/testcases/nnbd/issue43276.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43276.dart.strong.transformed.expect
@@ -16,10 +16,10 @@
 import "dart:core" as core;
 
 class C extends core::Object {
-  constructor gen({core::int i = #C1}) → self::C
+  constructor gen({erroneously-initialized core::int i = #C1}) → self::C
     : super core::Object::•()
     ;
-  static factory fact({core::int i = #C1}) → self::C {
+  static factory fact({erroneously-initialized core::int i = #C1}) → self::C {
     return new self::C::gen();
   }
   static factory redirect({core::int i = #C1}) → self::C /* redirection-target: self::C::gen */
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.expect b/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.expect
index 7b4e937..74b395d 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.expect
@@ -27,10 +27,10 @@
 
 part non_nullable_optional_part.dart;
 static method main() → dynamic {}
-static method method1({core::int a = #C1}) → dynamic {}
-static method method2([core::int a = #C1]) → dynamic {}
-static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method3({core::int a = #C1}) → dynamic {}
-static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method4([core::int a = #C1]) → dynamic {}
+static method method1({erroneously-initialized core::int a = #C1}) → dynamic {}
+static method method2([erroneously-initialized core::int a = #C1]) → dynamic {}
+static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method3({erroneously-initialized core::int a = #C1}) → dynamic {}
+static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method4([erroneously-initialized core::int a = #C1]) → dynamic {}
 
 constants  {
   #C1 = null
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.modular.expect b/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.modular.expect
index 7b4e937..74b395d 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.modular.expect
@@ -27,10 +27,10 @@
 
 part non_nullable_optional_part.dart;
 static method main() → dynamic {}
-static method method1({core::int a = #C1}) → dynamic {}
-static method method2([core::int a = #C1]) → dynamic {}
-static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method3({core::int a = #C1}) → dynamic {}
-static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method4([core::int a = #C1]) → dynamic {}
+static method method1({erroneously-initialized core::int a = #C1}) → dynamic {}
+static method method2([erroneously-initialized core::int a = #C1]) → dynamic {}
+static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method3({erroneously-initialized core::int a = #C1}) → dynamic {}
+static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method4([erroneously-initialized core::int a = #C1]) → dynamic {}
 
 constants  {
   #C1 = null
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.outline.expect b/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.outline.expect
index 40304f6..032f8a9 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.outline.expect
@@ -28,11 +28,11 @@
 part non_nullable_optional_part.dart;
 static method main() → dynamic
   ;
-static method method1({core::int a}) → dynamic
+static method method1({erroneously-initialized core::int a}) → dynamic
   ;
-static method method2([core::int a]) → dynamic
+static method method2([erroneously-initialized core::int a]) → dynamic
   ;
-static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method3({core::int a}) → dynamic
+static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method3({erroneously-initialized core::int a}) → dynamic
   ;
-static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method4([core::int a]) → dynamic
+static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method4([erroneously-initialized core::int a]) → dynamic
   ;
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.transformed.expect
index 7b4e937..74b395d 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_optional.dart.strong.transformed.expect
@@ -27,10 +27,10 @@
 
 part non_nullable_optional_part.dart;
 static method main() → dynamic {}
-static method method1({core::int a = #C1}) → dynamic {}
-static method method2([core::int a = #C1]) → dynamic {}
-static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method3({core::int a = #C1}) → dynamic {}
-static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method4([core::int a = #C1]) → dynamic {}
+static method method1({erroneously-initialized core::int a = #C1}) → dynamic {}
+static method method2([erroneously-initialized core::int a = #C1]) → dynamic {}
+static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method3({erroneously-initialized core::int a = #C1}) → dynamic {}
+static method /* from org-dartlang-testcase:///non_nullable_optional_part.dart */ method4([erroneously-initialized core::int a = #C1]) → dynamic {}
 
 constants  {
   #C1 = null
diff --git a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.expect b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.expect
index b798b46..748ad82 100644
--- a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.expect
@@ -53,15 +53,15 @@
   synthetic constructor •() → test::Class
     : super core::Object::•()
     ;
-  method method([core::int i = #C2]) → void {}
+  method method([erroneously-initialized core::int i = #C2]) → void {}
   @#C1
-  method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([core::int i = #C2]) → void {}
-  method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([core::int i = #C2]) → void {}
+  method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([erroneously-initialized core::int i = #C2]) → void {}
+  method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([erroneously-initialized core::int i = #C2]) → void {}
 }
-static method method([core::int i = #C2]) → void {}
+static method method([erroneously-initialized core::int i = #C2]) → void {}
 @#C1
-static method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([core::int i = #C2]) → void {}
-static method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([core::int i = #C2]) → void {}
+static method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([erroneously-initialized core::int i = #C2]) → void {}
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([erroneously-initialized core::int i = #C2]) → void {}
 
 constants  {
   #C1 = _in::_Patch {}
diff --git a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.modular.expect b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.modular.expect
index b798b46..748ad82 100644
--- a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.modular.expect
@@ -53,15 +53,15 @@
   synthetic constructor •() → test::Class
     : super core::Object::•()
     ;
-  method method([core::int i = #C2]) → void {}
+  method method([erroneously-initialized core::int i = #C2]) → void {}
   @#C1
-  method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([core::int i = #C2]) → void {}
-  method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([core::int i = #C2]) → void {}
+  method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([erroneously-initialized core::int i = #C2]) → void {}
+  method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([erroneously-initialized core::int i = #C2]) → void {}
 }
-static method method([core::int i = #C2]) → void {}
+static method method([erroneously-initialized core::int i = #C2]) → void {}
 @#C1
-static method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([core::int i = #C2]) → void {}
-static method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([core::int i = #C2]) → void {}
+static method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([erroneously-initialized core::int i = #C2]) → void {}
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([erroneously-initialized core::int i = #C2]) → void {}
 
 constants  {
   #C1 = _in::_Patch {}
diff --git a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.outline.expect b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.outline.expect
index 3578810..b2dc159 100644
--- a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.outline.expect
@@ -50,20 +50,20 @@
 class Class extends core::Object {
   synthetic constructor •() → self2::Class
     ;
-  method method([core::int i = null]) → void
+  method method([erroneously-initialized core::int i = null]) → void
     ;
   @_in::patch
-  method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([core::int i = null]) → void
+  method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([erroneously-initialized core::int i = null]) → void
     ;
-  method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([core::int i = null]) → void
+  method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([erroneously-initialized core::int i = null]) → void
     ;
 }
-static method method([core::int i]) → void
+static method method([erroneously-initialized core::int i]) → void
   ;
 @_in::patch
-static method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([core::int i]) → void
+static method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([erroneously-initialized core::int i]) → void
   ;
-static method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([core::int i]) → void
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([erroneously-initialized core::int i]) → void
   ;
 
 
diff --git a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.transformed.expect
index b798b46..748ad82 100644
--- a/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/platform_optional_parameters/main.dart.strong.transformed.expect
@@ -53,15 +53,15 @@
   synthetic constructor •() → test::Class
     : super core::Object::•()
     ;
-  method method([core::int i = #C2]) → void {}
+  method method([erroneously-initialized core::int i = #C2]) → void {}
   @#C1
-  method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([core::int i = #C2]) → void {}
-  method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([core::int i = #C2]) → void {}
+  method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([erroneously-initialized core::int i = #C2]) → void {}
+  method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([erroneously-initialized core::int i = #C2]) → void {}
 }
-static method method([core::int i = #C2]) → void {}
+static method method([erroneously-initialized core::int i = #C2]) → void {}
 @#C1
-static method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([core::int i = #C2]) → void {}
-static method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([core::int i = #C2]) → void {}
+static method /* from org-dartlang-testcase:///patch_lib.dart */ patchedMethod([erroneously-initialized core::int i = #C2]) → void {}
+static method /* from org-dartlang-testcase:///patch_lib.dart */ _injectedMethod([erroneously-initialized core::int i = #C2]) → void {}
 
 constants  {
   #C1 = _in::_Patch {}
diff --git a/pkg/front_end/testcases/nnbd/required.dart.strong.expect b/pkg/front_end/testcases/nnbd/required.dart.strong.expect
index ff5801a..843f332 100644
--- a/pkg/front_end/testcases/nnbd/required.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/required.dart.strong.expect
@@ -71,7 +71,7 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  method foo({core::int x = #C2}) → dynamic {}
+  method foo({erroneously-initialized core::int x = #C2}) → dynamic {}
 }
 class C extends self::A {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/nnbd/required.dart.strong.modular.expect b/pkg/front_end/testcases/nnbd/required.dart.strong.modular.expect
index ff5801a..843f332 100644
--- a/pkg/front_end/testcases/nnbd/required.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/nnbd/required.dart.strong.modular.expect
@@ -71,7 +71,7 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  method foo({core::int x = #C2}) → dynamic {}
+  method foo({erroneously-initialized core::int x = #C2}) → dynamic {}
 }
 class C extends self::A {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/nnbd/required.dart.strong.outline.expect b/pkg/front_end/testcases/nnbd/required.dart.strong.outline.expect
index c5796d5..f180b95 100644
--- a/pkg/front_end/testcases/nnbd/required.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/nnbd/required.dart.strong.outline.expect
@@ -26,7 +26,7 @@
 class B extends self::A {
   synthetic constructor •() → self::B
     ;
-  method foo({core::int x = null}) → dynamic
+  method foo({erroneously-initialized core::int x = null}) → dynamic
     ;
 }
 class C extends self::A {
diff --git a/pkg/front_end/testcases/nnbd/required.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/required.dart.strong.transformed.expect
index ff5801a..843f332 100644
--- a/pkg/front_end/testcases/nnbd/required.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/required.dart.strong.transformed.expect
@@ -71,7 +71,7 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  method foo({core::int x = #C2}) → dynamic {}
+  method foo({erroneously-initialized core::int x = #C2}) → dynamic {}
 }
 class C extends self::A {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.expect b/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.expect
index e954c50..82c1b58 100644
--- a/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.expect
@@ -20,8 +20,8 @@
 import "dart:core" as core;
 
 static method foo({required core::int parameter = #C1}) → dynamic {}
-static method foo2({core::int parameter = #C2}) → dynamic {}
-static method foo3([core::int parameter = #C2]) → dynamic {}
+static method foo2({erroneously-initialized core::int parameter = #C2}) → dynamic {}
+static method foo3([erroneously-initialized core::int parameter = #C2]) → dynamic {}
 static method bar({required core::int parameter}) → dynamic {}
 static method bar2({core::int parameter = #C1}) → dynamic {}
 static method bar3([core::int parameter = #C1]) → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.modular.expect b/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.modular.expect
index e954c50..82c1b58 100644
--- a/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.modular.expect
@@ -20,8 +20,8 @@
 import "dart:core" as core;
 
 static method foo({required core::int parameter = #C1}) → dynamic {}
-static method foo2({core::int parameter = #C2}) → dynamic {}
-static method foo3([core::int parameter = #C2]) → dynamic {}
+static method foo2({erroneously-initialized core::int parameter = #C2}) → dynamic {}
+static method foo3([erroneously-initialized core::int parameter = #C2]) → dynamic {}
 static method bar({required core::int parameter}) → dynamic {}
 static method bar2({core::int parameter = #C1}) → dynamic {}
 static method bar3([core::int parameter = #C1]) → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.outline.expect b/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.outline.expect
index 3353f5e..dc40556 100644
--- a/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.outline.expect
@@ -21,9 +21,9 @@
 
 static method foo({required has-declared-initializer core::int parameter}) → dynamic
   ;
-static method foo2({core::int parameter}) → dynamic
+static method foo2({erroneously-initialized core::int parameter}) → dynamic
   ;
-static method foo3([core::int parameter]) → dynamic
+static method foo3([erroneously-initialized core::int parameter]) → dynamic
   ;
 static method bar({required core::int parameter}) → dynamic
   ;
diff --git a/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.transformed.expect
index e954c50..82c1b58 100644
--- a/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/required_named_parameter.dart.strong.transformed.expect
@@ -20,8 +20,8 @@
 import "dart:core" as core;
 
 static method foo({required core::int parameter = #C1}) → dynamic {}
-static method foo2({core::int parameter = #C2}) → dynamic {}
-static method foo3([core::int parameter = #C2]) → dynamic {}
+static method foo2({erroneously-initialized core::int parameter = #C2}) → dynamic {}
+static method foo3([erroneously-initialized core::int parameter = #C2]) → dynamic {}
 static method bar({required core::int parameter}) → dynamic {}
 static method bar2({core::int parameter = #C1}) → dynamic {}
 static method bar3([core::int parameter = #C1]) → dynamic {}
diff --git a/pkg/front_end/testcases/regress/invalid_this_reference_02.dart.strong.expect b/pkg/front_end/testcases/regress/invalid_this_reference_02.dart.strong.expect
index 7113240..29924dd 100644
--- a/pkg/front_end/testcases/regress/invalid_this_reference_02.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/invalid_this_reference_02.dart.strong.expect
@@ -39,7 +39,7 @@
   return self::Foo|constructor#(x);
 static abstract extension-type-member method Foo|get#x2(lowered core::String #this) → core::int;
 static abstract extension-type-member method Foo|set#x2(lowered core::String #this, synthesized core::int #externalFieldValue) → void;
-static extension-type-member method Foo|bar1(lowered final self::Foo% /* erasure=core::String, declared=! */ #this, {core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:9:23: Error: Not a constant expression.
+static extension-type-member method Foo|bar1(lowered final self::Foo% /* erasure=core::String, declared=! */ #this, {erroneously-initialized core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:9:23: Error: Not a constant expression.
   int bar1({int baz = x2}) => 42;
                       ^^"}) → core::int
   return 42;
@@ -47,7 +47,7 @@
   return ({core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:9:23: Error: Not a constant expression.
   int bar1({int baz = x2}) => 42;
                       ^^"}) → core::int => self::Foo|bar1(#this, baz: baz);
-static extension-type-member method Foo|bar2(lowered final self::Foo% /* erasure=core::String, declared=! */ #this, {core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:10:23: Error: Not a constant expression.
+static extension-type-member method Foo|bar2(lowered final self::Foo% /* erasure=core::String, declared=! */ #this, {erroneously-initialized core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:10:23: Error: Not a constant expression.
   int bar2({int baz = x /* oops forgot the 1 */}) => 42;
                       ^"}) → core::int
   return 42;
diff --git a/pkg/front_end/testcases/regress/invalid_this_reference_02.dart.strong.modular.expect b/pkg/front_end/testcases/regress/invalid_this_reference_02.dart.strong.modular.expect
index 7113240..29924dd 100644
--- a/pkg/front_end/testcases/regress/invalid_this_reference_02.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/regress/invalid_this_reference_02.dart.strong.modular.expect
@@ -39,7 +39,7 @@
   return self::Foo|constructor#(x);
 static abstract extension-type-member method Foo|get#x2(lowered core::String #this) → core::int;
 static abstract extension-type-member method Foo|set#x2(lowered core::String #this, synthesized core::int #externalFieldValue) → void;
-static extension-type-member method Foo|bar1(lowered final self::Foo% /* erasure=core::String, declared=! */ #this, {core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:9:23: Error: Not a constant expression.
+static extension-type-member method Foo|bar1(lowered final self::Foo% /* erasure=core::String, declared=! */ #this, {erroneously-initialized core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:9:23: Error: Not a constant expression.
   int bar1({int baz = x2}) => 42;
                       ^^"}) → core::int
   return 42;
@@ -47,7 +47,7 @@
   return ({core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:9:23: Error: Not a constant expression.
   int bar1({int baz = x2}) => 42;
                       ^^"}) → core::int => self::Foo|bar1(#this, baz: baz);
-static extension-type-member method Foo|bar2(lowered final self::Foo% /* erasure=core::String, declared=! */ #this, {core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:10:23: Error: Not a constant expression.
+static extension-type-member method Foo|bar2(lowered final self::Foo% /* erasure=core::String, declared=! */ #this, {erroneously-initialized core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:10:23: Error: Not a constant expression.
   int bar2({int baz = x /* oops forgot the 1 */}) => 42;
                       ^"}) → core::int
   return 42;
diff --git a/pkg/front_end/testcases/regress/invalid_this_reference_02.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/invalid_this_reference_02.dart.strong.transformed.expect
index 7113240..29924dd 100644
--- a/pkg/front_end/testcases/regress/invalid_this_reference_02.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/invalid_this_reference_02.dart.strong.transformed.expect
@@ -39,7 +39,7 @@
   return self::Foo|constructor#(x);
 static abstract extension-type-member method Foo|get#x2(lowered core::String #this) → core::int;
 static abstract extension-type-member method Foo|set#x2(lowered core::String #this, synthesized core::int #externalFieldValue) → void;
-static extension-type-member method Foo|bar1(lowered final self::Foo% /* erasure=core::String, declared=! */ #this, {core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:9:23: Error: Not a constant expression.
+static extension-type-member method Foo|bar1(lowered final self::Foo% /* erasure=core::String, declared=! */ #this, {erroneously-initialized core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:9:23: Error: Not a constant expression.
   int bar1({int baz = x2}) => 42;
                       ^^"}) → core::int
   return 42;
@@ -47,7 +47,7 @@
   return ({core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:9:23: Error: Not a constant expression.
   int bar1({int baz = x2}) => 42;
                       ^^"}) → core::int => self::Foo|bar1(#this, baz: baz);
-static extension-type-member method Foo|bar2(lowered final self::Foo% /* erasure=core::String, declared=! */ #this, {core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:10:23: Error: Not a constant expression.
+static extension-type-member method Foo|bar2(lowered final self::Foo% /* erasure=core::String, declared=! */ #this, {erroneously-initialized core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_02.dart:10:23: Error: Not a constant expression.
   int bar2({int baz = x /* oops forgot the 1 */}) => 42;
                       ^"}) → core::int
   return 42;
diff --git a/pkg/front_end/testcases/regress/invalid_this_reference_03.dart.strong.expect b/pkg/front_end/testcases/regress/invalid_this_reference_03.dart.strong.expect
index f56327f..f804eb9 100644
--- a/pkg/front_end/testcases/regress/invalid_this_reference_03.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/invalid_this_reference_03.dart.strong.expect
@@ -13,7 +13,7 @@
   method bar = self::_extension#0|bar;
   method tearoff bar = self::_extension#0|get#bar;
 }
-static extension-member method _extension#0|bar(lowered final core::int #this, {core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_03.dart:6:22: Error: Expected identifier, but got 'this'.
+static extension-member method _extension#0|bar(lowered final core::int #this, {erroneously-initialized core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_03.dart:6:22: Error: Expected identifier, but got 'this'.
   int bar({int baz = this}) => 42;
                      ^^^^"}) → core::int
   return 42;
diff --git a/pkg/front_end/testcases/regress/invalid_this_reference_03.dart.strong.modular.expect b/pkg/front_end/testcases/regress/invalid_this_reference_03.dart.strong.modular.expect
index f56327f..f804eb9 100644
--- a/pkg/front_end/testcases/regress/invalid_this_reference_03.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/regress/invalid_this_reference_03.dart.strong.modular.expect
@@ -13,7 +13,7 @@
   method bar = self::_extension#0|bar;
   method tearoff bar = self::_extension#0|get#bar;
 }
-static extension-member method _extension#0|bar(lowered final core::int #this, {core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_03.dart:6:22: Error: Expected identifier, but got 'this'.
+static extension-member method _extension#0|bar(lowered final core::int #this, {erroneously-initialized core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_03.dart:6:22: Error: Expected identifier, but got 'this'.
   int bar({int baz = this}) => 42;
                      ^^^^"}) → core::int
   return 42;
diff --git a/pkg/front_end/testcases/regress/invalid_this_reference_03.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/invalid_this_reference_03.dart.strong.transformed.expect
index f56327f..f804eb9 100644
--- a/pkg/front_end/testcases/regress/invalid_this_reference_03.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/invalid_this_reference_03.dart.strong.transformed.expect
@@ -13,7 +13,7 @@
   method bar = self::_extension#0|bar;
   method tearoff bar = self::_extension#0|get#bar;
 }
-static extension-member method _extension#0|bar(lowered final core::int #this, {core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_03.dart:6:22: Error: Expected identifier, but got 'this'.
+static extension-member method _extension#0|bar(lowered final core::int #this, {erroneously-initialized core::int baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_03.dart:6:22: Error: Expected identifier, but got 'this'.
   int bar({int baz = this}) => 42;
                      ^^^^"}) → core::int
   return 42;
diff --git a/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.expect b/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.expect
index cde8da7..1262f7b 100644
--- a/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.expect
@@ -13,7 +13,7 @@
   synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
-  method bar({dynamic baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_04.dart:6:26: Error: Expected identifier, but got 'this'.
+  method bar({erroneously-initialized dynamic baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_04.dart:6:26: Error: Expected identifier, but got 'this'.
   int bar({dynamic baz = this}) => 42;
                          ^^^^"}) → core::int
     return 42;
diff --git a/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.modular.expect b/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.modular.expect
index cde8da7..1262f7b 100644
--- a/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.modular.expect
+++ b/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.modular.expect
@@ -13,7 +13,7 @@
   synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
-  method bar({dynamic baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_04.dart:6:26: Error: Expected identifier, but got 'this'.
+  method bar({erroneously-initialized dynamic baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_04.dart:6:26: Error: Expected identifier, but got 'this'.
   int bar({dynamic baz = this}) => 42;
                          ^^^^"}) → core::int
     return 42;
diff --git a/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.outline.expect b/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.outline.expect
index 6c4e26f..10f3ef7 100644
--- a/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.outline.expect
+++ b/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.outline.expect
@@ -12,7 +12,7 @@
 class Foo extends core::Object {
   synthetic constructor •() → self::Foo
     ;
-  method bar({dynamic baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_04.dart:6:26: Error: Expected identifier, but got 'this'.
+  method bar({erroneously-initialized dynamic baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_04.dart:6:26: Error: Expected identifier, but got 'this'.
   int bar({dynamic baz = this}) => 42;
                          ^^^^"}) → core::int
     ;
diff --git a/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.transformed.expect
index cde8da7..1262f7b 100644
--- a/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/invalid_this_reference_04.dart.strong.transformed.expect
@@ -13,7 +13,7 @@
   synthetic constructor •() → self::Foo
     : super core::Object::•()
     ;
-  method bar({dynamic baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_04.dart:6:26: Error: Expected identifier, but got 'this'.
+  method bar({erroneously-initialized dynamic baz = invalid-expression "pkg/front_end/testcases/regress/invalid_this_reference_04.dart:6:26: Error: Expected identifier, but got 'this'.
   int bar({dynamic baz = this}) => 42;
                          ^^^^"}) → core::int
     return 42;
diff --git a/pkg/kernel/binary.md b/pkg/kernel/binary.md
index 828b78d..d457818 100644
--- a/pkg/kernel/binary.md
+++ b/pkg/kernel/binary.md
@@ -1502,7 +1502,8 @@
 
   UInt flags (isFinal, isConst, hasDeclaredInitializer, isInitializingFormal,
               isCovariantByClass, isLate, isRequired, isCovariantByDeclaration,
-              isLowered, isSynthesized, isHoisted, isWildcard, isSuperInitializingFormal);
+              isLowered, isSynthesized, isHoisted, isWildcard, isSuperInitializingFormal,
+              isErroneouslyInitialized);
   // For named parameters, this is the parameter name.
   // For other variables, the name is cosmetic, may be empty,
   // and is not necessarily unique.
diff --git a/pkg/kernel/lib/src/ast/statements.dart b/pkg/kernel/lib/src/ast/statements.dart
index e1ba5c8..7d155da 100644
--- a/pkg/kernel/lib/src/ast/statements.dart
+++ b/pkg/kernel/lib/src/ast/statements.dart
@@ -1520,6 +1520,7 @@
   static const int FlagHoisted = 1 << 10;
   static const int FlagWildcard = 1 << 11;
   static const int FlagSuperInitializingFormal = 1 << 12;
+  static const int FlagErroneouslyInitialized = 1 << 13;
 
   bool get isFinal => flags & FlagFinal != 0;
   bool get isConst => flags & FlagConst != 0;
@@ -1538,6 +1539,9 @@
   bool get isSuperInitializingFormal =>
       flags & FlagSuperInitializingFormal != 0;
 
+  @informative
+  bool get isErroneouslyInitialized => flags & FlagErroneouslyInitialized != 0;
+
   /// If this [VariableDeclaration] is a parameter of a method, indicates
   /// whether the method implementation needs to contain a runtime type check to
   /// deal with generic covariance.
@@ -1637,6 +1641,13 @@
         : (flags & ~FlagSuperInitializingFormal);
   }
 
+  @informative
+  void set isErroneouslyInitialized(bool value) {
+    flags = value
+        ? (flags | FlagErroneouslyInitialized)
+        : (flags & ~FlagErroneouslyInitialized);
+  }
+
   void set isCovariantByClass(bool value) {
     flags = value
         ? (flags | FlagCovariantByClass)
diff --git a/pkg/kernel/lib/text/ast_to_text.dart b/pkg/kernel/lib/text/ast_to_text.dart
index bba6d66..724f8e6 100644
--- a/pkg/kernel/lib/text/ast_to_text.dart
+++ b/pkg/kernel/lib/text/ast_to_text.dart
@@ -2465,6 +2465,7 @@
     writeModifier(node.isSynthesized && node.name != null, 'synthesized');
     writeModifier(node.isHoisted, 'hoisted');
     writeModifier(node.isWildcard, 'wildcard');
+    writeModifier(node.isErroneouslyInitialized, 'erroneously-initialized');
     bool hasImplicitInitializer = node.initializer is NullLiteral ||
         (node.initializer is ConstantExpression &&
             (node.initializer as ConstantExpression).constant is NullConstant);