[cfe] Use InferableTypeBuilder for primary constructor parameters

Primary constructor parameters where wrongfully using the
ImplicitTypeBuilder instead of the InferableTypeBuilder meaning that
parameter types where not inferred but instead defaulted to dynamic.

Documentation is added to these classes to avoid the same mistake in
the future.

Closes #53211

Change-Id: I075d5dc7e3db53dc00a11ba76b51ecf0b8438489
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/320762
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
diff --git a/pkg/front_end/lib/src/fasta/builder/formal_parameter_builder.dart b/pkg/front_end/lib/src/fasta/builder/formal_parameter_builder.dart
index 6662deb..accc9f0 100644
--- a/pkg/front_end/lib/src/fasta/builder/formal_parameter_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/formal_parameter_builder.dart
@@ -199,12 +199,13 @@
         type.clone(newTypes, contextLibrary, contextDeclaration), name);
   }
 
-  FormalParameterBuilder forPrimaryConstructor() {
+  FormalParameterBuilder forPrimaryConstructor(
+      SourceLibraryBuilder sourceLibraryBuilder) {
     return new FormalParameterBuilder(
         metadata,
         kind,
         modifiers | initializingFormalMask,
-        const ImplicitTypeBuilder(),
+        sourceLibraryBuilder.addInferableType(),
         name,
         null,
         charOffset,
diff --git a/pkg/front_end/lib/src/fasta/builder/omitted_type_builder.dart b/pkg/front_end/lib/src/fasta/builder/omitted_type_builder.dart
index bb0ea74..3a0a7d0 100644
--- a/pkg/front_end/lib/src/fasta/builder/omitted_type_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/omitted_type_builder.dart
@@ -60,6 +60,13 @@
   DartType get type;
 }
 
+/// [TypeBuilder] for when there is no explicit type provided by the user and
+/// the type _cannot_ be inferred from context.
+///
+/// For omitted return types and parameter types of instance method,
+/// field types and initializing formal types, use [InferableTypeBuilder]
+/// instead. This should be created through
+/// [SourceLibraryBuilder.addInferableType] to ensure the type is inferred.
 class ImplicitTypeBuilder extends OmittedTypeBuilder {
   const ImplicitTypeBuilder();
 
@@ -89,6 +96,12 @@
   DartType get type => const DynamicType();
 }
 
+/// [TypeBuilder] for when there is no explicit type provided by the user but
+/// the type _can_ be inferred from context. For instance omitted return types
+/// and parameter types of instance method,
+///
+/// [InferableTypeBuilder] should be created through
+/// [SourceLibraryBuilder.addInferableType] to ensure the type is inferred.
 class InferableTypeBuilder extends OmittedTypeBuilder
     with InferableTypeBuilderMixin
     implements InferableType {
diff --git a/pkg/front_end/lib/src/fasta/source/outline_builder.dart b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
index 4db3a62..ef444e8 100644
--- a/pkg/front_end/lib/src/fasta/source/outline_builder.dart
+++ b/pkg/front_end/lib/src/fasta/source/outline_builder.dart
@@ -1631,7 +1631,7 @@
             type: formal.type,
             name: formal.name,
             charOffset: formal.charOffset);
-        formals[i] = formal.forPrimaryConstructor();
+        formals[i] = formal.forPrimaryConstructor(libraryBuilder);
       }
     }
 
diff --git a/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.strong.expect
index f9393d5..f258479 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.strong.expect
@@ -28,17 +28,17 @@
   constructor • = self::F|;
   tearoff • = self::F|_#new#tearOff;
 }
-static inline-class-member method E|(dynamic it) → self::E /* = self::B */ {
+static inline-class-member method E|(self::B it) → self::E /* = self::B */ {
   lowered final self::E /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|_#new#tearOff(self::B it) → self::E /* = self::B */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = self::B */ {
+static inline-class-member method F|(self::B it) → self::F /* = self::B */ {
   lowered final self::F /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|_#new#tearOff(self::B it) → self::F /* = self::B */
   return self::F|(it);
 static method main() → dynamic {
   self::B b = new self::B::•();
diff --git a/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.strong.transformed.expect
index f9393d5..f258479 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.strong.transformed.expect
@@ -28,17 +28,17 @@
   constructor • = self::F|;
   tearoff • = self::F|_#new#tearOff;
 }
-static inline-class-member method E|(dynamic it) → self::E /* = self::B */ {
+static inline-class-member method E|(self::B it) → self::E /* = self::B */ {
   lowered final self::E /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|_#new#tearOff(self::B it) → self::E /* = self::B */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = self::B */ {
+static inline-class-member method F|(self::B it) → self::F /* = self::B */ {
   lowered final self::F /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|_#new#tearOff(self::B it) → self::F /* = self::B */
   return self::F|(it);
 static method main() → dynamic {
   self::B b = new self::B::•();
diff --git a/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.expect
index f9393d5..f258479 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.expect
@@ -28,17 +28,17 @@
   constructor • = self::F|;
   tearoff • = self::F|_#new#tearOff;
 }
-static inline-class-member method E|(dynamic it) → self::E /* = self::B */ {
+static inline-class-member method E|(self::B it) → self::E /* = self::B */ {
   lowered final self::E /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|_#new#tearOff(self::B it) → self::E /* = self::B */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = self::B */ {
+static inline-class-member method F|(self::B it) → self::F /* = self::B */ {
   lowered final self::F /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|_#new#tearOff(self::B it) → self::F /* = self::B */
   return self::F|(it);
 static method main() → dynamic {
   self::B b = new self::B::•();
diff --git a/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.modular.expect
index f9393d5..f258479 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.modular.expect
@@ -28,17 +28,17 @@
   constructor • = self::F|;
   tearoff • = self::F|_#new#tearOff;
 }
-static inline-class-member method E|(dynamic it) → self::E /* = self::B */ {
+static inline-class-member method E|(self::B it) → self::E /* = self::B */ {
   lowered final self::E /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|_#new#tearOff(self::B it) → self::E /* = self::B */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = self::B */ {
+static inline-class-member method F|(self::B it) → self::F /* = self::B */ {
   lowered final self::F /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|_#new#tearOff(self::B it) → self::F /* = self::B */
   return self::F|(it);
 static method main() → dynamic {
   self::B b = new self::B::•();
diff --git a/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.outline.expect
index e207433..88b93d2 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.outline.expect
@@ -25,13 +25,13 @@
   constructor • = self::F|;
   tearoff • = self::F|_#new#tearOff;
 }
-static inline-class-member method E|(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|(self::B it) → self::E /* = self::B */
   ;
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|_#new#tearOff(self::B it) → self::E /* = self::B */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|(self::B it) → self::F /* = self::B */
   ;
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|_#new#tearOff(self::B it) → self::F /* = self::B */
   return self::F|(it);
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.transformed.expect
index f9393d5..f258479 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/access_non_extension_type_members.dart.weak.transformed.expect
@@ -28,17 +28,17 @@
   constructor • = self::F|;
   tearoff • = self::F|_#new#tearOff;
 }
-static inline-class-member method E|(dynamic it) → self::E /* = self::B */ {
+static inline-class-member method E|(self::B it) → self::E /* = self::B */ {
   lowered final self::E /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|_#new#tearOff(self::B it) → self::E /* = self::B */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = self::B */ {
+static inline-class-member method F|(self::B it) → self::F /* = self::B */ {
   lowered final self::F /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|_#new#tearOff(self::B it) → self::F /* = self::B */
   return self::F|(it);
 static method main() → dynamic {
   self::B b = new self::B::•();
diff --git a/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.strong.expect
index dbafacc..921e5d1 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.strong.expect
@@ -11,11 +11,11 @@
   constructor constructor = self::A|constructor;
   tearoff constructor = self::A|_#constructor#tearOff;
 }
-static inline-class-member method A|(@#C2 dynamic i) → self::A /* = core::int */ {
+static inline-class-member method A|(@#C2 core::int i) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic i) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int i) → self::A /* = core::int */
   return self::A|(i);
 @#C2
 static inline-class-member method A|constructor(core::int i) → self::A /* = core::int */ {
diff --git a/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.strong.transformed.expect
index dbafacc..921e5d1 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.strong.transformed.expect
@@ -11,11 +11,11 @@
   constructor constructor = self::A|constructor;
   tearoff constructor = self::A|_#constructor#tearOff;
 }
-static inline-class-member method A|(@#C2 dynamic i) → self::A /* = core::int */ {
+static inline-class-member method A|(@#C2 core::int i) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic i) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int i) → self::A /* = core::int */
   return self::A|(i);
 @#C2
 static inline-class-member method A|constructor(core::int i) → self::A /* = core::int */ {
diff --git a/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.expect
index dbafacc..921e5d1 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.expect
@@ -11,11 +11,11 @@
   constructor constructor = self::A|constructor;
   tearoff constructor = self::A|_#constructor#tearOff;
 }
-static inline-class-member method A|(@#C2 dynamic i) → self::A /* = core::int */ {
+static inline-class-member method A|(@#C2 core::int i) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic i) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int i) → self::A /* = core::int */
   return self::A|(i);
 @#C2
 static inline-class-member method A|constructor(core::int i) → self::A /* = core::int */ {
diff --git a/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.modular.expect
index dbafacc..921e5d1 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.modular.expect
@@ -11,11 +11,11 @@
   constructor constructor = self::A|constructor;
   tearoff constructor = self::A|_#constructor#tearOff;
 }
-static inline-class-member method A|(@#C2 dynamic i) → self::A /* = core::int */ {
+static inline-class-member method A|(@#C2 core::int i) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic i) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int i) → self::A /* = core::int */
   return self::A|(i);
 @#C2
 static inline-class-member method A|constructor(core::int i) → self::A /* = core::int */ {
diff --git a/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.outline.expect
index 62227a3..a26b1c4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.outline.expect
@@ -11,9 +11,9 @@
   constructor constructor = self::A|constructor;
   tearoff constructor = self::A|_#constructor#tearOff;
 }
-static inline-class-member method A|(dynamic i) → self::A /* = core::int */
+static inline-class-member method A|(core::int i) → self::A /* = core::int */
   ;
-static inline-class-member method A|_#new#tearOff(dynamic i) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int i) → self::A /* = core::int */
   return self::A|(i);
 @core::Deprecated::•("")
 static inline-class-member method A|constructor(core::int i) → self::A /* = core::int */
diff --git a/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.transformed.expect
index dbafacc..921e5d1 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/annotations.dart.weak.transformed.expect
@@ -11,11 +11,11 @@
   constructor constructor = self::A|constructor;
   tearoff constructor = self::A|_#constructor#tearOff;
 }
-static inline-class-member method A|(@#C2 dynamic i) → self::A /* = core::int */ {
+static inline-class-member method A|(@#C2 core::int i) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic i) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int i) → self::A /* = core::int */
   return self::A|(i);
 @#C2
 static inline-class-member method A|constructor(core::int i) → self::A /* = core::int */ {
diff --git a/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.strong.expect
index 513e186..5c21a68 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.strong.expect
@@ -314,35 +314,35 @@
   constructor • = self::G|;
   tearoff • = self::G|_#new#tearOff;
 }
-static inline-class-member method C|(dynamic o) → self::C /* = core::Object? */ {
+static inline-class-member method C|(core::Object? o) → self::C /* = core::Object? */ {
   lowered final self::C /* = core::Object? */ #this = o;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff(dynamic o) → self::C /* = core::Object? */
+static inline-class-member method C|_#new#tearOff(core::Object? o) → self::C /* = core::Object? */
   return self::C|(o);
-static inline-class-member method D|(dynamic o) → self::D /* = core::Object */ {
+static inline-class-member method D|(core::Object o) → self::D /* = core::Object */ {
   lowered final self::D /* = core::Object */ #this = o;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic o) → self::D /* = core::Object */
+static inline-class-member method D|_#new#tearOff(core::Object o) → self::D /* = core::Object */
   return self::D|(o);
-static inline-class-member method E|(dynamic it) → self::E /* = self::B */ {
+static inline-class-member method E|(self::B it) → self::E /* = self::B */ {
   lowered final self::E /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|_#new#tearOff(self::B it) → self::E /* = self::B */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = self::B */ {
+static inline-class-member method F|(self::B it) → self::F /* = self::B */ {
   lowered final self::F /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|_#new#tearOff(self::B it) → self::F /* = self::B */
   return self::F|(it);
-static inline-class-member method G|<T extends core::Object? = dynamic>(dynamic o) → self::G<self::G|::T%> /* = self::G|::T% */ {
+static inline-class-member method G|<T extends core::Object? = dynamic>(self::G|::T% o) → self::G<self::G|::T%> /* = self::G|::T% */ {
   lowered final self::G<self::G|::T%> /* = self::G|::T% */ #this = o;
   return #this;
 }
-static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(dynamic o) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T% */
+static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(self::G|_#new#tearOff::T% o) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T% */
   return self::G|<self::G|_#new#tearOff::T%>(o);
 static method test<T1 extends core::Object? = dynamic, T2 extends self::A>(core::Object o, self::A a, self::B b, self::C /* = core::Object? */ c, self::D /* = core::Object */ d, self::E /* = self::B */ e, self::F /* = self::B */ f, self::G<self::test::T1%> /* = self::test::T1% */ g1, self::G<self::test::T2> /* = self::test::T2 */ g2) → dynamic {
   o = o;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.strong.transformed.expect
index 6a316a4..1966422 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.strong.transformed.expect
@@ -314,35 +314,35 @@
   constructor • = self::G|;
   tearoff • = self::G|_#new#tearOff;
 }
-static inline-class-member method C|(dynamic o) → self::C /* = core::Object? */ {
+static inline-class-member method C|(core::Object? o) → self::C /* = core::Object? */ {
   lowered final self::C /* = core::Object? */ #this = o;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff(dynamic o) → self::C /* = core::Object? */
+static inline-class-member method C|_#new#tearOff(core::Object? o) → self::C /* = core::Object? */
   return self::C|(o);
-static inline-class-member method D|(dynamic o) → self::D /* = core::Object */ {
+static inline-class-member method D|(core::Object o) → self::D /* = core::Object */ {
   lowered final self::D /* = core::Object */ #this = o;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic o) → self::D /* = core::Object */
+static inline-class-member method D|_#new#tearOff(core::Object o) → self::D /* = core::Object */
   return self::D|(o);
-static inline-class-member method E|(dynamic it) → self::E /* = self::B */ {
+static inline-class-member method E|(self::B it) → self::E /* = self::B */ {
   lowered final self::E /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|_#new#tearOff(self::B it) → self::E /* = self::B */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = self::B */ {
+static inline-class-member method F|(self::B it) → self::F /* = self::B */ {
   lowered final self::F /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|_#new#tearOff(self::B it) → self::F /* = self::B */
   return self::F|(it);
-static inline-class-member method G|<T extends core::Object? = dynamic>(dynamic o) → self::G<self::G|::T%> /* = self::G|::T% */ {
+static inline-class-member method G|<T extends core::Object? = dynamic>(self::G|::T% o) → self::G<self::G|::T%> /* = self::G|::T% */ {
   lowered final self::G<self::G|::T%> /* = self::G|::T% */ #this = o;
   return #this;
 }
-static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(dynamic o) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T% */
+static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(self::G|_#new#tearOff::T% o) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T% */
   return self::G|<self::G|_#new#tearOff::T%>(o);
 static method test<T1 extends core::Object? = dynamic, T2 extends self::A>(core::Object o, self::A a, self::B b, self::C /* = core::Object? */ c, self::D /* = core::Object */ d, self::E /* = self::B */ e, self::F /* = self::B */ f, self::G<self::test::T1%> /* = self::test::T1% */ g1, self::G<self::test::T2> /* = self::test::T2 */ g2) → dynamic {
   o = o;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.expect
index 513e186..5c21a68 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.expect
@@ -314,35 +314,35 @@
   constructor • = self::G|;
   tearoff • = self::G|_#new#tearOff;
 }
-static inline-class-member method C|(dynamic o) → self::C /* = core::Object? */ {
+static inline-class-member method C|(core::Object? o) → self::C /* = core::Object? */ {
   lowered final self::C /* = core::Object? */ #this = o;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff(dynamic o) → self::C /* = core::Object? */
+static inline-class-member method C|_#new#tearOff(core::Object? o) → self::C /* = core::Object? */
   return self::C|(o);
-static inline-class-member method D|(dynamic o) → self::D /* = core::Object */ {
+static inline-class-member method D|(core::Object o) → self::D /* = core::Object */ {
   lowered final self::D /* = core::Object */ #this = o;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic o) → self::D /* = core::Object */
+static inline-class-member method D|_#new#tearOff(core::Object o) → self::D /* = core::Object */
   return self::D|(o);
-static inline-class-member method E|(dynamic it) → self::E /* = self::B */ {
+static inline-class-member method E|(self::B it) → self::E /* = self::B */ {
   lowered final self::E /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|_#new#tearOff(self::B it) → self::E /* = self::B */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = self::B */ {
+static inline-class-member method F|(self::B it) → self::F /* = self::B */ {
   lowered final self::F /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|_#new#tearOff(self::B it) → self::F /* = self::B */
   return self::F|(it);
-static inline-class-member method G|<T extends core::Object? = dynamic>(dynamic o) → self::G<self::G|::T%> /* = self::G|::T% */ {
+static inline-class-member method G|<T extends core::Object? = dynamic>(self::G|::T% o) → self::G<self::G|::T%> /* = self::G|::T% */ {
   lowered final self::G<self::G|::T%> /* = self::G|::T% */ #this = o;
   return #this;
 }
-static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(dynamic o) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T% */
+static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(self::G|_#new#tearOff::T% o) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T% */
   return self::G|<self::G|_#new#tearOff::T%>(o);
 static method test<T1 extends core::Object? = dynamic, T2 extends self::A>(core::Object o, self::A a, self::B b, self::C /* = core::Object? */ c, self::D /* = core::Object */ d, self::E /* = self::B */ e, self::F /* = self::B */ f, self::G<self::test::T1%> /* = self::test::T1% */ g1, self::G<self::test::T2> /* = self::test::T2 */ g2) → dynamic {
   o = o;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.modular.expect
index 513e186..5c21a68 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.modular.expect
@@ -314,35 +314,35 @@
   constructor • = self::G|;
   tearoff • = self::G|_#new#tearOff;
 }
-static inline-class-member method C|(dynamic o) → self::C /* = core::Object? */ {
+static inline-class-member method C|(core::Object? o) → self::C /* = core::Object? */ {
   lowered final self::C /* = core::Object? */ #this = o;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff(dynamic o) → self::C /* = core::Object? */
+static inline-class-member method C|_#new#tearOff(core::Object? o) → self::C /* = core::Object? */
   return self::C|(o);
-static inline-class-member method D|(dynamic o) → self::D /* = core::Object */ {
+static inline-class-member method D|(core::Object o) → self::D /* = core::Object */ {
   lowered final self::D /* = core::Object */ #this = o;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic o) → self::D /* = core::Object */
+static inline-class-member method D|_#new#tearOff(core::Object o) → self::D /* = core::Object */
   return self::D|(o);
-static inline-class-member method E|(dynamic it) → self::E /* = self::B */ {
+static inline-class-member method E|(self::B it) → self::E /* = self::B */ {
   lowered final self::E /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|_#new#tearOff(self::B it) → self::E /* = self::B */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = self::B */ {
+static inline-class-member method F|(self::B it) → self::F /* = self::B */ {
   lowered final self::F /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|_#new#tearOff(self::B it) → self::F /* = self::B */
   return self::F|(it);
-static inline-class-member method G|<T extends core::Object? = dynamic>(dynamic o) → self::G<self::G|::T%> /* = self::G|::T% */ {
+static inline-class-member method G|<T extends core::Object? = dynamic>(self::G|::T% o) → self::G<self::G|::T%> /* = self::G|::T% */ {
   lowered final self::G<self::G|::T%> /* = self::G|::T% */ #this = o;
   return #this;
 }
-static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(dynamic o) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T% */
+static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(self::G|_#new#tearOff::T% o) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T% */
   return self::G|<self::G|_#new#tearOff::T%>(o);
 static method test<T1 extends core::Object? = dynamic, T2 extends self::A>(core::Object o, self::A a, self::B b, self::C /* = core::Object? */ c, self::D /* = core::Object */ d, self::E /* = self::B */ e, self::F /* = self::B */ f, self::G<self::test::T1%> /* = self::test::T1% */ g1, self::G<self::test::T2> /* = self::test::T2 */ g2) → dynamic {
   o = o;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.outline.expect
index a9d9d57..d2ca39e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.outline.expect
@@ -30,25 +30,25 @@
   constructor • = self::G|;
   tearoff • = self::G|_#new#tearOff;
 }
-static inline-class-member method C|(dynamic o) → self::C /* = core::Object? */
+static inline-class-member method C|(core::Object? o) → self::C /* = core::Object? */
   ;
-static inline-class-member method C|_#new#tearOff(dynamic o) → self::C /* = core::Object? */
+static inline-class-member method C|_#new#tearOff(core::Object? o) → self::C /* = core::Object? */
   return self::C|(o);
-static inline-class-member method D|(dynamic o) → self::D /* = core::Object */
+static inline-class-member method D|(core::Object o) → self::D /* = core::Object */
   ;
-static inline-class-member method D|_#new#tearOff(dynamic o) → self::D /* = core::Object */
+static inline-class-member method D|_#new#tearOff(core::Object o) → self::D /* = core::Object */
   return self::D|(o);
-static inline-class-member method E|(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|(self::B it) → self::E /* = self::B */
   ;
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|_#new#tearOff(self::B it) → self::E /* = self::B */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|(self::B it) → self::F /* = self::B */
   ;
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|_#new#tearOff(self::B it) → self::F /* = self::B */
   return self::F|(it);
-static inline-class-member method G|<T extends core::Object? = dynamic>(dynamic o) → self::G<self::G|::T%> /* = self::G|::T% */
+static inline-class-member method G|<T extends core::Object? = dynamic>(self::G|::T% o) → self::G<self::G|::T%> /* = self::G|::T% */
   ;
-static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(dynamic o) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T% */
+static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(self::G|_#new#tearOff::T% o) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T% */
   return self::G|<self::G|_#new#tearOff::T%>(o);
 static method test<T1 extends core::Object? = dynamic, T2 extends self::A>(core::Object o, self::A a, self::B b, self::C /* = core::Object? */ c, self::D /* = core::Object */ d, self::E /* = self::B */ e, self::F /* = self::B */ f, self::G<self::test::T1%> /* = self::test::T1% */ g1, self::G<self::test::T2> /* = self::test::T2 */ g2) → dynamic
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.transformed.expect
index c45d4f9..c6b6d6c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/assign_interface_type.dart.weak.transformed.expect
@@ -314,35 +314,35 @@
   constructor • = self::G|;
   tearoff • = self::G|_#new#tearOff;
 }
-static inline-class-member method C|(dynamic o) → self::C /* = core::Object? */ {
+static inline-class-member method C|(core::Object? o) → self::C /* = core::Object? */ {
   lowered final self::C /* = core::Object? */ #this = o;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff(dynamic o) → self::C /* = core::Object? */
+static inline-class-member method C|_#new#tearOff(core::Object? o) → self::C /* = core::Object? */
   return self::C|(o);
-static inline-class-member method D|(dynamic o) → self::D /* = core::Object */ {
+static inline-class-member method D|(core::Object o) → self::D /* = core::Object */ {
   lowered final self::D /* = core::Object */ #this = o;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic o) → self::D /* = core::Object */
+static inline-class-member method D|_#new#tearOff(core::Object o) → self::D /* = core::Object */
   return self::D|(o);
-static inline-class-member method E|(dynamic it) → self::E /* = self::B */ {
+static inline-class-member method E|(self::B it) → self::E /* = self::B */ {
   lowered final self::E /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::B */
+static inline-class-member method E|_#new#tearOff(self::B it) → self::E /* = self::B */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = self::B */ {
+static inline-class-member method F|(self::B it) → self::F /* = self::B */ {
   lowered final self::F /* = self::B */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = self::B */
+static inline-class-member method F|_#new#tearOff(self::B it) → self::F /* = self::B */
   return self::F|(it);
-static inline-class-member method G|<T extends core::Object? = dynamic>(dynamic o) → self::G<self::G|::T%> /* = self::G|::T% */ {
+static inline-class-member method G|<T extends core::Object? = dynamic>(self::G|::T% o) → self::G<self::G|::T%> /* = self::G|::T% */ {
   lowered final self::G<self::G|::T%> /* = self::G|::T% */ #this = o;
   return #this;
 }
-static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(dynamic o) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T% */
+static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(self::G|_#new#tearOff::T% o) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T% */
   return self::G|<self::G|_#new#tearOff::T%>(o);
 static method test<T1 extends core::Object? = dynamic, T2 extends self::A>(core::Object o, self::A a, self::B b, self::C /* = core::Object? */ c, self::D /* = core::Object */ d, self::E /* = self::B */ e, self::F /* = self::B */ f, self::G<self::test::T1%> /* = self::test::T1% */ g1, self::G<self::test::T2> /* = self::test::T2 */ g2) → dynamic {
   o = o;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.strong.expect
index 362c8de..677cd17 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.strong.expect
@@ -32,11 +32,11 @@
   static redirecting-factory redirect2 = self::Class|redirect2;
   static tearoff redirect2 = self::Class|_#redirect2#tearOff;
 }
-static inline-class-member method Class|(dynamic i) → self::Class /* = core::int */ {
+static inline-class-member method Class|(core::int i) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method Class|_#new#tearOff(dynamic i) → self::Class /* = core::int */
+static inline-class-member method Class|_#new#tearOff(core::int i) → self::Class /* = core::int */
   return self::Class|(i);
 static inline-class-member method Class|named(core::int i) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = i;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.strong.transformed.expect
index 362c8de..677cd17 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.strong.transformed.expect
@@ -32,11 +32,11 @@
   static redirecting-factory redirect2 = self::Class|redirect2;
   static tearoff redirect2 = self::Class|_#redirect2#tearOff;
 }
-static inline-class-member method Class|(dynamic i) → self::Class /* = core::int */ {
+static inline-class-member method Class|(core::int i) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method Class|_#new#tearOff(dynamic i) → self::Class /* = core::int */
+static inline-class-member method Class|_#new#tearOff(core::int i) → self::Class /* = core::int */
   return self::Class|(i);
 static inline-class-member method Class|named(core::int i) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = i;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.expect
index 362c8de..677cd17 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.expect
@@ -32,11 +32,11 @@
   static redirecting-factory redirect2 = self::Class|redirect2;
   static tearoff redirect2 = self::Class|_#redirect2#tearOff;
 }
-static inline-class-member method Class|(dynamic i) → self::Class /* = core::int */ {
+static inline-class-member method Class|(core::int i) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method Class|_#new#tearOff(dynamic i) → self::Class /* = core::int */
+static inline-class-member method Class|_#new#tearOff(core::int i) → self::Class /* = core::int */
   return self::Class|(i);
 static inline-class-member method Class|named(core::int i) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = i;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.modular.expect
index 362c8de..677cd17 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.modular.expect
@@ -32,11 +32,11 @@
   static redirecting-factory redirect2 = self::Class|redirect2;
   static tearoff redirect2 = self::Class|_#redirect2#tearOff;
 }
-static inline-class-member method Class|(dynamic i) → self::Class /* = core::int */ {
+static inline-class-member method Class|(core::int i) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method Class|_#new#tearOff(dynamic i) → self::Class /* = core::int */
+static inline-class-member method Class|_#new#tearOff(core::int i) → self::Class /* = core::int */
   return self::Class|(i);
 static inline-class-member method Class|named(core::int i) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = i;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.outline.expect
index f968410..68786b1 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.outline.expect
@@ -14,9 +14,9 @@
   static redirecting-factory redirect2 = self::Class|redirect2;
   static tearoff redirect2 = self::Class|_#redirect2#tearOff;
 }
-static inline-class-member method Class|(dynamic i) → self::Class /* = core::int */
+static inline-class-member method Class|(core::int i) → self::Class /* = core::int */
   ;
-static inline-class-member method Class|_#new#tearOff(dynamic i) → self::Class /* = core::int */
+static inline-class-member method Class|_#new#tearOff(core::int i) → self::Class /* = core::int */
   return self::Class|(i);
 static inline-class-member method Class|named(core::int i) → self::Class /* = core::int */
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.transformed.expect
index 362c8de..677cd17 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/const_constructor.dart.weak.transformed.expect
@@ -32,11 +32,11 @@
   static redirecting-factory redirect2 = self::Class|redirect2;
   static tearoff redirect2 = self::Class|_#redirect2#tearOff;
 }
-static inline-class-member method Class|(dynamic i) → self::Class /* = core::int */ {
+static inline-class-member method Class|(core::int i) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method Class|_#new#tearOff(dynamic i) → self::Class /* = core::int */
+static inline-class-member method Class|_#new#tearOff(core::int i) → self::Class /* = core::int */
   return self::Class|(i);
 static inline-class-member method Class|named(core::int i) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = i;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.strong.expect
index ac0d23f..26d1582 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.strong.expect
@@ -12,11 +12,11 @@
   constructor • = self::GenericClass|;
   tearoff • = self::GenericClass|_#new#tearOff;
 }
-static inline-class-member method Class|(dynamic it) → self::Class /* = core::int */ {
+static inline-class-member method Class|(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class|_#new#tearOff(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|_#new#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|(it);
 static inline-class-member method Class|named(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
@@ -24,31 +24,31 @@
 }
 static inline-class-member method Class|_#named#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|named(it);
-static inline-class-member method GenericClass|<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ {
+static inline-class-member method GenericClass|<T extends core::Object? = dynamic>(self::GenericClass|::T% it) → self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ {
   lowered final self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_#new#tearOff::T%> /* = self::GenericClass|_#new#tearOff::T% */
+static inline-class-member method GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass|_#new#tearOff::T% it) → self::GenericClass<self::GenericClass|_#new#tearOff::T%> /* = self::GenericClass|_#new#tearOff::T% */
   return self::GenericClass|<self::GenericClass|_#new#tearOff::T%>(it);
 static method main() → dynamic {
   self::Class /* = core::int */ a = self::Class|(3);
   self::Class /* = core::int */ b = self::Class|(4);
-  self::Class /* = core::int */ b2 = #C1(4){(dynamic) → self::Class /* = core::int */};
+  self::Class /* = core::int */ b2 = #C1(4){(core::int) → self::Class /* = core::int */};
   self::Class /* = core::int */ c = self::Class|named(5);
   self::Class /* = core::int */ c2 = #C2(5){(core::int) → self::Class /* = core::int */};
   self::GenericClass<core::String> /* = core::String */ d = self::GenericClass|<core::String>("foo");
-  self::GenericClass<core::String> /* = core::String */ d2 = #C4("foo"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
-  self::GenericClass<core::String> /* = core::String */ d3 = #C3<core::String>("foo"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ d2 = #C4("foo"){(core::String) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ d3 = #C3<core::String>("foo"){(core::String) → self::GenericClass<core::String> /* = core::String */};
   self::GenericClass<core::String> /* = core::String */ e = self::GenericClass|<core::String>("bar");
-  self::GenericClass<core::String> /* = core::String */ e2 = #C4("bar"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
-  self::GenericClass<core::String> /* = core::String */ e3 = #C3<core::String>("bar"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ e2 = #C4("bar"){(core::String) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ e3 = #C3<core::String>("bar"){(core::String) → self::GenericClass<core::String> /* = core::String */};
   self::GenericClass<core::int> /* = core::int */ f = self::GenericClass|<core::int>(42);
-  self::GenericClass<core::int> /* = core::int */ f2 = #C5(42){(dynamic) → self::GenericClass<core::int> /* = core::int */};
-  self::GenericClass<core::int> /* = core::int */ f3 = #C3<core::int>(42){(dynamic) → self::GenericClass<core::int> /* = core::int */};
-  self::GenericClass<dynamic> /* = dynamic */ g = self::GenericClass|<dynamic>(87);
-  self::GenericClass<dynamic> /* = dynamic */ g2 = #C3<dynamic>(87){(dynamic) → self::GenericClass<dynamic> /* = dynamic */};
+  self::GenericClass<core::int> /* = core::int */ f2 = #C5(42){(core::int) → self::GenericClass<core::int> /* = core::int */};
+  self::GenericClass<core::int> /* = core::int */ f3 = #C3<core::int>(42){(core::int) → self::GenericClass<core::int> /* = core::int */};
+  self::GenericClass<core::int> /* = core::int */ g = self::GenericClass|<core::int>(87);
+  self::GenericClass<core::int> /* = core::int */ g2 = #C3<core::int>(87){(core::int) → self::GenericClass<core::int> /* = core::int */};
   self::GenericClass<core::num> /* = core::num */ h = self::GenericClass|<core::num>(123);
-  self::GenericClass<core::num> /* = core::num */ h2 = #C3<core::num>(123){(dynamic) → self::GenericClass<core::num> /* = core::num */};
+  self::GenericClass<core::num> /* = core::num */ h2 = #C3<core::num>(123){(core::num) → self::GenericClass<core::num> /* = core::num */};
   self::expect(3, a as{Unchecked} core::int);
   self::expect(3, a);
   self::expect(4, b as{Unchecked} core::int);
@@ -77,9 +77,9 @@
   self::expect(42, f2);
   self::expect(42, f3 as{Unchecked} core::int);
   self::expect(42, f3);
-  self::expect(87, g as{Unchecked} dynamic);
+  self::expect(87, g as{Unchecked} core::int);
   self::expect(87, g);
-  self::expect(87, g2 as{Unchecked} dynamic);
+  self::expect(87, g2 as{Unchecked} core::int);
   self::expect(87, g2);
   self::expect(123, h as{Unchecked} core::num);
   self::expect(123, h);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.strong.transformed.expect
index ac0d23f..26d1582 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.strong.transformed.expect
@@ -12,11 +12,11 @@
   constructor • = self::GenericClass|;
   tearoff • = self::GenericClass|_#new#tearOff;
 }
-static inline-class-member method Class|(dynamic it) → self::Class /* = core::int */ {
+static inline-class-member method Class|(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class|_#new#tearOff(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|_#new#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|(it);
 static inline-class-member method Class|named(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
@@ -24,31 +24,31 @@
 }
 static inline-class-member method Class|_#named#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|named(it);
-static inline-class-member method GenericClass|<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ {
+static inline-class-member method GenericClass|<T extends core::Object? = dynamic>(self::GenericClass|::T% it) → self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ {
   lowered final self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_#new#tearOff::T%> /* = self::GenericClass|_#new#tearOff::T% */
+static inline-class-member method GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass|_#new#tearOff::T% it) → self::GenericClass<self::GenericClass|_#new#tearOff::T%> /* = self::GenericClass|_#new#tearOff::T% */
   return self::GenericClass|<self::GenericClass|_#new#tearOff::T%>(it);
 static method main() → dynamic {
   self::Class /* = core::int */ a = self::Class|(3);
   self::Class /* = core::int */ b = self::Class|(4);
-  self::Class /* = core::int */ b2 = #C1(4){(dynamic) → self::Class /* = core::int */};
+  self::Class /* = core::int */ b2 = #C1(4){(core::int) → self::Class /* = core::int */};
   self::Class /* = core::int */ c = self::Class|named(5);
   self::Class /* = core::int */ c2 = #C2(5){(core::int) → self::Class /* = core::int */};
   self::GenericClass<core::String> /* = core::String */ d = self::GenericClass|<core::String>("foo");
-  self::GenericClass<core::String> /* = core::String */ d2 = #C4("foo"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
-  self::GenericClass<core::String> /* = core::String */ d3 = #C3<core::String>("foo"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ d2 = #C4("foo"){(core::String) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ d3 = #C3<core::String>("foo"){(core::String) → self::GenericClass<core::String> /* = core::String */};
   self::GenericClass<core::String> /* = core::String */ e = self::GenericClass|<core::String>("bar");
-  self::GenericClass<core::String> /* = core::String */ e2 = #C4("bar"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
-  self::GenericClass<core::String> /* = core::String */ e3 = #C3<core::String>("bar"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ e2 = #C4("bar"){(core::String) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ e3 = #C3<core::String>("bar"){(core::String) → self::GenericClass<core::String> /* = core::String */};
   self::GenericClass<core::int> /* = core::int */ f = self::GenericClass|<core::int>(42);
-  self::GenericClass<core::int> /* = core::int */ f2 = #C5(42){(dynamic) → self::GenericClass<core::int> /* = core::int */};
-  self::GenericClass<core::int> /* = core::int */ f3 = #C3<core::int>(42){(dynamic) → self::GenericClass<core::int> /* = core::int */};
-  self::GenericClass<dynamic> /* = dynamic */ g = self::GenericClass|<dynamic>(87);
-  self::GenericClass<dynamic> /* = dynamic */ g2 = #C3<dynamic>(87){(dynamic) → self::GenericClass<dynamic> /* = dynamic */};
+  self::GenericClass<core::int> /* = core::int */ f2 = #C5(42){(core::int) → self::GenericClass<core::int> /* = core::int */};
+  self::GenericClass<core::int> /* = core::int */ f3 = #C3<core::int>(42){(core::int) → self::GenericClass<core::int> /* = core::int */};
+  self::GenericClass<core::int> /* = core::int */ g = self::GenericClass|<core::int>(87);
+  self::GenericClass<core::int> /* = core::int */ g2 = #C3<core::int>(87){(core::int) → self::GenericClass<core::int> /* = core::int */};
   self::GenericClass<core::num> /* = core::num */ h = self::GenericClass|<core::num>(123);
-  self::GenericClass<core::num> /* = core::num */ h2 = #C3<core::num>(123){(dynamic) → self::GenericClass<core::num> /* = core::num */};
+  self::GenericClass<core::num> /* = core::num */ h2 = #C3<core::num>(123){(core::num) → self::GenericClass<core::num> /* = core::num */};
   self::expect(3, a as{Unchecked} core::int);
   self::expect(3, a);
   self::expect(4, b as{Unchecked} core::int);
@@ -77,9 +77,9 @@
   self::expect(42, f2);
   self::expect(42, f3 as{Unchecked} core::int);
   self::expect(42, f3);
-  self::expect(87, g as{Unchecked} dynamic);
+  self::expect(87, g as{Unchecked} core::int);
   self::expect(87, g);
-  self::expect(87, g2 as{Unchecked} dynamic);
+  self::expect(87, g2 as{Unchecked} core::int);
   self::expect(87, g2);
   self::expect(123, h as{Unchecked} core::num);
   self::expect(123, h);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.expect
index 4a60fd4..8836c1c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.expect
@@ -12,11 +12,11 @@
   constructor • = self::GenericClass|;
   tearoff • = self::GenericClass|_#new#tearOff;
 }
-static inline-class-member method Class|(dynamic it) → self::Class /* = core::int */ {
+static inline-class-member method Class|(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class|_#new#tearOff(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|_#new#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|(it);
 static inline-class-member method Class|named(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
@@ -24,31 +24,31 @@
 }
 static inline-class-member method Class|_#named#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|named(it);
-static inline-class-member method GenericClass|<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ {
+static inline-class-member method GenericClass|<T extends core::Object? = dynamic>(self::GenericClass|::T% it) → self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ {
   lowered final self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_#new#tearOff::T%> /* = self::GenericClass|_#new#tearOff::T% */
+static inline-class-member method GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass|_#new#tearOff::T% it) → self::GenericClass<self::GenericClass|_#new#tearOff::T%> /* = self::GenericClass|_#new#tearOff::T% */
   return self::GenericClass|<self::GenericClass|_#new#tearOff::T%>(it);
 static method main() → dynamic {
   self::Class /* = core::int */ a = self::Class|(3);
   self::Class /* = core::int */ b = self::Class|(4);
-  self::Class /* = core::int */ b2 = #C1(4){(dynamic) → self::Class /* = core::int */};
+  self::Class /* = core::int */ b2 = #C1(4){(core::int) → self::Class /* = core::int */};
   self::Class /* = core::int */ c = self::Class|named(5);
   self::Class /* = core::int */ c2 = #C2(5){(core::int) → self::Class /* = core::int */};
   self::GenericClass<core::String> /* = core::String */ d = self::GenericClass|<core::String>("foo");
-  self::GenericClass<core::String> /* = core::String */ d2 = #C4("foo"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
-  self::GenericClass<core::String> /* = core::String */ d3 = #C3<core::String>("foo"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ d2 = #C4("foo"){(core::String) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ d3 = #C3<core::String>("foo"){(core::String) → self::GenericClass<core::String> /* = core::String */};
   self::GenericClass<core::String> /* = core::String */ e = self::GenericClass|<core::String>("bar");
-  self::GenericClass<core::String> /* = core::String */ e2 = #C4("bar"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
-  self::GenericClass<core::String> /* = core::String */ e3 = #C3<core::String>("bar"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ e2 = #C4("bar"){(core::String) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ e3 = #C3<core::String>("bar"){(core::String) → self::GenericClass<core::String> /* = core::String */};
   self::GenericClass<core::int> /* = core::int */ f = self::GenericClass|<core::int>(42);
-  self::GenericClass<core::int> /* = core::int */ f2 = #C5(42){(dynamic) → self::GenericClass<core::int> /* = core::int */};
-  self::GenericClass<core::int> /* = core::int */ f3 = #C3<core::int>(42){(dynamic) → self::GenericClass<core::int> /* = core::int */};
-  self::GenericClass<dynamic> /* = dynamic */ g = self::GenericClass|<dynamic>(87);
-  self::GenericClass<dynamic> /* = dynamic */ g2 = #C3<dynamic>(87){(dynamic) → self::GenericClass<dynamic> /* = dynamic */};
+  self::GenericClass<core::int> /* = core::int */ f2 = #C5(42){(core::int) → self::GenericClass<core::int> /* = core::int */};
+  self::GenericClass<core::int> /* = core::int */ f3 = #C3<core::int>(42){(core::int) → self::GenericClass<core::int> /* = core::int */};
+  self::GenericClass<core::int> /* = core::int */ g = self::GenericClass|<core::int>(87);
+  self::GenericClass<core::int> /* = core::int */ g2 = #C3<core::int>(87){(core::int) → self::GenericClass<core::int> /* = core::int */};
   self::GenericClass<core::num> /* = core::num */ h = self::GenericClass|<core::num>(123);
-  self::GenericClass<core::num> /* = core::num */ h2 = #C3<core::num>(123){(dynamic) → self::GenericClass<core::num> /* = core::num */};
+  self::GenericClass<core::num> /* = core::num */ h2 = #C3<core::num>(123){(core::num) → self::GenericClass<core::num> /* = core::num */};
   self::expect(3, a as{Unchecked} core::int);
   self::expect(3, a);
   self::expect(4, b as{Unchecked} core::int);
@@ -77,9 +77,9 @@
   self::expect(42, f2);
   self::expect(42, f3 as{Unchecked} core::int);
   self::expect(42, f3);
-  self::expect(87, g as{Unchecked} dynamic);
+  self::expect(87, g as{Unchecked} core::int);
   self::expect(87, g);
-  self::expect(87, g2 as{Unchecked} dynamic);
+  self::expect(87, g2 as{Unchecked} core::int);
   self::expect(87, g2);
   self::expect(123, h as{Unchecked} core::num);
   self::expect(123, h);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.modular.expect
index 4a60fd4..8836c1c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.modular.expect
@@ -12,11 +12,11 @@
   constructor • = self::GenericClass|;
   tearoff • = self::GenericClass|_#new#tearOff;
 }
-static inline-class-member method Class|(dynamic it) → self::Class /* = core::int */ {
+static inline-class-member method Class|(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class|_#new#tearOff(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|_#new#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|(it);
 static inline-class-member method Class|named(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
@@ -24,31 +24,31 @@
 }
 static inline-class-member method Class|_#named#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|named(it);
-static inline-class-member method GenericClass|<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ {
+static inline-class-member method GenericClass|<T extends core::Object? = dynamic>(self::GenericClass|::T% it) → self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ {
   lowered final self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_#new#tearOff::T%> /* = self::GenericClass|_#new#tearOff::T% */
+static inline-class-member method GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass|_#new#tearOff::T% it) → self::GenericClass<self::GenericClass|_#new#tearOff::T%> /* = self::GenericClass|_#new#tearOff::T% */
   return self::GenericClass|<self::GenericClass|_#new#tearOff::T%>(it);
 static method main() → dynamic {
   self::Class /* = core::int */ a = self::Class|(3);
   self::Class /* = core::int */ b = self::Class|(4);
-  self::Class /* = core::int */ b2 = #C1(4){(dynamic) → self::Class /* = core::int */};
+  self::Class /* = core::int */ b2 = #C1(4){(core::int) → self::Class /* = core::int */};
   self::Class /* = core::int */ c = self::Class|named(5);
   self::Class /* = core::int */ c2 = #C2(5){(core::int) → self::Class /* = core::int */};
   self::GenericClass<core::String> /* = core::String */ d = self::GenericClass|<core::String>("foo");
-  self::GenericClass<core::String> /* = core::String */ d2 = #C4("foo"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
-  self::GenericClass<core::String> /* = core::String */ d3 = #C3<core::String>("foo"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ d2 = #C4("foo"){(core::String) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ d3 = #C3<core::String>("foo"){(core::String) → self::GenericClass<core::String> /* = core::String */};
   self::GenericClass<core::String> /* = core::String */ e = self::GenericClass|<core::String>("bar");
-  self::GenericClass<core::String> /* = core::String */ e2 = #C4("bar"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
-  self::GenericClass<core::String> /* = core::String */ e3 = #C3<core::String>("bar"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ e2 = #C4("bar"){(core::String) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ e3 = #C3<core::String>("bar"){(core::String) → self::GenericClass<core::String> /* = core::String */};
   self::GenericClass<core::int> /* = core::int */ f = self::GenericClass|<core::int>(42);
-  self::GenericClass<core::int> /* = core::int */ f2 = #C5(42){(dynamic) → self::GenericClass<core::int> /* = core::int */};
-  self::GenericClass<core::int> /* = core::int */ f3 = #C3<core::int>(42){(dynamic) → self::GenericClass<core::int> /* = core::int */};
-  self::GenericClass<dynamic> /* = dynamic */ g = self::GenericClass|<dynamic>(87);
-  self::GenericClass<dynamic> /* = dynamic */ g2 = #C3<dynamic>(87){(dynamic) → self::GenericClass<dynamic> /* = dynamic */};
+  self::GenericClass<core::int> /* = core::int */ f2 = #C5(42){(core::int) → self::GenericClass<core::int> /* = core::int */};
+  self::GenericClass<core::int> /* = core::int */ f3 = #C3<core::int>(42){(core::int) → self::GenericClass<core::int> /* = core::int */};
+  self::GenericClass<core::int> /* = core::int */ g = self::GenericClass|<core::int>(87);
+  self::GenericClass<core::int> /* = core::int */ g2 = #C3<core::int>(87){(core::int) → self::GenericClass<core::int> /* = core::int */};
   self::GenericClass<core::num> /* = core::num */ h = self::GenericClass|<core::num>(123);
-  self::GenericClass<core::num> /* = core::num */ h2 = #C3<core::num>(123){(dynamic) → self::GenericClass<core::num> /* = core::num */};
+  self::GenericClass<core::num> /* = core::num */ h2 = #C3<core::num>(123){(core::num) → self::GenericClass<core::num> /* = core::num */};
   self::expect(3, a as{Unchecked} core::int);
   self::expect(3, a);
   self::expect(4, b as{Unchecked} core::int);
@@ -77,9 +77,9 @@
   self::expect(42, f2);
   self::expect(42, f3 as{Unchecked} core::int);
   self::expect(42, f3);
-  self::expect(87, g as{Unchecked} dynamic);
+  self::expect(87, g as{Unchecked} core::int);
   self::expect(87, g);
-  self::expect(87, g2 as{Unchecked} dynamic);
+  self::expect(87, g2 as{Unchecked} core::int);
   self::expect(87, g2);
   self::expect(123, h as{Unchecked} core::num);
   self::expect(123, h);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.outline.expect
index b07424b..50e6bc7 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.outline.expect
@@ -12,17 +12,17 @@
   constructor • = self::GenericClass|;
   tearoff • = self::GenericClass|_#new#tearOff;
 }
-static inline-class-member method Class|(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|(core::int it) → self::Class /* = core::int */
   ;
-static inline-class-member method Class|_#new#tearOff(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|_#new#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|(it);
 static inline-class-member method Class|named(core::int it) → self::Class /* = core::int */
   ;
 static inline-class-member method Class|_#named#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|named(it);
-static inline-class-member method GenericClass|<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */
+static inline-class-member method GenericClass|<T extends core::Object? = dynamic>(self::GenericClass|::T% it) → self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */
   ;
-static inline-class-member method GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_#new#tearOff::T%> /* = self::GenericClass|_#new#tearOff::T% */
+static inline-class-member method GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass|_#new#tearOff::T% it) → self::GenericClass<self::GenericClass|_#new#tearOff::T%> /* = self::GenericClass|_#new#tearOff::T% */
   return self::GenericClass|<self::GenericClass|_#new#tearOff::T%>(it);
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.transformed.expect
index 4a60fd4..8836c1c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_access.dart.weak.transformed.expect
@@ -12,11 +12,11 @@
   constructor • = self::GenericClass|;
   tearoff • = self::GenericClass|_#new#tearOff;
 }
-static inline-class-member method Class|(dynamic it) → self::Class /* = core::int */ {
+static inline-class-member method Class|(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class|_#new#tearOff(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|_#new#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|(it);
 static inline-class-member method Class|named(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
@@ -24,31 +24,31 @@
 }
 static inline-class-member method Class|_#named#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|named(it);
-static inline-class-member method GenericClass|<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ {
+static inline-class-member method GenericClass|<T extends core::Object? = dynamic>(self::GenericClass|::T% it) → self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ {
   lowered final self::GenericClass<self::GenericClass|::T%> /* = self::GenericClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_#new#tearOff::T%> /* = self::GenericClass|_#new#tearOff::T% */
+static inline-class-member method GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass|_#new#tearOff::T% it) → self::GenericClass<self::GenericClass|_#new#tearOff::T%> /* = self::GenericClass|_#new#tearOff::T% */
   return self::GenericClass|<self::GenericClass|_#new#tearOff::T%>(it);
 static method main() → dynamic {
   self::Class /* = core::int */ a = self::Class|(3);
   self::Class /* = core::int */ b = self::Class|(4);
-  self::Class /* = core::int */ b2 = #C1(4){(dynamic) → self::Class /* = core::int */};
+  self::Class /* = core::int */ b2 = #C1(4){(core::int) → self::Class /* = core::int */};
   self::Class /* = core::int */ c = self::Class|named(5);
   self::Class /* = core::int */ c2 = #C2(5){(core::int) → self::Class /* = core::int */};
   self::GenericClass<core::String> /* = core::String */ d = self::GenericClass|<core::String>("foo");
-  self::GenericClass<core::String> /* = core::String */ d2 = #C4("foo"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
-  self::GenericClass<core::String> /* = core::String */ d3 = #C3<core::String>("foo"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ d2 = #C4("foo"){(core::String) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ d3 = #C3<core::String>("foo"){(core::String) → self::GenericClass<core::String> /* = core::String */};
   self::GenericClass<core::String> /* = core::String */ e = self::GenericClass|<core::String>("bar");
-  self::GenericClass<core::String> /* = core::String */ e2 = #C4("bar"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
-  self::GenericClass<core::String> /* = core::String */ e3 = #C3<core::String>("bar"){(dynamic) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ e2 = #C4("bar"){(core::String) → self::GenericClass<core::String> /* = core::String */};
+  self::GenericClass<core::String> /* = core::String */ e3 = #C3<core::String>("bar"){(core::String) → self::GenericClass<core::String> /* = core::String */};
   self::GenericClass<core::int> /* = core::int */ f = self::GenericClass|<core::int>(42);
-  self::GenericClass<core::int> /* = core::int */ f2 = #C5(42){(dynamic) → self::GenericClass<core::int> /* = core::int */};
-  self::GenericClass<core::int> /* = core::int */ f3 = #C3<core::int>(42){(dynamic) → self::GenericClass<core::int> /* = core::int */};
-  self::GenericClass<dynamic> /* = dynamic */ g = self::GenericClass|<dynamic>(87);
-  self::GenericClass<dynamic> /* = dynamic */ g2 = #C3<dynamic>(87){(dynamic) → self::GenericClass<dynamic> /* = dynamic */};
+  self::GenericClass<core::int> /* = core::int */ f2 = #C5(42){(core::int) → self::GenericClass<core::int> /* = core::int */};
+  self::GenericClass<core::int> /* = core::int */ f3 = #C3<core::int>(42){(core::int) → self::GenericClass<core::int> /* = core::int */};
+  self::GenericClass<core::int> /* = core::int */ g = self::GenericClass|<core::int>(87);
+  self::GenericClass<core::int> /* = core::int */ g2 = #C3<core::int>(87){(core::int) → self::GenericClass<core::int> /* = core::int */};
   self::GenericClass<core::num> /* = core::num */ h = self::GenericClass|<core::num>(123);
-  self::GenericClass<core::num> /* = core::num */ h2 = #C3<core::num>(123){(dynamic) → self::GenericClass<core::num> /* = core::num */};
+  self::GenericClass<core::num> /* = core::num */ h2 = #C3<core::num>(123){(core::num) → self::GenericClass<core::num> /* = core::num */};
   self::expect(3, a as{Unchecked} core::int);
   self::expect(3, a);
   self::expect(4, b as{Unchecked} core::int);
@@ -77,9 +77,9 @@
   self::expect(42, f2);
   self::expect(42, f3 as{Unchecked} core::int);
   self::expect(42, f3);
-  self::expect(87, g as{Unchecked} dynamic);
+  self::expect(87, g as{Unchecked} core::int);
   self::expect(87, g);
-  self::expect(87, g2 as{Unchecked} dynamic);
+  self::expect(87, g2 as{Unchecked} core::int);
   self::expect(87, g2);
   self::expect(123, h as{Unchecked} core::num);
   self::expect(123, h);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.strong.expect
index 5ed48c6..fafc24c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.strong.expect
@@ -34,11 +34,11 @@
   constructor named6 = self::Class2|named6;
   tearoff named6 = self::Class2|_#named6#tearOff;
 }
-static inline-class-member method Class1|(dynamic it) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int it) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int it) → self::Class1 /* = core::int */
   return self::Class1|(it);
 static inline-class-member method Class1|named1(core::int it, core::int additional) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
@@ -82,11 +82,11 @@
 }
 static inline-class-member method Class1|_#named6#tearOff(core::String text) → self::Class1 /* = core::int */
   return self::Class1|named6(text);
-static inline-class-member method Class2|<T extends core::Object? = dynamic>(dynamic it) → self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ {
+static inline-class-member method Class2|<T extends core::Object? = dynamic>(self::Class2|::T% it) → self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ {
   lowered final self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method Class2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Class2<self::Class2|_#new#tearOff::T%> /* = self::Class2|_#new#tearOff::T% */
+static inline-class-member method Class2|_#new#tearOff<T extends core::Object? = dynamic>(self::Class2|_#new#tearOff::T% it) → self::Class2<self::Class2|_#new#tearOff::T%> /* = self::Class2|_#new#tearOff::T% */
   return self::Class2|<self::Class2|_#new#tearOff::T%>(it);
 static inline-class-member method Class2|named1<T extends core::Object? = dynamic>(self::Class2|named1::T% it, core::int additional) → self::Class2<self::Class2|named1::T%> /* = self::Class2|named1::T% */ {
   lowered final self::Class2<self::Class2|named1::T%> /* = self::Class2|named1::T% */ #this = it;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.strong.transformed.expect
index 5ed48c6..fafc24c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.strong.transformed.expect
@@ -34,11 +34,11 @@
   constructor named6 = self::Class2|named6;
   tearoff named6 = self::Class2|_#named6#tearOff;
 }
-static inline-class-member method Class1|(dynamic it) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int it) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int it) → self::Class1 /* = core::int */
   return self::Class1|(it);
 static inline-class-member method Class1|named1(core::int it, core::int additional) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
@@ -82,11 +82,11 @@
 }
 static inline-class-member method Class1|_#named6#tearOff(core::String text) → self::Class1 /* = core::int */
   return self::Class1|named6(text);
-static inline-class-member method Class2|<T extends core::Object? = dynamic>(dynamic it) → self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ {
+static inline-class-member method Class2|<T extends core::Object? = dynamic>(self::Class2|::T% it) → self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ {
   lowered final self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method Class2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Class2<self::Class2|_#new#tearOff::T%> /* = self::Class2|_#new#tearOff::T% */
+static inline-class-member method Class2|_#new#tearOff<T extends core::Object? = dynamic>(self::Class2|_#new#tearOff::T% it) → self::Class2<self::Class2|_#new#tearOff::T%> /* = self::Class2|_#new#tearOff::T% */
   return self::Class2|<self::Class2|_#new#tearOff::T%>(it);
 static inline-class-member method Class2|named1<T extends core::Object? = dynamic>(self::Class2|named1::T% it, core::int additional) → self::Class2<self::Class2|named1::T%> /* = self::Class2|named1::T% */ {
   lowered final self::Class2<self::Class2|named1::T%> /* = self::Class2|named1::T% */ #this = it;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.expect
index 5ed48c6..fafc24c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.expect
@@ -34,11 +34,11 @@
   constructor named6 = self::Class2|named6;
   tearoff named6 = self::Class2|_#named6#tearOff;
 }
-static inline-class-member method Class1|(dynamic it) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int it) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int it) → self::Class1 /* = core::int */
   return self::Class1|(it);
 static inline-class-member method Class1|named1(core::int it, core::int additional) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
@@ -82,11 +82,11 @@
 }
 static inline-class-member method Class1|_#named6#tearOff(core::String text) → self::Class1 /* = core::int */
   return self::Class1|named6(text);
-static inline-class-member method Class2|<T extends core::Object? = dynamic>(dynamic it) → self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ {
+static inline-class-member method Class2|<T extends core::Object? = dynamic>(self::Class2|::T% it) → self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ {
   lowered final self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method Class2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Class2<self::Class2|_#new#tearOff::T%> /* = self::Class2|_#new#tearOff::T% */
+static inline-class-member method Class2|_#new#tearOff<T extends core::Object? = dynamic>(self::Class2|_#new#tearOff::T% it) → self::Class2<self::Class2|_#new#tearOff::T%> /* = self::Class2|_#new#tearOff::T% */
   return self::Class2|<self::Class2|_#new#tearOff::T%>(it);
 static inline-class-member method Class2|named1<T extends core::Object? = dynamic>(self::Class2|named1::T% it, core::int additional) → self::Class2<self::Class2|named1::T%> /* = self::Class2|named1::T% */ {
   lowered final self::Class2<self::Class2|named1::T%> /* = self::Class2|named1::T% */ #this = it;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.modular.expect
index 5ed48c6..fafc24c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.modular.expect
@@ -34,11 +34,11 @@
   constructor named6 = self::Class2|named6;
   tearoff named6 = self::Class2|_#named6#tearOff;
 }
-static inline-class-member method Class1|(dynamic it) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int it) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int it) → self::Class1 /* = core::int */
   return self::Class1|(it);
 static inline-class-member method Class1|named1(core::int it, core::int additional) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
@@ -82,11 +82,11 @@
 }
 static inline-class-member method Class1|_#named6#tearOff(core::String text) → self::Class1 /* = core::int */
   return self::Class1|named6(text);
-static inline-class-member method Class2|<T extends core::Object? = dynamic>(dynamic it) → self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ {
+static inline-class-member method Class2|<T extends core::Object? = dynamic>(self::Class2|::T% it) → self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ {
   lowered final self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method Class2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Class2<self::Class2|_#new#tearOff::T%> /* = self::Class2|_#new#tearOff::T% */
+static inline-class-member method Class2|_#new#tearOff<T extends core::Object? = dynamic>(self::Class2|_#new#tearOff::T% it) → self::Class2<self::Class2|_#new#tearOff::T%> /* = self::Class2|_#new#tearOff::T% */
   return self::Class2|<self::Class2|_#new#tearOff::T%>(it);
 static inline-class-member method Class2|named1<T extends core::Object? = dynamic>(self::Class2|named1::T% it, core::int additional) → self::Class2<self::Class2|named1::T%> /* = self::Class2|named1::T% */ {
   lowered final self::Class2<self::Class2|named1::T%> /* = self::Class2|named1::T% */ #this = it;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.outline.expect
index 836e124..120ebb9 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.outline.expect
@@ -34,9 +34,9 @@
   constructor named6 = self::Class2|named6;
   tearoff named6 = self::Class2|_#named6#tearOff;
 }
-static inline-class-member method Class1|(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|(core::int it) → self::Class1 /* = core::int */
   ;
-static inline-class-member method Class1|_#new#tearOff(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int it) → self::Class1 /* = core::int */
   return self::Class1|(it);
 static inline-class-member method Class1|named1(core::int it, core::int additional) → self::Class1 /* = core::int */
   ;
@@ -62,9 +62,9 @@
   ;
 static inline-class-member method Class1|_#named6#tearOff(core::String text) → self::Class1 /* = core::int */
   return self::Class1|named6(text);
-static inline-class-member method Class2|<T extends core::Object? = dynamic>(dynamic it) → self::Class2<self::Class2|::T%> /* = self::Class2|::T% */
+static inline-class-member method Class2|<T extends core::Object? = dynamic>(self::Class2|::T% it) → self::Class2<self::Class2|::T%> /* = self::Class2|::T% */
   ;
-static inline-class-member method Class2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Class2<self::Class2|_#new#tearOff::T%> /* = self::Class2|_#new#tearOff::T% */
+static inline-class-member method Class2|_#new#tearOff<T extends core::Object? = dynamic>(self::Class2|_#new#tearOff::T% it) → self::Class2<self::Class2|_#new#tearOff::T%> /* = self::Class2|_#new#tearOff::T% */
   return self::Class2|<self::Class2|_#new#tearOff::T%>(it);
 static inline-class-member method Class2|named1<T extends core::Object? = dynamic>(self::Class2|named1::T% it, core::int additional) → self::Class2<self::Class2|named1::T%> /* = self::Class2|named1::T% */
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.transformed.expect
index 5ed48c6..fafc24c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_bodies.dart.weak.transformed.expect
@@ -34,11 +34,11 @@
   constructor named6 = self::Class2|named6;
   tearoff named6 = self::Class2|_#named6#tearOff;
 }
-static inline-class-member method Class1|(dynamic it) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int it) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int it) → self::Class1 /* = core::int */
   return self::Class1|(it);
 static inline-class-member method Class1|named1(core::int it, core::int additional) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
@@ -82,11 +82,11 @@
 }
 static inline-class-member method Class1|_#named6#tearOff(core::String text) → self::Class1 /* = core::int */
   return self::Class1|named6(text);
-static inline-class-member method Class2|<T extends core::Object? = dynamic>(dynamic it) → self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ {
+static inline-class-member method Class2|<T extends core::Object? = dynamic>(self::Class2|::T% it) → self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ {
   lowered final self::Class2<self::Class2|::T%> /* = self::Class2|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method Class2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Class2<self::Class2|_#new#tearOff::T%> /* = self::Class2|_#new#tearOff::T% */
+static inline-class-member method Class2|_#new#tearOff<T extends core::Object? = dynamic>(self::Class2|_#new#tearOff::T% it) → self::Class2<self::Class2|_#new#tearOff::T%> /* = self::Class2|_#new#tearOff::T% */
   return self::Class2|<self::Class2|_#new#tearOff::T%>(it);
 static inline-class-member method Class2|named1<T extends core::Object? = dynamic>(self::Class2|named1::T% it, core::int additional) → self::Class2<self::Class2|named1::T%> /* = self::Class2|named1::T% */ {
   lowered final self::Class2<self::Class2|named1::T%> /* = self::Class2|named1::T% */ #this = it;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.strong.expect
index 769ed61..cfdc2e92 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.strong.expect
@@ -18,11 +18,11 @@
   constructor • = self::I2|;
   tearoff • = self::I2|_#new#tearOff;
 }
-static inline-class-member method I|_(dynamic it) → self::I /* = core::int */ {
+static inline-class-member method I|_(core::int it) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method I|_#_#tearOff(dynamic it) → self::I /* = core::int */
+static inline-class-member method I|_#_#tearOff(core::int it) → self::I /* = core::int */
   return self::I|_(it);
 static inline-class-member method I|(core::int x, [core::int? y = #C1]) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = x.{core::num::+}(let final core::int? #t1 = y in #t1 == null ?{core::int} 42 : #t1{core::int}){(core::num) → core::int};
@@ -33,11 +33,11 @@
 static inline-class-member method I|m(lowered final self::I /* = core::int */ #this, core::String s, [core::int i = #C2]) → void {}
 static inline-class-member method I|get#m(lowered final self::I /* = core::int */ #this) → (core::String, [core::int]) → void
   return (core::String s, [core::int i = #C2]) → void => self::I|m(#this, s, i);
-static inline-class-member method I2|_(dynamic it) → self::I2 /* = core::int */ {
+static inline-class-member method I2|_(core::int it) → self::I2 /* = core::int */ {
   lowered final self::I2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method I2|_#_#tearOff(dynamic it) → self::I2 /* = core::int */
+static inline-class-member method I2|_#_#tearOff(core::int it) → self::I2 /* = core::int */
   return self::I2|_(it);
 static inline-class-member method I2|(core::int x, {core::int? y = #C1}) → self::I2 /* = core::int */ {
   lowered final self::I2 /* = core::int */ #this = x.{core::num::+}(let final core::int? #t2 = y in #t2 == null ?{core::int} 87 : #t2{core::int}){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.strong.transformed.expect
index 769ed61..cfdc2e92 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.strong.transformed.expect
@@ -18,11 +18,11 @@
   constructor • = self::I2|;
   tearoff • = self::I2|_#new#tearOff;
 }
-static inline-class-member method I|_(dynamic it) → self::I /* = core::int */ {
+static inline-class-member method I|_(core::int it) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method I|_#_#tearOff(dynamic it) → self::I /* = core::int */
+static inline-class-member method I|_#_#tearOff(core::int it) → self::I /* = core::int */
   return self::I|_(it);
 static inline-class-member method I|(core::int x, [core::int? y = #C1]) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = x.{core::num::+}(let final core::int? #t1 = y in #t1 == null ?{core::int} 42 : #t1{core::int}){(core::num) → core::int};
@@ -33,11 +33,11 @@
 static inline-class-member method I|m(lowered final self::I /* = core::int */ #this, core::String s, [core::int i = #C2]) → void {}
 static inline-class-member method I|get#m(lowered final self::I /* = core::int */ #this) → (core::String, [core::int]) → void
   return (core::String s, [core::int i = #C2]) → void => self::I|m(#this, s, i);
-static inline-class-member method I2|_(dynamic it) → self::I2 /* = core::int */ {
+static inline-class-member method I2|_(core::int it) → self::I2 /* = core::int */ {
   lowered final self::I2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method I2|_#_#tearOff(dynamic it) → self::I2 /* = core::int */
+static inline-class-member method I2|_#_#tearOff(core::int it) → self::I2 /* = core::int */
   return self::I2|_(it);
 static inline-class-member method I2|(core::int x, {core::int? y = #C1}) → self::I2 /* = core::int */ {
   lowered final self::I2 /* = core::int */ #this = x.{core::num::+}(let final core::int? #t2 = y in #t2 == null ?{core::int} 87 : #t2{core::int}){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.expect
index 769ed61..cfdc2e92 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.expect
@@ -18,11 +18,11 @@
   constructor • = self::I2|;
   tearoff • = self::I2|_#new#tearOff;
 }
-static inline-class-member method I|_(dynamic it) → self::I /* = core::int */ {
+static inline-class-member method I|_(core::int it) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method I|_#_#tearOff(dynamic it) → self::I /* = core::int */
+static inline-class-member method I|_#_#tearOff(core::int it) → self::I /* = core::int */
   return self::I|_(it);
 static inline-class-member method I|(core::int x, [core::int? y = #C1]) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = x.{core::num::+}(let final core::int? #t1 = y in #t1 == null ?{core::int} 42 : #t1{core::int}){(core::num) → core::int};
@@ -33,11 +33,11 @@
 static inline-class-member method I|m(lowered final self::I /* = core::int */ #this, core::String s, [core::int i = #C2]) → void {}
 static inline-class-member method I|get#m(lowered final self::I /* = core::int */ #this) → (core::String, [core::int]) → void
   return (core::String s, [core::int i = #C2]) → void => self::I|m(#this, s, i);
-static inline-class-member method I2|_(dynamic it) → self::I2 /* = core::int */ {
+static inline-class-member method I2|_(core::int it) → self::I2 /* = core::int */ {
   lowered final self::I2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method I2|_#_#tearOff(dynamic it) → self::I2 /* = core::int */
+static inline-class-member method I2|_#_#tearOff(core::int it) → self::I2 /* = core::int */
   return self::I2|_(it);
 static inline-class-member method I2|(core::int x, {core::int? y = #C1}) → self::I2 /* = core::int */ {
   lowered final self::I2 /* = core::int */ #this = x.{core::num::+}(let final core::int? #t2 = y in #t2 == null ?{core::int} 87 : #t2{core::int}){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.modular.expect
index 769ed61..cfdc2e92 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.modular.expect
@@ -18,11 +18,11 @@
   constructor • = self::I2|;
   tearoff • = self::I2|_#new#tearOff;
 }
-static inline-class-member method I|_(dynamic it) → self::I /* = core::int */ {
+static inline-class-member method I|_(core::int it) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method I|_#_#tearOff(dynamic it) → self::I /* = core::int */
+static inline-class-member method I|_#_#tearOff(core::int it) → self::I /* = core::int */
   return self::I|_(it);
 static inline-class-member method I|(core::int x, [core::int? y = #C1]) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = x.{core::num::+}(let final core::int? #t1 = y in #t1 == null ?{core::int} 42 : #t1{core::int}){(core::num) → core::int};
@@ -33,11 +33,11 @@
 static inline-class-member method I|m(lowered final self::I /* = core::int */ #this, core::String s, [core::int i = #C2]) → void {}
 static inline-class-member method I|get#m(lowered final self::I /* = core::int */ #this) → (core::String, [core::int]) → void
   return (core::String s, [core::int i = #C2]) → void => self::I|m(#this, s, i);
-static inline-class-member method I2|_(dynamic it) → self::I2 /* = core::int */ {
+static inline-class-member method I2|_(core::int it) → self::I2 /* = core::int */ {
   lowered final self::I2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method I2|_#_#tearOff(dynamic it) → self::I2 /* = core::int */
+static inline-class-member method I2|_#_#tearOff(core::int it) → self::I2 /* = core::int */
   return self::I2|_(it);
 static inline-class-member method I2|(core::int x, {core::int? y = #C1}) → self::I2 /* = core::int */ {
   lowered final self::I2 /* = core::int */ #this = x.{core::num::+}(let final core::int? #t2 = y in #t2 == null ?{core::int} 87 : #t2{core::int}){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.outline.expect
index f7fcd93..57e8320 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.outline.expect
@@ -18,9 +18,9 @@
   constructor • = self::I2|;
   tearoff • = self::I2|_#new#tearOff;
 }
-static inline-class-member method I|_(dynamic it) → self::I /* = core::int */
+static inline-class-member method I|_(core::int it) → self::I /* = core::int */
   ;
-static inline-class-member method I|_#_#tearOff(dynamic it) → self::I /* = core::int */
+static inline-class-member method I|_#_#tearOff(core::int it) → self::I /* = core::int */
   return self::I|_(it);
 static inline-class-member method I|(core::int x, [core::int? y = null]) → self::I /* = core::int */
   ;
@@ -30,9 +30,9 @@
   ;
 static inline-class-member method I|get#m(lowered final self::I /* = core::int */ #this) → (core::String, [core::int]) → void
   return (core::String s, [core::int i]) → void => self::I|m(#this, s, i);
-static inline-class-member method I2|_(dynamic it) → self::I2 /* = core::int */
+static inline-class-member method I2|_(core::int it) → self::I2 /* = core::int */
   ;
-static inline-class-member method I2|_#_#tearOff(dynamic it) → self::I2 /* = core::int */
+static inline-class-member method I2|_#_#tearOff(core::int it) → self::I2 /* = core::int */
   return self::I2|_(it);
 static inline-class-member method I2|(core::int x, {core::int? y = null}) → self::I2 /* = core::int */
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.transformed.expect
index 769ed61..cfdc2e92 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructor_formal_parameters.dart.weak.transformed.expect
@@ -18,11 +18,11 @@
   constructor • = self::I2|;
   tearoff • = self::I2|_#new#tearOff;
 }
-static inline-class-member method I|_(dynamic it) → self::I /* = core::int */ {
+static inline-class-member method I|_(core::int it) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method I|_#_#tearOff(dynamic it) → self::I /* = core::int */
+static inline-class-member method I|_#_#tearOff(core::int it) → self::I /* = core::int */
   return self::I|_(it);
 static inline-class-member method I|(core::int x, [core::int? y = #C1]) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = x.{core::num::+}(let final core::int? #t1 = y in #t1 == null ?{core::int} 42 : #t1{core::int}){(core::num) → core::int};
@@ -33,11 +33,11 @@
 static inline-class-member method I|m(lowered final self::I /* = core::int */ #this, core::String s, [core::int i = #C2]) → void {}
 static inline-class-member method I|get#m(lowered final self::I /* = core::int */ #this) → (core::String, [core::int]) → void
   return (core::String s, [core::int i = #C2]) → void => self::I|m(#this, s, i);
-static inline-class-member method I2|_(dynamic it) → self::I2 /* = core::int */ {
+static inline-class-member method I2|_(core::int it) → self::I2 /* = core::int */ {
   lowered final self::I2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method I2|_#_#tearOff(dynamic it) → self::I2 /* = core::int */
+static inline-class-member method I2|_#_#tearOff(core::int it) → self::I2 /* = core::int */
   return self::I2|_(it);
 static inline-class-member method I2|(core::int x, {core::int? y = #C1}) → self::I2 /* = core::int */ {
   lowered final self::I2 /* = core::int */ #this = x.{core::num::+}(let final core::int? #t2 = y in #t2 == null ?{core::int} 87 : #t2{core::int}){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.strong.expect
index ae5e892..d9552a6 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.strong.expect
@@ -10,15 +10,15 @@
   constructor • = self::Class2|;
   tearoff • = self::Class2|_#new#tearOff;
 }
-static inline-class-member method Class1|(dynamic field) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|(field);
-static inline-class-member method Class2|(dynamic field) → self::Class2 /* = core::int */ {
+static inline-class-member method Class2|(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class2|_#new#tearOff(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|_#new#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|(field);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.strong.transformed.expect
index ae5e892..d9552a6 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.strong.transformed.expect
@@ -10,15 +10,15 @@
   constructor • = self::Class2|;
   tearoff • = self::Class2|_#new#tearOff;
 }
-static inline-class-member method Class1|(dynamic field) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|(field);
-static inline-class-member method Class2|(dynamic field) → self::Class2 /* = core::int */ {
+static inline-class-member method Class2|(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class2|_#new#tearOff(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|_#new#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|(field);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.expect
index ae5e892..d9552a6 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.expect
@@ -10,15 +10,15 @@
   constructor • = self::Class2|;
   tearoff • = self::Class2|_#new#tearOff;
 }
-static inline-class-member method Class1|(dynamic field) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|(field);
-static inline-class-member method Class2|(dynamic field) → self::Class2 /* = core::int */ {
+static inline-class-member method Class2|(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class2|_#new#tearOff(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|_#new#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|(field);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.modular.expect
index ae5e892..d9552a6 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.modular.expect
@@ -10,15 +10,15 @@
   constructor • = self::Class2|;
   tearoff • = self::Class2|_#new#tearOff;
 }
-static inline-class-member method Class1|(dynamic field) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|(field);
-static inline-class-member method Class2|(dynamic field) → self::Class2 /* = core::int */ {
+static inline-class-member method Class2|(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class2|_#new#tearOff(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|_#new#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|(field);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.outline.expect
index 6e06252..390bee8 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.outline.expect
@@ -10,11 +10,11 @@
   constructor • = self::Class2|;
   tearoff • = self::Class2|_#new#tearOff;
 }
-static inline-class-member method Class1|(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|(core::int field) → self::Class1 /* = core::int */
   ;
-static inline-class-member method Class1|_#new#tearOff(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|(field);
-static inline-class-member method Class2|(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|(core::int field) → self::Class2 /* = core::int */
   ;
-static inline-class-member method Class2|_#new#tearOff(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|_#new#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|(field);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.transformed.expect
index ae5e892..d9552a6 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/constructors.dart.weak.transformed.expect
@@ -10,15 +10,15 @@
   constructor • = self::Class2|;
   tearoff • = self::Class2|_#new#tearOff;
 }
-static inline-class-member method Class1|(dynamic field) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|(field);
-static inline-class-member method Class2|(dynamic field) → self::Class2 /* = core::int */ {
+static inline-class-member method Class2|(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class2|_#new#tearOff(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|_#new#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|(field);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.strong.expect
index cc10b40..a5e8b07 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.strong.expect
@@ -53,39 +53,39 @@
   constructor • = self::F|;
   tearoff • = self::F|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
-static inline-class-member method B|(dynamic it) → self::B /* = core::int */ {
+static inline-class-member method B|(core::int it) → self::B /* = core::int */ {
   lowered final self::B /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff(dynamic it) → self::B /* = core::int */
+static inline-class-member method B|_#new#tearOff(core::int it) → self::B /* = core::int */
   return self::B|(it);
-static inline-class-member method C|(dynamic it) → self::C /* = core::int */ {
+static inline-class-member method C|(core::int it) → self::C /* = core::int */ {
   lowered final self::C /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff(dynamic it) → self::C /* = core::int */
+static inline-class-member method C|_#new#tearOff(core::int it) → self::C /* = core::int */
   return self::C|(it);
-static inline-class-member method D|(dynamic it) → self::D /* = core::int */ {
+static inline-class-member method D|(core::int it) → self::D /* = core::int */ {
   lowered final self::D /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|_#new#tearOff(core::int it) → self::D /* = core::int */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int */ {
+static inline-class-member method E|(core::int it) → self::E /* = core::int */ {
   lowered final self::E /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|_#new#tearOff(core::int it) → self::E /* = core::int */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = core::int */ {
+static inline-class-member method F|(core::int it) → self::F /* = core::int */ {
   lowered final self::F /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = core::int */
+static inline-class-member method F|_#new#tearOff(core::int it) → self::F /* = core::int */
   return self::F|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.strong.transformed.expect
index cc10b40..a5e8b07 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.strong.transformed.expect
@@ -53,39 +53,39 @@
   constructor • = self::F|;
   tearoff • = self::F|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
-static inline-class-member method B|(dynamic it) → self::B /* = core::int */ {
+static inline-class-member method B|(core::int it) → self::B /* = core::int */ {
   lowered final self::B /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff(dynamic it) → self::B /* = core::int */
+static inline-class-member method B|_#new#tearOff(core::int it) → self::B /* = core::int */
   return self::B|(it);
-static inline-class-member method C|(dynamic it) → self::C /* = core::int */ {
+static inline-class-member method C|(core::int it) → self::C /* = core::int */ {
   lowered final self::C /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff(dynamic it) → self::C /* = core::int */
+static inline-class-member method C|_#new#tearOff(core::int it) → self::C /* = core::int */
   return self::C|(it);
-static inline-class-member method D|(dynamic it) → self::D /* = core::int */ {
+static inline-class-member method D|(core::int it) → self::D /* = core::int */ {
   lowered final self::D /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|_#new#tearOff(core::int it) → self::D /* = core::int */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int */ {
+static inline-class-member method E|(core::int it) → self::E /* = core::int */ {
   lowered final self::E /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|_#new#tearOff(core::int it) → self::E /* = core::int */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = core::int */ {
+static inline-class-member method F|(core::int it) → self::F /* = core::int */ {
   lowered final self::F /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = core::int */
+static inline-class-member method F|_#new#tearOff(core::int it) → self::F /* = core::int */
   return self::F|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.expect
index cc10b40..a5e8b07 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.expect
@@ -53,39 +53,39 @@
   constructor • = self::F|;
   tearoff • = self::F|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
-static inline-class-member method B|(dynamic it) → self::B /* = core::int */ {
+static inline-class-member method B|(core::int it) → self::B /* = core::int */ {
   lowered final self::B /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff(dynamic it) → self::B /* = core::int */
+static inline-class-member method B|_#new#tearOff(core::int it) → self::B /* = core::int */
   return self::B|(it);
-static inline-class-member method C|(dynamic it) → self::C /* = core::int */ {
+static inline-class-member method C|(core::int it) → self::C /* = core::int */ {
   lowered final self::C /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff(dynamic it) → self::C /* = core::int */
+static inline-class-member method C|_#new#tearOff(core::int it) → self::C /* = core::int */
   return self::C|(it);
-static inline-class-member method D|(dynamic it) → self::D /* = core::int */ {
+static inline-class-member method D|(core::int it) → self::D /* = core::int */ {
   lowered final self::D /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|_#new#tearOff(core::int it) → self::D /* = core::int */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int */ {
+static inline-class-member method E|(core::int it) → self::E /* = core::int */ {
   lowered final self::E /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|_#new#tearOff(core::int it) → self::E /* = core::int */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = core::int */ {
+static inline-class-member method F|(core::int it) → self::F /* = core::int */ {
   lowered final self::F /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = core::int */
+static inline-class-member method F|_#new#tearOff(core::int it) → self::F /* = core::int */
   return self::F|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.modular.expect
index cc10b40..a5e8b07 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.modular.expect
@@ -53,39 +53,39 @@
   constructor • = self::F|;
   tearoff • = self::F|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
-static inline-class-member method B|(dynamic it) → self::B /* = core::int */ {
+static inline-class-member method B|(core::int it) → self::B /* = core::int */ {
   lowered final self::B /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff(dynamic it) → self::B /* = core::int */
+static inline-class-member method B|_#new#tearOff(core::int it) → self::B /* = core::int */
   return self::B|(it);
-static inline-class-member method C|(dynamic it) → self::C /* = core::int */ {
+static inline-class-member method C|(core::int it) → self::C /* = core::int */ {
   lowered final self::C /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff(dynamic it) → self::C /* = core::int */
+static inline-class-member method C|_#new#tearOff(core::int it) → self::C /* = core::int */
   return self::C|(it);
-static inline-class-member method D|(dynamic it) → self::D /* = core::int */ {
+static inline-class-member method D|(core::int it) → self::D /* = core::int */ {
   lowered final self::D /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|_#new#tearOff(core::int it) → self::D /* = core::int */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int */ {
+static inline-class-member method E|(core::int it) → self::E /* = core::int */ {
   lowered final self::E /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|_#new#tearOff(core::int it) → self::E /* = core::int */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = core::int */ {
+static inline-class-member method F|(core::int it) → self::F /* = core::int */ {
   lowered final self::F /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = core::int */
+static inline-class-member method F|_#new#tearOff(core::int it) → self::F /* = core::int */
   return self::F|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.outline.expect
index d5245a8..190e91b 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.outline.expect
@@ -53,27 +53,27 @@
   constructor • = self::F|;
   tearoff • = self::F|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|(core::int it) → self::A /* = core::int */
   ;
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
-static inline-class-member method B|(dynamic it) → self::B /* = core::int */
+static inline-class-member method B|(core::int it) → self::B /* = core::int */
   ;
-static inline-class-member method B|_#new#tearOff(dynamic it) → self::B /* = core::int */
+static inline-class-member method B|_#new#tearOff(core::int it) → self::B /* = core::int */
   return self::B|(it);
-static inline-class-member method C|(dynamic it) → self::C /* = core::int */
+static inline-class-member method C|(core::int it) → self::C /* = core::int */
   ;
-static inline-class-member method C|_#new#tearOff(dynamic it) → self::C /* = core::int */
+static inline-class-member method C|_#new#tearOff(core::int it) → self::C /* = core::int */
   return self::C|(it);
-static inline-class-member method D|(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|(core::int it) → self::D /* = core::int */
   ;
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|_#new#tearOff(core::int it) → self::D /* = core::int */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|(core::int it) → self::E /* = core::int */
   ;
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|_#new#tearOff(core::int it) → self::E /* = core::int */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = core::int */
+static inline-class-member method F|(core::int it) → self::F /* = core::int */
   ;
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = core::int */
+static inline-class-member method F|_#new#tearOff(core::int it) → self::F /* = core::int */
   return self::F|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.transformed.expect
index cc10b40..a5e8b07 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/cyclic_extension_types.dart.weak.transformed.expect
@@ -53,39 +53,39 @@
   constructor • = self::F|;
   tearoff • = self::F|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
-static inline-class-member method B|(dynamic it) → self::B /* = core::int */ {
+static inline-class-member method B|(core::int it) → self::B /* = core::int */ {
   lowered final self::B /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff(dynamic it) → self::B /* = core::int */
+static inline-class-member method B|_#new#tearOff(core::int it) → self::B /* = core::int */
   return self::B|(it);
-static inline-class-member method C|(dynamic it) → self::C /* = core::int */ {
+static inline-class-member method C|(core::int it) → self::C /* = core::int */ {
   lowered final self::C /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff(dynamic it) → self::C /* = core::int */
+static inline-class-member method C|_#new#tearOff(core::int it) → self::C /* = core::int */
   return self::C|(it);
-static inline-class-member method D|(dynamic it) → self::D /* = core::int */ {
+static inline-class-member method D|(core::int it) → self::D /* = core::int */ {
   lowered final self::D /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|_#new#tearOff(core::int it) → self::D /* = core::int */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int */ {
+static inline-class-member method E|(core::int it) → self::E /* = core::int */ {
   lowered final self::E /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|_#new#tearOff(core::int it) → self::E /* = core::int */
   return self::E|(it);
-static inline-class-member method F|(dynamic it) → self::F /* = core::int */ {
+static inline-class-member method F|(core::int it) → self::F /* = core::int */ {
   lowered final self::F /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method F|_#new#tearOff(dynamic it) → self::F /* = core::int */
+static inline-class-member method F|_#new#tearOff(core::int it) → self::F /* = core::int */
   return self::F|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.strong.expect
index f5a4965..89d82bc 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.strong.expect
@@ -331,185 +331,185 @@
   constructor • = self::E24|;
   tearoff • = self::E24|_#new#tearOff;
 }
-static inline-class-member method E1|(dynamic it) → self::E1 /* = invalid-type */ {
+static inline-class-member method E1|(self::E1 /* = invalid-type */ it) → self::E1 /* = invalid-type */ {
   lowered final self::E1 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E1|_#new#tearOff(dynamic it) → self::E1 /* = invalid-type */
+static inline-class-member method E1|_#new#tearOff(self::E1 /* = invalid-type */ it) → self::E1 /* = invalid-type */
   return self::E1|(it);
-static inline-class-member method E2a|(dynamic it) → self::E2a /* = invalid-type */ {
+static inline-class-member method E2a|(self::E2b /* = invalid-type */ it) → self::E2a /* = invalid-type */ {
   lowered final self::E2a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E2a|_#new#tearOff(dynamic it) → self::E2a /* = invalid-type */
+static inline-class-member method E2a|_#new#tearOff(self::E2b /* = invalid-type */ it) → self::E2a /* = invalid-type */
   return self::E2a|(it);
-static inline-class-member method E2b|(dynamic it) → self::E2b /* = invalid-type */ {
+static inline-class-member method E2b|(self::E2a /* = invalid-type */ it) → self::E2b /* = invalid-type */ {
   lowered final self::E2b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E2b|_#new#tearOff(dynamic it) → self::E2b /* = invalid-type */
+static inline-class-member method E2b|_#new#tearOff(self::E2a /* = invalid-type */ it) → self::E2b /* = invalid-type */
   return self::E2b|(it);
-static inline-class-member method E3a|(dynamic it) → self::E3a /* = invalid-type */ {
+static inline-class-member method E3a|(self::E3b /* = invalid-type */ it) → self::E3a /* = invalid-type */ {
   lowered final self::E3a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3a|_#new#tearOff(dynamic it) → self::E3a /* = invalid-type */
+static inline-class-member method E3a|_#new#tearOff(self::E3b /* = invalid-type */ it) → self::E3a /* = invalid-type */
   return self::E3a|(it);
-static inline-class-member method E3b|(dynamic it) → self::E3b /* = invalid-type */ {
+static inline-class-member method E3b|(self::E3c /* = invalid-type */ it) → self::E3b /* = invalid-type */ {
   lowered final self::E3b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3b|_#new#tearOff(dynamic it) → self::E3b /* = invalid-type */
+static inline-class-member method E3b|_#new#tearOff(self::E3c /* = invalid-type */ it) → self::E3b /* = invalid-type */
   return self::E3b|(it);
-static inline-class-member method E3c|(dynamic it) → self::E3c /* = invalid-type */ {
+static inline-class-member method E3c|(self::E3a /* = invalid-type */ it) → self::E3c /* = invalid-type */ {
   lowered final self::E3c /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3c|_#new#tearOff(dynamic it) → self::E3c /* = invalid-type */
+static inline-class-member method E3c|_#new#tearOff(self::E3a /* = invalid-type */ it) → self::E3c /* = invalid-type */
   return self::E3c|(it);
-static inline-class-member method E4|(dynamic it) → self::E4 /* = invalid-type */ {
+static inline-class-member method E4|(() → self::E4 /* = invalid-type */ it) → self::E4 /* = invalid-type */ {
   lowered final self::E4 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E4|_#new#tearOff(dynamic it) → self::E4 /* = invalid-type */
+static inline-class-member method E4|_#new#tearOff(() → self::E4 /* = invalid-type */ it) → self::E4 /* = invalid-type */
   return self::E4|(it);
-static inline-class-member method E5|(dynamic it) → self::E5 /* = invalid-type */ {
+static inline-class-member method E5|((self::E5 /* = invalid-type */) → void it) → self::E5 /* = invalid-type */ {
   lowered final self::E5 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E5|_#new#tearOff(dynamic it) → self::E5 /* = invalid-type */
+static inline-class-member method E5|_#new#tearOff((self::E5 /* = invalid-type */) → void it) → self::E5 /* = invalid-type */
   return self::E5|(it);
-static inline-class-member method E6|(dynamic it) → self::E6 /* = invalid-type */ {
+static inline-class-member method E6|((self::E6 /* = invalid-type */, core::int) it) → self::E6 /* = invalid-type */ {
   lowered final self::E6 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E6|_#new#tearOff(dynamic it) → self::E6 /* = invalid-type */
+static inline-class-member method E6|_#new#tearOff((self::E6 /* = invalid-type */, core::int) it) → self::E6 /* = invalid-type */
   return self::E6|(it);
-static inline-class-member method E7|_#new#tearOff(dynamic it) → self::E7 /* = invalid-type */
+static inline-class-member method E7|_#new#tearOff(<T extends self::E7 /* = invalid-type */ = dynamic>() → void it) → self::E7 /* = invalid-type */
   return self::E7|(it);
-static inline-class-member method E7|(dynamic it) → self::E7 /* = invalid-type */ {
+static inline-class-member method E7|(<T extends self::E7 /* = invalid-type */ = dynamic>() → void it) → self::E7 /* = invalid-type */ {
   lowered final self::E7 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E8|<T extends core::Object? = dynamic>(dynamic it) → self::E8<self::E8|::T%> /* = invalid-type */ {
+static inline-class-member method E8|<T extends core::Object? = dynamic>(core::List<self::E8<dynamic> /* = invalid-type */> it) → self::E8<self::E8|::T%> /* = invalid-type */ {
   lowered final self::E8<self::E8|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E8|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E8<self::E8|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E8|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::E8<dynamic> /* = invalid-type */> it) → self::E8<self::E8|_#new#tearOff::T%> /* = invalid-type */
   return self::E8|<self::E8|_#new#tearOff::T%>(it);
-static inline-class-member method E9|(dynamic it) → self::E9 /* = invalid-type */ {
+static inline-class-member method E9|(self::E9 /* = invalid-type */ it) → self::E9 /* = invalid-type */ {
   lowered final self::E9 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E9|_#new#tearOff(dynamic it) → self::E9 /* = invalid-type */
+static inline-class-member method E9|_#new#tearOff(self::E9 /* = invalid-type */ it) → self::E9 /* = invalid-type */
   return self::E9|(it);
-static inline-class-member method E10|<T extends core::Object? = dynamic>(dynamic it) → self::E10<self::E10|::T%> /* = invalid-type */ {
+static inline-class-member method E10|<T extends core::Object? = dynamic>(self::E10<self::E10|::T%> /* = invalid-type */ it) → self::E10<self::E10|::T%> /* = invalid-type */ {
   lowered final self::E10<self::E10|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E10|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E10|_#new#tearOff<T extends core::Object? = dynamic>(self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */ it) → self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */
   return self::E10|<self::E10|_#new#tearOff::T%>(it);
-static inline-class-member method E11|(dynamic it) → self::E11 /* = invalid-type */ {
+static inline-class-member method E11|(() → self::E11 /* = invalid-type */ it) → self::E11 /* = invalid-type */ {
   lowered final self::E11 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E11|_#new#tearOff(dynamic it) → self::E11 /* = invalid-type */
+static inline-class-member method E11|_#new#tearOff(() → self::E11 /* = invalid-type */ it) → self::E11 /* = invalid-type */
   return self::E11|(it);
-static inline-class-member method E12|(dynamic it) → self::E12 /* = invalid-type */ {
+static inline-class-member method E12|((self::E12 /* = invalid-type */) → void it) → self::E12 /* = invalid-type */ {
   lowered final self::E12 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E12|_#new#tearOff(dynamic it) → self::E12 /* = invalid-type */
+static inline-class-member method E12|_#new#tearOff((self::E12 /* = invalid-type */) → void it) → self::E12 /* = invalid-type */
   return self::E12|(it);
-static inline-class-member method E13|(dynamic it) → self::E13 /* = invalid-type */ {
+static inline-class-member method E13|(<T extends self::E13 /* = invalid-type */ = dynamic>() → void it) → self::E13 /* = invalid-type */ {
   lowered final self::E13 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E13|_#new#tearOff(dynamic it) → self::E13 /* = invalid-type */
+static inline-class-member method E13|_#new#tearOff(<T extends self::E13 /* = invalid-type */ = dynamic>() → void it) → self::E13 /* = invalid-type */
   return self::E13|(it);
-static inline-class-member method E14|(dynamic it) → self::E14 /* = core::int */ {
+static inline-class-member method E14|(core::int it) → self::E14 /* = core::int */ {
   lowered final self::E14 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E14|_#new#tearOff(dynamic it) → self::E14 /* = core::int */
+static inline-class-member method E14|_#new#tearOff(core::int it) → self::E14 /* = core::int */
   return self::E14|(it);
-static inline-class-member method E15a|(dynamic it) → self::E15a /* = invalid-type */ {
+static inline-class-member method E15a|(core::List<self::E15b /* = invalid-type */> it) → self::E15a /* = invalid-type */ {
   lowered final self::E15a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E15a|_#new#tearOff(dynamic it) → self::E15a /* = invalid-type */
+static inline-class-member method E15a|_#new#tearOff(core::List<self::E15b /* = invalid-type */> it) → self::E15a /* = invalid-type */
   return self::E15a|(it);
-static inline-class-member method E15b|(dynamic it) → self::E15b /* = invalid-type */ {
+static inline-class-member method E15b|(core::List<self::E15a /* = invalid-type */> it) → self::E15b /* = invalid-type */ {
   lowered final self::E15b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E15b|_#new#tearOff(dynamic it) → self::E15b /* = invalid-type */
+static inline-class-member method E15b|_#new#tearOff(core::List<self::E15a /* = invalid-type */> it) → self::E15b /* = invalid-type */
   return self::E15b|(it);
-static inline-class-member method E16a|(dynamic it) → self::E16a /* = invalid-type */ {
+static inline-class-member method E16a|(core::List<self::E16b /* = invalid-type */> it) → self::E16a /* = invalid-type */ {
   lowered final self::E16a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E16a|_#new#tearOff(dynamic it) → self::E16a /* = invalid-type */
+static inline-class-member method E16a|_#new#tearOff(core::List<self::E16b /* = invalid-type */> it) → self::E16a /* = invalid-type */
   return self::E16a|(it);
-static inline-class-member method E16b|(dynamic it) → self::E16b /* = invalid-type */ {
+static inline-class-member method E16b|(core::List<self::E16a /* = invalid-type */> it) → self::E16b /* = invalid-type */ {
   lowered final self::E16b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E16b|_#new#tearOff(dynamic it) → self::E16b /* = invalid-type */
+static inline-class-member method E16b|_#new#tearOff(core::List<self::E16a /* = invalid-type */> it) → self::E16b /* = invalid-type */
   return self::E16b|(it);
-static inline-class-member method E17|(dynamic it) → self::E17 /* = invalid-type */ {
+static inline-class-member method E17|((core::int, {required a: self::E17 /* = invalid-type */}) it) → self::E17 /* = invalid-type */ {
   lowered final self::E17 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E17|_#new#tearOff(dynamic it) → self::E17 /* = invalid-type */
+static inline-class-member method E17|_#new#tearOff((core::int, {required a: self::E17 /* = invalid-type */}) it) → self::E17 /* = invalid-type */
   return self::E17|(it);
-static inline-class-member method E18|(dynamic it) → self::E18 /* = invalid-type */ {
+static inline-class-member method E18|((self::E18 /* = invalid-type */) → void it) → self::E18 /* = invalid-type */ {
   lowered final self::E18 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E18|_#new#tearOff(dynamic it) → self::E18 /* = invalid-type */
+static inline-class-member method E18|_#new#tearOff((self::E18 /* = invalid-type */) → void it) → self::E18 /* = invalid-type */
   return self::E18|(it);
-static inline-class-member method E19a|(dynamic it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ {
+static inline-class-member method E19a|((self::E19b /* = core::int */, self::E19b /* = core::int */) it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ {
   lowered final self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ #this = it;
   return #this;
 }
-static inline-class-member method E19a|_#new#tearOff(dynamic it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
+static inline-class-member method E19a|_#new#tearOff((self::E19b /* = core::int */, self::E19b /* = core::int */) it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
   return self::E19a|(it);
-static inline-class-member method E19b|(dynamic it) → self::E19b /* = core::int */ {
+static inline-class-member method E19b|(core::int it) → self::E19b /* = core::int */ {
   lowered final self::E19b /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E19b|_#new#tearOff(dynamic it) → self::E19b /* = core::int */
+static inline-class-member method E19b|_#new#tearOff(core::int it) → self::E19b /* = core::int */
   return self::E19b|(it);
-static inline-class-member method E20|(dynamic it) → self::E20 /* = invalid-type */ {
+static inline-class-member method E20|(invalid-type it) → self::E20 /* = invalid-type */ {
   lowered final self::E20 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E20|_#new#tearOff(dynamic it) → self::E20 /* = invalid-type */
+static inline-class-member method E20|_#new#tearOff(invalid-type it) → self::E20 /* = invalid-type */
   return self::E20|(it);
-static inline-class-member method E21|(dynamic it) → self::E21 /* = invalid-type */ {
+static inline-class-member method E21|(invalid-type it) → self::E21 /* = invalid-type */ {
   lowered final self::E21 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E21|_#new#tearOff(dynamic it) → self::E21 /* = invalid-type */
+static inline-class-member method E21|_#new#tearOff(invalid-type it) → self::E21 /* = invalid-type */
   return self::E21|(it);
-static inline-class-member method E22|(dynamic it) → self::E22 /* = invalid-type */ {
+static inline-class-member method E22|(invalid-type it) → self::E22 /* = invalid-type */ {
   lowered final self::E22 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E22|_#new#tearOff(dynamic it) → self::E22 /* = invalid-type */
+static inline-class-member method E22|_#new#tearOff(invalid-type it) → self::E22 /* = invalid-type */
   return self::E22|(it);
-static inline-class-member method E23|(dynamic it) → self::E23 /* = invalid-type */ {
+static inline-class-member method E23|(core::List<self::E23 /* = invalid-type */> it) → self::E23 /* = invalid-type */ {
   lowered final self::E23 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E23|_#new#tearOff(dynamic it) → self::E23 /* = invalid-type */
+static inline-class-member method E23|_#new#tearOff(core::List<self::E23 /* = invalid-type */> it) → self::E23 /* = invalid-type */
   return self::E23|(it);
-static inline-class-member method E24|<T extends core::Object? = dynamic>(dynamic it) → self::E24<self::E24|::T%> /* = invalid-type */ {
+static inline-class-member method E24|<T extends core::Object? = dynamic>(core::List<self::E24<dynamic> /* = invalid-type */> it) → self::E24<self::E24|::T%> /* = invalid-type */ {
   lowered final self::E24<self::E24|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E24|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E24<self::E24|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E24|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::E24<dynamic> /* = invalid-type */> it) → self::E24<self::E24|_#new#tearOff::T%> /* = invalid-type */
   return self::E24|<self::E24|_#new#tearOff::T%>(it);
 static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/integers_patch.dart */ _#Alias14#fromEnvironment#tearOff<unrelated T extends core::Object? = dynamic>(core::String name, {core::int defaultValue = #C1}) → core::int
   return core::int::fromEnvironment(name, defaultValue: defaultValue);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.strong.transformed.expect
index f5a4965..89d82bc 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.strong.transformed.expect
@@ -331,185 +331,185 @@
   constructor • = self::E24|;
   tearoff • = self::E24|_#new#tearOff;
 }
-static inline-class-member method E1|(dynamic it) → self::E1 /* = invalid-type */ {
+static inline-class-member method E1|(self::E1 /* = invalid-type */ it) → self::E1 /* = invalid-type */ {
   lowered final self::E1 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E1|_#new#tearOff(dynamic it) → self::E1 /* = invalid-type */
+static inline-class-member method E1|_#new#tearOff(self::E1 /* = invalid-type */ it) → self::E1 /* = invalid-type */
   return self::E1|(it);
-static inline-class-member method E2a|(dynamic it) → self::E2a /* = invalid-type */ {
+static inline-class-member method E2a|(self::E2b /* = invalid-type */ it) → self::E2a /* = invalid-type */ {
   lowered final self::E2a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E2a|_#new#tearOff(dynamic it) → self::E2a /* = invalid-type */
+static inline-class-member method E2a|_#new#tearOff(self::E2b /* = invalid-type */ it) → self::E2a /* = invalid-type */
   return self::E2a|(it);
-static inline-class-member method E2b|(dynamic it) → self::E2b /* = invalid-type */ {
+static inline-class-member method E2b|(self::E2a /* = invalid-type */ it) → self::E2b /* = invalid-type */ {
   lowered final self::E2b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E2b|_#new#tearOff(dynamic it) → self::E2b /* = invalid-type */
+static inline-class-member method E2b|_#new#tearOff(self::E2a /* = invalid-type */ it) → self::E2b /* = invalid-type */
   return self::E2b|(it);
-static inline-class-member method E3a|(dynamic it) → self::E3a /* = invalid-type */ {
+static inline-class-member method E3a|(self::E3b /* = invalid-type */ it) → self::E3a /* = invalid-type */ {
   lowered final self::E3a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3a|_#new#tearOff(dynamic it) → self::E3a /* = invalid-type */
+static inline-class-member method E3a|_#new#tearOff(self::E3b /* = invalid-type */ it) → self::E3a /* = invalid-type */
   return self::E3a|(it);
-static inline-class-member method E3b|(dynamic it) → self::E3b /* = invalid-type */ {
+static inline-class-member method E3b|(self::E3c /* = invalid-type */ it) → self::E3b /* = invalid-type */ {
   lowered final self::E3b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3b|_#new#tearOff(dynamic it) → self::E3b /* = invalid-type */
+static inline-class-member method E3b|_#new#tearOff(self::E3c /* = invalid-type */ it) → self::E3b /* = invalid-type */
   return self::E3b|(it);
-static inline-class-member method E3c|(dynamic it) → self::E3c /* = invalid-type */ {
+static inline-class-member method E3c|(self::E3a /* = invalid-type */ it) → self::E3c /* = invalid-type */ {
   lowered final self::E3c /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3c|_#new#tearOff(dynamic it) → self::E3c /* = invalid-type */
+static inline-class-member method E3c|_#new#tearOff(self::E3a /* = invalid-type */ it) → self::E3c /* = invalid-type */
   return self::E3c|(it);
-static inline-class-member method E4|(dynamic it) → self::E4 /* = invalid-type */ {
+static inline-class-member method E4|(() → self::E4 /* = invalid-type */ it) → self::E4 /* = invalid-type */ {
   lowered final self::E4 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E4|_#new#tearOff(dynamic it) → self::E4 /* = invalid-type */
+static inline-class-member method E4|_#new#tearOff(() → self::E4 /* = invalid-type */ it) → self::E4 /* = invalid-type */
   return self::E4|(it);
-static inline-class-member method E5|(dynamic it) → self::E5 /* = invalid-type */ {
+static inline-class-member method E5|((self::E5 /* = invalid-type */) → void it) → self::E5 /* = invalid-type */ {
   lowered final self::E5 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E5|_#new#tearOff(dynamic it) → self::E5 /* = invalid-type */
+static inline-class-member method E5|_#new#tearOff((self::E5 /* = invalid-type */) → void it) → self::E5 /* = invalid-type */
   return self::E5|(it);
-static inline-class-member method E6|(dynamic it) → self::E6 /* = invalid-type */ {
+static inline-class-member method E6|((self::E6 /* = invalid-type */, core::int) it) → self::E6 /* = invalid-type */ {
   lowered final self::E6 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E6|_#new#tearOff(dynamic it) → self::E6 /* = invalid-type */
+static inline-class-member method E6|_#new#tearOff((self::E6 /* = invalid-type */, core::int) it) → self::E6 /* = invalid-type */
   return self::E6|(it);
-static inline-class-member method E7|_#new#tearOff(dynamic it) → self::E7 /* = invalid-type */
+static inline-class-member method E7|_#new#tearOff(<T extends self::E7 /* = invalid-type */ = dynamic>() → void it) → self::E7 /* = invalid-type */
   return self::E7|(it);
-static inline-class-member method E7|(dynamic it) → self::E7 /* = invalid-type */ {
+static inline-class-member method E7|(<T extends self::E7 /* = invalid-type */ = dynamic>() → void it) → self::E7 /* = invalid-type */ {
   lowered final self::E7 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E8|<T extends core::Object? = dynamic>(dynamic it) → self::E8<self::E8|::T%> /* = invalid-type */ {
+static inline-class-member method E8|<T extends core::Object? = dynamic>(core::List<self::E8<dynamic> /* = invalid-type */> it) → self::E8<self::E8|::T%> /* = invalid-type */ {
   lowered final self::E8<self::E8|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E8|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E8<self::E8|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E8|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::E8<dynamic> /* = invalid-type */> it) → self::E8<self::E8|_#new#tearOff::T%> /* = invalid-type */
   return self::E8|<self::E8|_#new#tearOff::T%>(it);
-static inline-class-member method E9|(dynamic it) → self::E9 /* = invalid-type */ {
+static inline-class-member method E9|(self::E9 /* = invalid-type */ it) → self::E9 /* = invalid-type */ {
   lowered final self::E9 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E9|_#new#tearOff(dynamic it) → self::E9 /* = invalid-type */
+static inline-class-member method E9|_#new#tearOff(self::E9 /* = invalid-type */ it) → self::E9 /* = invalid-type */
   return self::E9|(it);
-static inline-class-member method E10|<T extends core::Object? = dynamic>(dynamic it) → self::E10<self::E10|::T%> /* = invalid-type */ {
+static inline-class-member method E10|<T extends core::Object? = dynamic>(self::E10<self::E10|::T%> /* = invalid-type */ it) → self::E10<self::E10|::T%> /* = invalid-type */ {
   lowered final self::E10<self::E10|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E10|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E10|_#new#tearOff<T extends core::Object? = dynamic>(self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */ it) → self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */
   return self::E10|<self::E10|_#new#tearOff::T%>(it);
-static inline-class-member method E11|(dynamic it) → self::E11 /* = invalid-type */ {
+static inline-class-member method E11|(() → self::E11 /* = invalid-type */ it) → self::E11 /* = invalid-type */ {
   lowered final self::E11 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E11|_#new#tearOff(dynamic it) → self::E11 /* = invalid-type */
+static inline-class-member method E11|_#new#tearOff(() → self::E11 /* = invalid-type */ it) → self::E11 /* = invalid-type */
   return self::E11|(it);
-static inline-class-member method E12|(dynamic it) → self::E12 /* = invalid-type */ {
+static inline-class-member method E12|((self::E12 /* = invalid-type */) → void it) → self::E12 /* = invalid-type */ {
   lowered final self::E12 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E12|_#new#tearOff(dynamic it) → self::E12 /* = invalid-type */
+static inline-class-member method E12|_#new#tearOff((self::E12 /* = invalid-type */) → void it) → self::E12 /* = invalid-type */
   return self::E12|(it);
-static inline-class-member method E13|(dynamic it) → self::E13 /* = invalid-type */ {
+static inline-class-member method E13|(<T extends self::E13 /* = invalid-type */ = dynamic>() → void it) → self::E13 /* = invalid-type */ {
   lowered final self::E13 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E13|_#new#tearOff(dynamic it) → self::E13 /* = invalid-type */
+static inline-class-member method E13|_#new#tearOff(<T extends self::E13 /* = invalid-type */ = dynamic>() → void it) → self::E13 /* = invalid-type */
   return self::E13|(it);
-static inline-class-member method E14|(dynamic it) → self::E14 /* = core::int */ {
+static inline-class-member method E14|(core::int it) → self::E14 /* = core::int */ {
   lowered final self::E14 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E14|_#new#tearOff(dynamic it) → self::E14 /* = core::int */
+static inline-class-member method E14|_#new#tearOff(core::int it) → self::E14 /* = core::int */
   return self::E14|(it);
-static inline-class-member method E15a|(dynamic it) → self::E15a /* = invalid-type */ {
+static inline-class-member method E15a|(core::List<self::E15b /* = invalid-type */> it) → self::E15a /* = invalid-type */ {
   lowered final self::E15a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E15a|_#new#tearOff(dynamic it) → self::E15a /* = invalid-type */
+static inline-class-member method E15a|_#new#tearOff(core::List<self::E15b /* = invalid-type */> it) → self::E15a /* = invalid-type */
   return self::E15a|(it);
-static inline-class-member method E15b|(dynamic it) → self::E15b /* = invalid-type */ {
+static inline-class-member method E15b|(core::List<self::E15a /* = invalid-type */> it) → self::E15b /* = invalid-type */ {
   lowered final self::E15b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E15b|_#new#tearOff(dynamic it) → self::E15b /* = invalid-type */
+static inline-class-member method E15b|_#new#tearOff(core::List<self::E15a /* = invalid-type */> it) → self::E15b /* = invalid-type */
   return self::E15b|(it);
-static inline-class-member method E16a|(dynamic it) → self::E16a /* = invalid-type */ {
+static inline-class-member method E16a|(core::List<self::E16b /* = invalid-type */> it) → self::E16a /* = invalid-type */ {
   lowered final self::E16a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E16a|_#new#tearOff(dynamic it) → self::E16a /* = invalid-type */
+static inline-class-member method E16a|_#new#tearOff(core::List<self::E16b /* = invalid-type */> it) → self::E16a /* = invalid-type */
   return self::E16a|(it);
-static inline-class-member method E16b|(dynamic it) → self::E16b /* = invalid-type */ {
+static inline-class-member method E16b|(core::List<self::E16a /* = invalid-type */> it) → self::E16b /* = invalid-type */ {
   lowered final self::E16b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E16b|_#new#tearOff(dynamic it) → self::E16b /* = invalid-type */
+static inline-class-member method E16b|_#new#tearOff(core::List<self::E16a /* = invalid-type */> it) → self::E16b /* = invalid-type */
   return self::E16b|(it);
-static inline-class-member method E17|(dynamic it) → self::E17 /* = invalid-type */ {
+static inline-class-member method E17|((core::int, {required a: self::E17 /* = invalid-type */}) it) → self::E17 /* = invalid-type */ {
   lowered final self::E17 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E17|_#new#tearOff(dynamic it) → self::E17 /* = invalid-type */
+static inline-class-member method E17|_#new#tearOff((core::int, {required a: self::E17 /* = invalid-type */}) it) → self::E17 /* = invalid-type */
   return self::E17|(it);
-static inline-class-member method E18|(dynamic it) → self::E18 /* = invalid-type */ {
+static inline-class-member method E18|((self::E18 /* = invalid-type */) → void it) → self::E18 /* = invalid-type */ {
   lowered final self::E18 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E18|_#new#tearOff(dynamic it) → self::E18 /* = invalid-type */
+static inline-class-member method E18|_#new#tearOff((self::E18 /* = invalid-type */) → void it) → self::E18 /* = invalid-type */
   return self::E18|(it);
-static inline-class-member method E19a|(dynamic it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ {
+static inline-class-member method E19a|((self::E19b /* = core::int */, self::E19b /* = core::int */) it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ {
   lowered final self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ #this = it;
   return #this;
 }
-static inline-class-member method E19a|_#new#tearOff(dynamic it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
+static inline-class-member method E19a|_#new#tearOff((self::E19b /* = core::int */, self::E19b /* = core::int */) it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
   return self::E19a|(it);
-static inline-class-member method E19b|(dynamic it) → self::E19b /* = core::int */ {
+static inline-class-member method E19b|(core::int it) → self::E19b /* = core::int */ {
   lowered final self::E19b /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E19b|_#new#tearOff(dynamic it) → self::E19b /* = core::int */
+static inline-class-member method E19b|_#new#tearOff(core::int it) → self::E19b /* = core::int */
   return self::E19b|(it);
-static inline-class-member method E20|(dynamic it) → self::E20 /* = invalid-type */ {
+static inline-class-member method E20|(invalid-type it) → self::E20 /* = invalid-type */ {
   lowered final self::E20 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E20|_#new#tearOff(dynamic it) → self::E20 /* = invalid-type */
+static inline-class-member method E20|_#new#tearOff(invalid-type it) → self::E20 /* = invalid-type */
   return self::E20|(it);
-static inline-class-member method E21|(dynamic it) → self::E21 /* = invalid-type */ {
+static inline-class-member method E21|(invalid-type it) → self::E21 /* = invalid-type */ {
   lowered final self::E21 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E21|_#new#tearOff(dynamic it) → self::E21 /* = invalid-type */
+static inline-class-member method E21|_#new#tearOff(invalid-type it) → self::E21 /* = invalid-type */
   return self::E21|(it);
-static inline-class-member method E22|(dynamic it) → self::E22 /* = invalid-type */ {
+static inline-class-member method E22|(invalid-type it) → self::E22 /* = invalid-type */ {
   lowered final self::E22 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E22|_#new#tearOff(dynamic it) → self::E22 /* = invalid-type */
+static inline-class-member method E22|_#new#tearOff(invalid-type it) → self::E22 /* = invalid-type */
   return self::E22|(it);
-static inline-class-member method E23|(dynamic it) → self::E23 /* = invalid-type */ {
+static inline-class-member method E23|(core::List<self::E23 /* = invalid-type */> it) → self::E23 /* = invalid-type */ {
   lowered final self::E23 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E23|_#new#tearOff(dynamic it) → self::E23 /* = invalid-type */
+static inline-class-member method E23|_#new#tearOff(core::List<self::E23 /* = invalid-type */> it) → self::E23 /* = invalid-type */
   return self::E23|(it);
-static inline-class-member method E24|<T extends core::Object? = dynamic>(dynamic it) → self::E24<self::E24|::T%> /* = invalid-type */ {
+static inline-class-member method E24|<T extends core::Object? = dynamic>(core::List<self::E24<dynamic> /* = invalid-type */> it) → self::E24<self::E24|::T%> /* = invalid-type */ {
   lowered final self::E24<self::E24|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E24|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E24<self::E24|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E24|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::E24<dynamic> /* = invalid-type */> it) → self::E24<self::E24|_#new#tearOff::T%> /* = invalid-type */
   return self::E24|<self::E24|_#new#tearOff::T%>(it);
 static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/integers_patch.dart */ _#Alias14#fromEnvironment#tearOff<unrelated T extends core::Object? = dynamic>(core::String name, {core::int defaultValue = #C1}) → core::int
   return core::int::fromEnvironment(name, defaultValue: defaultValue);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.expect
index f5a4965..89d82bc 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.expect
@@ -331,185 +331,185 @@
   constructor • = self::E24|;
   tearoff • = self::E24|_#new#tearOff;
 }
-static inline-class-member method E1|(dynamic it) → self::E1 /* = invalid-type */ {
+static inline-class-member method E1|(self::E1 /* = invalid-type */ it) → self::E1 /* = invalid-type */ {
   lowered final self::E1 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E1|_#new#tearOff(dynamic it) → self::E1 /* = invalid-type */
+static inline-class-member method E1|_#new#tearOff(self::E1 /* = invalid-type */ it) → self::E1 /* = invalid-type */
   return self::E1|(it);
-static inline-class-member method E2a|(dynamic it) → self::E2a /* = invalid-type */ {
+static inline-class-member method E2a|(self::E2b /* = invalid-type */ it) → self::E2a /* = invalid-type */ {
   lowered final self::E2a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E2a|_#new#tearOff(dynamic it) → self::E2a /* = invalid-type */
+static inline-class-member method E2a|_#new#tearOff(self::E2b /* = invalid-type */ it) → self::E2a /* = invalid-type */
   return self::E2a|(it);
-static inline-class-member method E2b|(dynamic it) → self::E2b /* = invalid-type */ {
+static inline-class-member method E2b|(self::E2a /* = invalid-type */ it) → self::E2b /* = invalid-type */ {
   lowered final self::E2b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E2b|_#new#tearOff(dynamic it) → self::E2b /* = invalid-type */
+static inline-class-member method E2b|_#new#tearOff(self::E2a /* = invalid-type */ it) → self::E2b /* = invalid-type */
   return self::E2b|(it);
-static inline-class-member method E3a|(dynamic it) → self::E3a /* = invalid-type */ {
+static inline-class-member method E3a|(self::E3b /* = invalid-type */ it) → self::E3a /* = invalid-type */ {
   lowered final self::E3a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3a|_#new#tearOff(dynamic it) → self::E3a /* = invalid-type */
+static inline-class-member method E3a|_#new#tearOff(self::E3b /* = invalid-type */ it) → self::E3a /* = invalid-type */
   return self::E3a|(it);
-static inline-class-member method E3b|(dynamic it) → self::E3b /* = invalid-type */ {
+static inline-class-member method E3b|(self::E3c /* = invalid-type */ it) → self::E3b /* = invalid-type */ {
   lowered final self::E3b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3b|_#new#tearOff(dynamic it) → self::E3b /* = invalid-type */
+static inline-class-member method E3b|_#new#tearOff(self::E3c /* = invalid-type */ it) → self::E3b /* = invalid-type */
   return self::E3b|(it);
-static inline-class-member method E3c|(dynamic it) → self::E3c /* = invalid-type */ {
+static inline-class-member method E3c|(self::E3a /* = invalid-type */ it) → self::E3c /* = invalid-type */ {
   lowered final self::E3c /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3c|_#new#tearOff(dynamic it) → self::E3c /* = invalid-type */
+static inline-class-member method E3c|_#new#tearOff(self::E3a /* = invalid-type */ it) → self::E3c /* = invalid-type */
   return self::E3c|(it);
-static inline-class-member method E4|(dynamic it) → self::E4 /* = invalid-type */ {
+static inline-class-member method E4|(() → self::E4 /* = invalid-type */ it) → self::E4 /* = invalid-type */ {
   lowered final self::E4 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E4|_#new#tearOff(dynamic it) → self::E4 /* = invalid-type */
+static inline-class-member method E4|_#new#tearOff(() → self::E4 /* = invalid-type */ it) → self::E4 /* = invalid-type */
   return self::E4|(it);
-static inline-class-member method E5|(dynamic it) → self::E5 /* = invalid-type */ {
+static inline-class-member method E5|((self::E5 /* = invalid-type */) → void it) → self::E5 /* = invalid-type */ {
   lowered final self::E5 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E5|_#new#tearOff(dynamic it) → self::E5 /* = invalid-type */
+static inline-class-member method E5|_#new#tearOff((self::E5 /* = invalid-type */) → void it) → self::E5 /* = invalid-type */
   return self::E5|(it);
-static inline-class-member method E6|(dynamic it) → self::E6 /* = invalid-type */ {
+static inline-class-member method E6|((self::E6 /* = invalid-type */, core::int) it) → self::E6 /* = invalid-type */ {
   lowered final self::E6 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E6|_#new#tearOff(dynamic it) → self::E6 /* = invalid-type */
+static inline-class-member method E6|_#new#tearOff((self::E6 /* = invalid-type */, core::int) it) → self::E6 /* = invalid-type */
   return self::E6|(it);
-static inline-class-member method E7|_#new#tearOff(dynamic it) → self::E7 /* = invalid-type */
+static inline-class-member method E7|_#new#tearOff(<T extends self::E7 /* = invalid-type */ = dynamic>() → void it) → self::E7 /* = invalid-type */
   return self::E7|(it);
-static inline-class-member method E7|(dynamic it) → self::E7 /* = invalid-type */ {
+static inline-class-member method E7|(<T extends self::E7 /* = invalid-type */ = dynamic>() → void it) → self::E7 /* = invalid-type */ {
   lowered final self::E7 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E8|<T extends core::Object? = dynamic>(dynamic it) → self::E8<self::E8|::T%> /* = invalid-type */ {
+static inline-class-member method E8|<T extends core::Object? = dynamic>(core::List<self::E8<dynamic> /* = invalid-type */> it) → self::E8<self::E8|::T%> /* = invalid-type */ {
   lowered final self::E8<self::E8|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E8|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E8<self::E8|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E8|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::E8<dynamic> /* = invalid-type */> it) → self::E8<self::E8|_#new#tearOff::T%> /* = invalid-type */
   return self::E8|<self::E8|_#new#tearOff::T%>(it);
-static inline-class-member method E9|(dynamic it) → self::E9 /* = invalid-type */ {
+static inline-class-member method E9|(self::E9 /* = invalid-type */ it) → self::E9 /* = invalid-type */ {
   lowered final self::E9 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E9|_#new#tearOff(dynamic it) → self::E9 /* = invalid-type */
+static inline-class-member method E9|_#new#tearOff(self::E9 /* = invalid-type */ it) → self::E9 /* = invalid-type */
   return self::E9|(it);
-static inline-class-member method E10|<T extends core::Object? = dynamic>(dynamic it) → self::E10<self::E10|::T%> /* = invalid-type */ {
+static inline-class-member method E10|<T extends core::Object? = dynamic>(self::E10<self::E10|::T%> /* = invalid-type */ it) → self::E10<self::E10|::T%> /* = invalid-type */ {
   lowered final self::E10<self::E10|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E10|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E10|_#new#tearOff<T extends core::Object? = dynamic>(self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */ it) → self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */
   return self::E10|<self::E10|_#new#tearOff::T%>(it);
-static inline-class-member method E11|(dynamic it) → self::E11 /* = invalid-type */ {
+static inline-class-member method E11|(() → self::E11 /* = invalid-type */ it) → self::E11 /* = invalid-type */ {
   lowered final self::E11 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E11|_#new#tearOff(dynamic it) → self::E11 /* = invalid-type */
+static inline-class-member method E11|_#new#tearOff(() → self::E11 /* = invalid-type */ it) → self::E11 /* = invalid-type */
   return self::E11|(it);
-static inline-class-member method E12|(dynamic it) → self::E12 /* = invalid-type */ {
+static inline-class-member method E12|((self::E12 /* = invalid-type */) → void it) → self::E12 /* = invalid-type */ {
   lowered final self::E12 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E12|_#new#tearOff(dynamic it) → self::E12 /* = invalid-type */
+static inline-class-member method E12|_#new#tearOff((self::E12 /* = invalid-type */) → void it) → self::E12 /* = invalid-type */
   return self::E12|(it);
-static inline-class-member method E13|(dynamic it) → self::E13 /* = invalid-type */ {
+static inline-class-member method E13|(<T extends self::E13 /* = invalid-type */ = dynamic>() → void it) → self::E13 /* = invalid-type */ {
   lowered final self::E13 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E13|_#new#tearOff(dynamic it) → self::E13 /* = invalid-type */
+static inline-class-member method E13|_#new#tearOff(<T extends self::E13 /* = invalid-type */ = dynamic>() → void it) → self::E13 /* = invalid-type */
   return self::E13|(it);
-static inline-class-member method E14|(dynamic it) → self::E14 /* = core::int */ {
+static inline-class-member method E14|(core::int it) → self::E14 /* = core::int */ {
   lowered final self::E14 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E14|_#new#tearOff(dynamic it) → self::E14 /* = core::int */
+static inline-class-member method E14|_#new#tearOff(core::int it) → self::E14 /* = core::int */
   return self::E14|(it);
-static inline-class-member method E15a|(dynamic it) → self::E15a /* = invalid-type */ {
+static inline-class-member method E15a|(core::List<self::E15b /* = invalid-type */> it) → self::E15a /* = invalid-type */ {
   lowered final self::E15a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E15a|_#new#tearOff(dynamic it) → self::E15a /* = invalid-type */
+static inline-class-member method E15a|_#new#tearOff(core::List<self::E15b /* = invalid-type */> it) → self::E15a /* = invalid-type */
   return self::E15a|(it);
-static inline-class-member method E15b|(dynamic it) → self::E15b /* = invalid-type */ {
+static inline-class-member method E15b|(core::List<self::E15a /* = invalid-type */> it) → self::E15b /* = invalid-type */ {
   lowered final self::E15b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E15b|_#new#tearOff(dynamic it) → self::E15b /* = invalid-type */
+static inline-class-member method E15b|_#new#tearOff(core::List<self::E15a /* = invalid-type */> it) → self::E15b /* = invalid-type */
   return self::E15b|(it);
-static inline-class-member method E16a|(dynamic it) → self::E16a /* = invalid-type */ {
+static inline-class-member method E16a|(core::List<self::E16b /* = invalid-type */> it) → self::E16a /* = invalid-type */ {
   lowered final self::E16a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E16a|_#new#tearOff(dynamic it) → self::E16a /* = invalid-type */
+static inline-class-member method E16a|_#new#tearOff(core::List<self::E16b /* = invalid-type */> it) → self::E16a /* = invalid-type */
   return self::E16a|(it);
-static inline-class-member method E16b|(dynamic it) → self::E16b /* = invalid-type */ {
+static inline-class-member method E16b|(core::List<self::E16a /* = invalid-type */> it) → self::E16b /* = invalid-type */ {
   lowered final self::E16b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E16b|_#new#tearOff(dynamic it) → self::E16b /* = invalid-type */
+static inline-class-member method E16b|_#new#tearOff(core::List<self::E16a /* = invalid-type */> it) → self::E16b /* = invalid-type */
   return self::E16b|(it);
-static inline-class-member method E17|(dynamic it) → self::E17 /* = invalid-type */ {
+static inline-class-member method E17|((core::int, {required a: self::E17 /* = invalid-type */}) it) → self::E17 /* = invalid-type */ {
   lowered final self::E17 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E17|_#new#tearOff(dynamic it) → self::E17 /* = invalid-type */
+static inline-class-member method E17|_#new#tearOff((core::int, {required a: self::E17 /* = invalid-type */}) it) → self::E17 /* = invalid-type */
   return self::E17|(it);
-static inline-class-member method E18|(dynamic it) → self::E18 /* = invalid-type */ {
+static inline-class-member method E18|((self::E18 /* = invalid-type */) → void it) → self::E18 /* = invalid-type */ {
   lowered final self::E18 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E18|_#new#tearOff(dynamic it) → self::E18 /* = invalid-type */
+static inline-class-member method E18|_#new#tearOff((self::E18 /* = invalid-type */) → void it) → self::E18 /* = invalid-type */
   return self::E18|(it);
-static inline-class-member method E19a|(dynamic it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ {
+static inline-class-member method E19a|((self::E19b /* = core::int */, self::E19b /* = core::int */) it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ {
   lowered final self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ #this = it;
   return #this;
 }
-static inline-class-member method E19a|_#new#tearOff(dynamic it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
+static inline-class-member method E19a|_#new#tearOff((self::E19b /* = core::int */, self::E19b /* = core::int */) it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
   return self::E19a|(it);
-static inline-class-member method E19b|(dynamic it) → self::E19b /* = core::int */ {
+static inline-class-member method E19b|(core::int it) → self::E19b /* = core::int */ {
   lowered final self::E19b /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E19b|_#new#tearOff(dynamic it) → self::E19b /* = core::int */
+static inline-class-member method E19b|_#new#tearOff(core::int it) → self::E19b /* = core::int */
   return self::E19b|(it);
-static inline-class-member method E20|(dynamic it) → self::E20 /* = invalid-type */ {
+static inline-class-member method E20|(invalid-type it) → self::E20 /* = invalid-type */ {
   lowered final self::E20 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E20|_#new#tearOff(dynamic it) → self::E20 /* = invalid-type */
+static inline-class-member method E20|_#new#tearOff(invalid-type it) → self::E20 /* = invalid-type */
   return self::E20|(it);
-static inline-class-member method E21|(dynamic it) → self::E21 /* = invalid-type */ {
+static inline-class-member method E21|(invalid-type it) → self::E21 /* = invalid-type */ {
   lowered final self::E21 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E21|_#new#tearOff(dynamic it) → self::E21 /* = invalid-type */
+static inline-class-member method E21|_#new#tearOff(invalid-type it) → self::E21 /* = invalid-type */
   return self::E21|(it);
-static inline-class-member method E22|(dynamic it) → self::E22 /* = invalid-type */ {
+static inline-class-member method E22|(invalid-type it) → self::E22 /* = invalid-type */ {
   lowered final self::E22 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E22|_#new#tearOff(dynamic it) → self::E22 /* = invalid-type */
+static inline-class-member method E22|_#new#tearOff(invalid-type it) → self::E22 /* = invalid-type */
   return self::E22|(it);
-static inline-class-member method E23|(dynamic it) → self::E23 /* = invalid-type */ {
+static inline-class-member method E23|(core::List<self::E23 /* = invalid-type */> it) → self::E23 /* = invalid-type */ {
   lowered final self::E23 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E23|_#new#tearOff(dynamic it) → self::E23 /* = invalid-type */
+static inline-class-member method E23|_#new#tearOff(core::List<self::E23 /* = invalid-type */> it) → self::E23 /* = invalid-type */
   return self::E23|(it);
-static inline-class-member method E24|<T extends core::Object? = dynamic>(dynamic it) → self::E24<self::E24|::T%> /* = invalid-type */ {
+static inline-class-member method E24|<T extends core::Object? = dynamic>(core::List<self::E24<dynamic> /* = invalid-type */> it) → self::E24<self::E24|::T%> /* = invalid-type */ {
   lowered final self::E24<self::E24|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E24|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E24<self::E24|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E24|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::E24<dynamic> /* = invalid-type */> it) → self::E24<self::E24|_#new#tearOff::T%> /* = invalid-type */
   return self::E24|<self::E24|_#new#tearOff::T%>(it);
 static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/integers_patch.dart */ _#Alias14#fromEnvironment#tearOff<unrelated T extends core::Object? = dynamic>(core::String name, {core::int defaultValue = #C1}) → core::int
   return core::int::fromEnvironment(name, defaultValue: defaultValue);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.modular.expect
index f5a4965..89d82bc 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.modular.expect
@@ -331,185 +331,185 @@
   constructor • = self::E24|;
   tearoff • = self::E24|_#new#tearOff;
 }
-static inline-class-member method E1|(dynamic it) → self::E1 /* = invalid-type */ {
+static inline-class-member method E1|(self::E1 /* = invalid-type */ it) → self::E1 /* = invalid-type */ {
   lowered final self::E1 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E1|_#new#tearOff(dynamic it) → self::E1 /* = invalid-type */
+static inline-class-member method E1|_#new#tearOff(self::E1 /* = invalid-type */ it) → self::E1 /* = invalid-type */
   return self::E1|(it);
-static inline-class-member method E2a|(dynamic it) → self::E2a /* = invalid-type */ {
+static inline-class-member method E2a|(self::E2b /* = invalid-type */ it) → self::E2a /* = invalid-type */ {
   lowered final self::E2a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E2a|_#new#tearOff(dynamic it) → self::E2a /* = invalid-type */
+static inline-class-member method E2a|_#new#tearOff(self::E2b /* = invalid-type */ it) → self::E2a /* = invalid-type */
   return self::E2a|(it);
-static inline-class-member method E2b|(dynamic it) → self::E2b /* = invalid-type */ {
+static inline-class-member method E2b|(self::E2a /* = invalid-type */ it) → self::E2b /* = invalid-type */ {
   lowered final self::E2b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E2b|_#new#tearOff(dynamic it) → self::E2b /* = invalid-type */
+static inline-class-member method E2b|_#new#tearOff(self::E2a /* = invalid-type */ it) → self::E2b /* = invalid-type */
   return self::E2b|(it);
-static inline-class-member method E3a|(dynamic it) → self::E3a /* = invalid-type */ {
+static inline-class-member method E3a|(self::E3b /* = invalid-type */ it) → self::E3a /* = invalid-type */ {
   lowered final self::E3a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3a|_#new#tearOff(dynamic it) → self::E3a /* = invalid-type */
+static inline-class-member method E3a|_#new#tearOff(self::E3b /* = invalid-type */ it) → self::E3a /* = invalid-type */
   return self::E3a|(it);
-static inline-class-member method E3b|(dynamic it) → self::E3b /* = invalid-type */ {
+static inline-class-member method E3b|(self::E3c /* = invalid-type */ it) → self::E3b /* = invalid-type */ {
   lowered final self::E3b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3b|_#new#tearOff(dynamic it) → self::E3b /* = invalid-type */
+static inline-class-member method E3b|_#new#tearOff(self::E3c /* = invalid-type */ it) → self::E3b /* = invalid-type */
   return self::E3b|(it);
-static inline-class-member method E3c|(dynamic it) → self::E3c /* = invalid-type */ {
+static inline-class-member method E3c|(self::E3a /* = invalid-type */ it) → self::E3c /* = invalid-type */ {
   lowered final self::E3c /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3c|_#new#tearOff(dynamic it) → self::E3c /* = invalid-type */
+static inline-class-member method E3c|_#new#tearOff(self::E3a /* = invalid-type */ it) → self::E3c /* = invalid-type */
   return self::E3c|(it);
-static inline-class-member method E4|(dynamic it) → self::E4 /* = invalid-type */ {
+static inline-class-member method E4|(() → self::E4 /* = invalid-type */ it) → self::E4 /* = invalid-type */ {
   lowered final self::E4 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E4|_#new#tearOff(dynamic it) → self::E4 /* = invalid-type */
+static inline-class-member method E4|_#new#tearOff(() → self::E4 /* = invalid-type */ it) → self::E4 /* = invalid-type */
   return self::E4|(it);
-static inline-class-member method E5|(dynamic it) → self::E5 /* = invalid-type */ {
+static inline-class-member method E5|((self::E5 /* = invalid-type */) → void it) → self::E5 /* = invalid-type */ {
   lowered final self::E5 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E5|_#new#tearOff(dynamic it) → self::E5 /* = invalid-type */
+static inline-class-member method E5|_#new#tearOff((self::E5 /* = invalid-type */) → void it) → self::E5 /* = invalid-type */
   return self::E5|(it);
-static inline-class-member method E6|(dynamic it) → self::E6 /* = invalid-type */ {
+static inline-class-member method E6|((self::E6 /* = invalid-type */, core::int) it) → self::E6 /* = invalid-type */ {
   lowered final self::E6 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E6|_#new#tearOff(dynamic it) → self::E6 /* = invalid-type */
+static inline-class-member method E6|_#new#tearOff((self::E6 /* = invalid-type */, core::int) it) → self::E6 /* = invalid-type */
   return self::E6|(it);
-static inline-class-member method E7|_#new#tearOff(dynamic it) → self::E7 /* = invalid-type */
+static inline-class-member method E7|_#new#tearOff(<T extends self::E7 /* = invalid-type */ = dynamic>() → void it) → self::E7 /* = invalid-type */
   return self::E7|(it);
-static inline-class-member method E7|(dynamic it) → self::E7 /* = invalid-type */ {
+static inline-class-member method E7|(<T extends self::E7 /* = invalid-type */ = dynamic>() → void it) → self::E7 /* = invalid-type */ {
   lowered final self::E7 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E8|<T extends core::Object? = dynamic>(dynamic it) → self::E8<self::E8|::T%> /* = invalid-type */ {
+static inline-class-member method E8|<T extends core::Object? = dynamic>(core::List<self::E8<dynamic> /* = invalid-type */> it) → self::E8<self::E8|::T%> /* = invalid-type */ {
   lowered final self::E8<self::E8|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E8|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E8<self::E8|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E8|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::E8<dynamic> /* = invalid-type */> it) → self::E8<self::E8|_#new#tearOff::T%> /* = invalid-type */
   return self::E8|<self::E8|_#new#tearOff::T%>(it);
-static inline-class-member method E9|(dynamic it) → self::E9 /* = invalid-type */ {
+static inline-class-member method E9|(self::E9 /* = invalid-type */ it) → self::E9 /* = invalid-type */ {
   lowered final self::E9 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E9|_#new#tearOff(dynamic it) → self::E9 /* = invalid-type */
+static inline-class-member method E9|_#new#tearOff(self::E9 /* = invalid-type */ it) → self::E9 /* = invalid-type */
   return self::E9|(it);
-static inline-class-member method E10|<T extends core::Object? = dynamic>(dynamic it) → self::E10<self::E10|::T%> /* = invalid-type */ {
+static inline-class-member method E10|<T extends core::Object? = dynamic>(self::E10<self::E10|::T%> /* = invalid-type */ it) → self::E10<self::E10|::T%> /* = invalid-type */ {
   lowered final self::E10<self::E10|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E10|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E10|_#new#tearOff<T extends core::Object? = dynamic>(self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */ it) → self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */
   return self::E10|<self::E10|_#new#tearOff::T%>(it);
-static inline-class-member method E11|(dynamic it) → self::E11 /* = invalid-type */ {
+static inline-class-member method E11|(() → self::E11 /* = invalid-type */ it) → self::E11 /* = invalid-type */ {
   lowered final self::E11 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E11|_#new#tearOff(dynamic it) → self::E11 /* = invalid-type */
+static inline-class-member method E11|_#new#tearOff(() → self::E11 /* = invalid-type */ it) → self::E11 /* = invalid-type */
   return self::E11|(it);
-static inline-class-member method E12|(dynamic it) → self::E12 /* = invalid-type */ {
+static inline-class-member method E12|((self::E12 /* = invalid-type */) → void it) → self::E12 /* = invalid-type */ {
   lowered final self::E12 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E12|_#new#tearOff(dynamic it) → self::E12 /* = invalid-type */
+static inline-class-member method E12|_#new#tearOff((self::E12 /* = invalid-type */) → void it) → self::E12 /* = invalid-type */
   return self::E12|(it);
-static inline-class-member method E13|(dynamic it) → self::E13 /* = invalid-type */ {
+static inline-class-member method E13|(<T extends self::E13 /* = invalid-type */ = dynamic>() → void it) → self::E13 /* = invalid-type */ {
   lowered final self::E13 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E13|_#new#tearOff(dynamic it) → self::E13 /* = invalid-type */
+static inline-class-member method E13|_#new#tearOff(<T extends self::E13 /* = invalid-type */ = dynamic>() → void it) → self::E13 /* = invalid-type */
   return self::E13|(it);
-static inline-class-member method E14|(dynamic it) → self::E14 /* = core::int */ {
+static inline-class-member method E14|(core::int it) → self::E14 /* = core::int */ {
   lowered final self::E14 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E14|_#new#tearOff(dynamic it) → self::E14 /* = core::int */
+static inline-class-member method E14|_#new#tearOff(core::int it) → self::E14 /* = core::int */
   return self::E14|(it);
-static inline-class-member method E15a|(dynamic it) → self::E15a /* = invalid-type */ {
+static inline-class-member method E15a|(core::List<self::E15b /* = invalid-type */> it) → self::E15a /* = invalid-type */ {
   lowered final self::E15a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E15a|_#new#tearOff(dynamic it) → self::E15a /* = invalid-type */
+static inline-class-member method E15a|_#new#tearOff(core::List<self::E15b /* = invalid-type */> it) → self::E15a /* = invalid-type */
   return self::E15a|(it);
-static inline-class-member method E15b|(dynamic it) → self::E15b /* = invalid-type */ {
+static inline-class-member method E15b|(core::List<self::E15a /* = invalid-type */> it) → self::E15b /* = invalid-type */ {
   lowered final self::E15b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E15b|_#new#tearOff(dynamic it) → self::E15b /* = invalid-type */
+static inline-class-member method E15b|_#new#tearOff(core::List<self::E15a /* = invalid-type */> it) → self::E15b /* = invalid-type */
   return self::E15b|(it);
-static inline-class-member method E16a|(dynamic it) → self::E16a /* = invalid-type */ {
+static inline-class-member method E16a|(core::List<self::E16b /* = invalid-type */> it) → self::E16a /* = invalid-type */ {
   lowered final self::E16a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E16a|_#new#tearOff(dynamic it) → self::E16a /* = invalid-type */
+static inline-class-member method E16a|_#new#tearOff(core::List<self::E16b /* = invalid-type */> it) → self::E16a /* = invalid-type */
   return self::E16a|(it);
-static inline-class-member method E16b|(dynamic it) → self::E16b /* = invalid-type */ {
+static inline-class-member method E16b|(core::List<self::E16a /* = invalid-type */> it) → self::E16b /* = invalid-type */ {
   lowered final self::E16b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E16b|_#new#tearOff(dynamic it) → self::E16b /* = invalid-type */
+static inline-class-member method E16b|_#new#tearOff(core::List<self::E16a /* = invalid-type */> it) → self::E16b /* = invalid-type */
   return self::E16b|(it);
-static inline-class-member method E17|(dynamic it) → self::E17 /* = invalid-type */ {
+static inline-class-member method E17|((core::int, {required a: self::E17 /* = invalid-type */}) it) → self::E17 /* = invalid-type */ {
   lowered final self::E17 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E17|_#new#tearOff(dynamic it) → self::E17 /* = invalid-type */
+static inline-class-member method E17|_#new#tearOff((core::int, {required a: self::E17 /* = invalid-type */}) it) → self::E17 /* = invalid-type */
   return self::E17|(it);
-static inline-class-member method E18|(dynamic it) → self::E18 /* = invalid-type */ {
+static inline-class-member method E18|((self::E18 /* = invalid-type */) → void it) → self::E18 /* = invalid-type */ {
   lowered final self::E18 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E18|_#new#tearOff(dynamic it) → self::E18 /* = invalid-type */
+static inline-class-member method E18|_#new#tearOff((self::E18 /* = invalid-type */) → void it) → self::E18 /* = invalid-type */
   return self::E18|(it);
-static inline-class-member method E19a|(dynamic it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ {
+static inline-class-member method E19a|((self::E19b /* = core::int */, self::E19b /* = core::int */) it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ {
   lowered final self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ #this = it;
   return #this;
 }
-static inline-class-member method E19a|_#new#tearOff(dynamic it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
+static inline-class-member method E19a|_#new#tearOff((self::E19b /* = core::int */, self::E19b /* = core::int */) it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
   return self::E19a|(it);
-static inline-class-member method E19b|(dynamic it) → self::E19b /* = core::int */ {
+static inline-class-member method E19b|(core::int it) → self::E19b /* = core::int */ {
   lowered final self::E19b /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E19b|_#new#tearOff(dynamic it) → self::E19b /* = core::int */
+static inline-class-member method E19b|_#new#tearOff(core::int it) → self::E19b /* = core::int */
   return self::E19b|(it);
-static inline-class-member method E20|(dynamic it) → self::E20 /* = invalid-type */ {
+static inline-class-member method E20|(invalid-type it) → self::E20 /* = invalid-type */ {
   lowered final self::E20 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E20|_#new#tearOff(dynamic it) → self::E20 /* = invalid-type */
+static inline-class-member method E20|_#new#tearOff(invalid-type it) → self::E20 /* = invalid-type */
   return self::E20|(it);
-static inline-class-member method E21|(dynamic it) → self::E21 /* = invalid-type */ {
+static inline-class-member method E21|(invalid-type it) → self::E21 /* = invalid-type */ {
   lowered final self::E21 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E21|_#new#tearOff(dynamic it) → self::E21 /* = invalid-type */
+static inline-class-member method E21|_#new#tearOff(invalid-type it) → self::E21 /* = invalid-type */
   return self::E21|(it);
-static inline-class-member method E22|(dynamic it) → self::E22 /* = invalid-type */ {
+static inline-class-member method E22|(invalid-type it) → self::E22 /* = invalid-type */ {
   lowered final self::E22 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E22|_#new#tearOff(dynamic it) → self::E22 /* = invalid-type */
+static inline-class-member method E22|_#new#tearOff(invalid-type it) → self::E22 /* = invalid-type */
   return self::E22|(it);
-static inline-class-member method E23|(dynamic it) → self::E23 /* = invalid-type */ {
+static inline-class-member method E23|(core::List<self::E23 /* = invalid-type */> it) → self::E23 /* = invalid-type */ {
   lowered final self::E23 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E23|_#new#tearOff(dynamic it) → self::E23 /* = invalid-type */
+static inline-class-member method E23|_#new#tearOff(core::List<self::E23 /* = invalid-type */> it) → self::E23 /* = invalid-type */
   return self::E23|(it);
-static inline-class-member method E24|<T extends core::Object? = dynamic>(dynamic it) → self::E24<self::E24|::T%> /* = invalid-type */ {
+static inline-class-member method E24|<T extends core::Object? = dynamic>(core::List<self::E24<dynamic> /* = invalid-type */> it) → self::E24<self::E24|::T%> /* = invalid-type */ {
   lowered final self::E24<self::E24|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E24|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E24<self::E24|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E24|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::E24<dynamic> /* = invalid-type */> it) → self::E24<self::E24|_#new#tearOff::T%> /* = invalid-type */
   return self::E24|<self::E24|_#new#tearOff::T%>(it);
 static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/integers_patch.dart */ _#Alias14#fromEnvironment#tearOff<unrelated T extends core::Object? = dynamic>(core::String name, {core::int defaultValue = #C1}) → core::int
   return core::int::fromEnvironment(name, defaultValue: defaultValue);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.outline.expect
index b65ad3e..2042a18 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.outline.expect
@@ -331,125 +331,125 @@
   constructor • = self::E24|;
   tearoff • = self::E24|_#new#tearOff;
 }
-static inline-class-member method E1|(dynamic it) → self::E1 /* = invalid-type */
+static inline-class-member method E1|(self::E1 /* = invalid-type */ it) → self::E1 /* = invalid-type */
   ;
-static inline-class-member method E1|_#new#tearOff(dynamic it) → self::E1 /* = invalid-type */
+static inline-class-member method E1|_#new#tearOff(self::E1 /* = invalid-type */ it) → self::E1 /* = invalid-type */
   return self::E1|(it);
-static inline-class-member method E2a|(dynamic it) → self::E2a /* = invalid-type */
+static inline-class-member method E2a|(self::E2b /* = invalid-type */ it) → self::E2a /* = invalid-type */
   ;
-static inline-class-member method E2a|_#new#tearOff(dynamic it) → self::E2a /* = invalid-type */
+static inline-class-member method E2a|_#new#tearOff(self::E2b /* = invalid-type */ it) → self::E2a /* = invalid-type */
   return self::E2a|(it);
-static inline-class-member method E2b|(dynamic it) → self::E2b /* = invalid-type */
+static inline-class-member method E2b|(self::E2a /* = invalid-type */ it) → self::E2b /* = invalid-type */
   ;
-static inline-class-member method E2b|_#new#tearOff(dynamic it) → self::E2b /* = invalid-type */
+static inline-class-member method E2b|_#new#tearOff(self::E2a /* = invalid-type */ it) → self::E2b /* = invalid-type */
   return self::E2b|(it);
-static inline-class-member method E3a|(dynamic it) → self::E3a /* = invalid-type */
+static inline-class-member method E3a|(self::E3b /* = invalid-type */ it) → self::E3a /* = invalid-type */
   ;
-static inline-class-member method E3a|_#new#tearOff(dynamic it) → self::E3a /* = invalid-type */
+static inline-class-member method E3a|_#new#tearOff(self::E3b /* = invalid-type */ it) → self::E3a /* = invalid-type */
   return self::E3a|(it);
-static inline-class-member method E3b|(dynamic it) → self::E3b /* = invalid-type */
+static inline-class-member method E3b|(self::E3c /* = invalid-type */ it) → self::E3b /* = invalid-type */
   ;
-static inline-class-member method E3b|_#new#tearOff(dynamic it) → self::E3b /* = invalid-type */
+static inline-class-member method E3b|_#new#tearOff(self::E3c /* = invalid-type */ it) → self::E3b /* = invalid-type */
   return self::E3b|(it);
-static inline-class-member method E3c|(dynamic it) → self::E3c /* = invalid-type */
+static inline-class-member method E3c|(self::E3a /* = invalid-type */ it) → self::E3c /* = invalid-type */
   ;
-static inline-class-member method E3c|_#new#tearOff(dynamic it) → self::E3c /* = invalid-type */
+static inline-class-member method E3c|_#new#tearOff(self::E3a /* = invalid-type */ it) → self::E3c /* = invalid-type */
   return self::E3c|(it);
-static inline-class-member method E4|(dynamic it) → self::E4 /* = invalid-type */
+static inline-class-member method E4|(() → self::E4 /* = invalid-type */ it) → self::E4 /* = invalid-type */
   ;
-static inline-class-member method E4|_#new#tearOff(dynamic it) → self::E4 /* = invalid-type */
+static inline-class-member method E4|_#new#tearOff(() → self::E4 /* = invalid-type */ it) → self::E4 /* = invalid-type */
   return self::E4|(it);
-static inline-class-member method E5|(dynamic it) → self::E5 /* = invalid-type */
+static inline-class-member method E5|((self::E5 /* = invalid-type */) → void it) → self::E5 /* = invalid-type */
   ;
-static inline-class-member method E5|_#new#tearOff(dynamic it) → self::E5 /* = invalid-type */
+static inline-class-member method E5|_#new#tearOff((self::E5 /* = invalid-type */) → void it) → self::E5 /* = invalid-type */
   return self::E5|(it);
-static inline-class-member method E6|(dynamic it) → self::E6 /* = invalid-type */
+static inline-class-member method E6|((self::E6 /* = invalid-type */, core::int) it) → self::E6 /* = invalid-type */
   ;
-static inline-class-member method E6|_#new#tearOff(dynamic it) → self::E6 /* = invalid-type */
+static inline-class-member method E6|_#new#tearOff((self::E6 /* = invalid-type */, core::int) it) → self::E6 /* = invalid-type */
   return self::E6|(it);
-static inline-class-member method E7|_#new#tearOff(dynamic it) → self::E7 /* = invalid-type */
+static inline-class-member method E7|_#new#tearOff(<T extends self::E7 /* = invalid-type */ = dynamic>() → void it) → self::E7 /* = invalid-type */
   return self::E7|(it);
-static inline-class-member method E7|(dynamic it) → self::E7 /* = invalid-type */
+static inline-class-member method E7|(<T extends self::E7 /* = invalid-type */ = dynamic>() → void it) → self::E7 /* = invalid-type */
   ;
-static inline-class-member method E8|<T extends core::Object? = dynamic>(dynamic it) → self::E8<self::E8|::T%> /* = invalid-type */
+static inline-class-member method E8|<T extends core::Object? = dynamic>(core::List<self::E8<dynamic> /* = invalid-type */> it) → self::E8<self::E8|::T%> /* = invalid-type */
   ;
-static inline-class-member method E8|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E8<self::E8|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E8|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::E8<dynamic> /* = invalid-type */> it) → self::E8<self::E8|_#new#tearOff::T%> /* = invalid-type */
   return self::E8|<self::E8|_#new#tearOff::T%>(it);
-static inline-class-member method E9|(dynamic it) → self::E9 /* = invalid-type */
+static inline-class-member method E9|(self::E9 /* = invalid-type */ it) → self::E9 /* = invalid-type */
   ;
-static inline-class-member method E9|_#new#tearOff(dynamic it) → self::E9 /* = invalid-type */
+static inline-class-member method E9|_#new#tearOff(self::E9 /* = invalid-type */ it) → self::E9 /* = invalid-type */
   return self::E9|(it);
-static inline-class-member method E10|<T extends core::Object? = dynamic>(dynamic it) → self::E10<self::E10|::T%> /* = invalid-type */
+static inline-class-member method E10|<T extends core::Object? = dynamic>(self::E10<self::E10|::T%> /* = invalid-type */ it) → self::E10<self::E10|::T%> /* = invalid-type */
   ;
-static inline-class-member method E10|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E10|_#new#tearOff<T extends core::Object? = dynamic>(self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */ it) → self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */
   return self::E10|<self::E10|_#new#tearOff::T%>(it);
-static inline-class-member method E11|(dynamic it) → self::E11 /* = invalid-type */
+static inline-class-member method E11|(() → self::E11 /* = invalid-type */ it) → self::E11 /* = invalid-type */
   ;
-static inline-class-member method E11|_#new#tearOff(dynamic it) → self::E11 /* = invalid-type */
+static inline-class-member method E11|_#new#tearOff(() → self::E11 /* = invalid-type */ it) → self::E11 /* = invalid-type */
   return self::E11|(it);
-static inline-class-member method E12|(dynamic it) → self::E12 /* = invalid-type */
+static inline-class-member method E12|((self::E12 /* = invalid-type */) → void it) → self::E12 /* = invalid-type */
   ;
-static inline-class-member method E12|_#new#tearOff(dynamic it) → self::E12 /* = invalid-type */
+static inline-class-member method E12|_#new#tearOff((self::E12 /* = invalid-type */) → void it) → self::E12 /* = invalid-type */
   return self::E12|(it);
-static inline-class-member method E13|(dynamic it) → self::E13 /* = invalid-type */
+static inline-class-member method E13|(<T extends self::E13 /* = invalid-type */ = dynamic>() → void it) → self::E13 /* = invalid-type */
   ;
-static inline-class-member method E13|_#new#tearOff(dynamic it) → self::E13 /* = invalid-type */
+static inline-class-member method E13|_#new#tearOff(<T extends self::E13 /* = invalid-type */ = dynamic>() → void it) → self::E13 /* = invalid-type */
   return self::E13|(it);
-static inline-class-member method E14|(dynamic it) → self::E14 /* = core::int */
+static inline-class-member method E14|(core::int it) → self::E14 /* = core::int */
   ;
-static inline-class-member method E14|_#new#tearOff(dynamic it) → self::E14 /* = core::int */
+static inline-class-member method E14|_#new#tearOff(core::int it) → self::E14 /* = core::int */
   return self::E14|(it);
-static inline-class-member method E15a|(dynamic it) → self::E15a /* = invalid-type */
+static inline-class-member method E15a|(core::List<self::E15b /* = invalid-type */> it) → self::E15a /* = invalid-type */
   ;
-static inline-class-member method E15a|_#new#tearOff(dynamic it) → self::E15a /* = invalid-type */
+static inline-class-member method E15a|_#new#tearOff(core::List<self::E15b /* = invalid-type */> it) → self::E15a /* = invalid-type */
   return self::E15a|(it);
-static inline-class-member method E15b|(dynamic it) → self::E15b /* = invalid-type */
+static inline-class-member method E15b|(core::List<self::E15a /* = invalid-type */> it) → self::E15b /* = invalid-type */
   ;
-static inline-class-member method E15b|_#new#tearOff(dynamic it) → self::E15b /* = invalid-type */
+static inline-class-member method E15b|_#new#tearOff(core::List<self::E15a /* = invalid-type */> it) → self::E15b /* = invalid-type */
   return self::E15b|(it);
-static inline-class-member method E16a|(dynamic it) → self::E16a /* = invalid-type */
+static inline-class-member method E16a|(core::List<self::E16b /* = invalid-type */> it) → self::E16a /* = invalid-type */
   ;
-static inline-class-member method E16a|_#new#tearOff(dynamic it) → self::E16a /* = invalid-type */
+static inline-class-member method E16a|_#new#tearOff(core::List<self::E16b /* = invalid-type */> it) → self::E16a /* = invalid-type */
   return self::E16a|(it);
-static inline-class-member method E16b|(dynamic it) → self::E16b /* = invalid-type */
+static inline-class-member method E16b|(core::List<self::E16a /* = invalid-type */> it) → self::E16b /* = invalid-type */
   ;
-static inline-class-member method E16b|_#new#tearOff(dynamic it) → self::E16b /* = invalid-type */
+static inline-class-member method E16b|_#new#tearOff(core::List<self::E16a /* = invalid-type */> it) → self::E16b /* = invalid-type */
   return self::E16b|(it);
-static inline-class-member method E17|(dynamic it) → self::E17 /* = invalid-type */
+static inline-class-member method E17|((core::int, {required a: self::E17 /* = invalid-type */}) it) → self::E17 /* = invalid-type */
   ;
-static inline-class-member method E17|_#new#tearOff(dynamic it) → self::E17 /* = invalid-type */
+static inline-class-member method E17|_#new#tearOff((core::int, {required a: self::E17 /* = invalid-type */}) it) → self::E17 /* = invalid-type */
   return self::E17|(it);
-static inline-class-member method E18|(dynamic it) → self::E18 /* = invalid-type */
+static inline-class-member method E18|((self::E18 /* = invalid-type */) → void it) → self::E18 /* = invalid-type */
   ;
-static inline-class-member method E18|_#new#tearOff(dynamic it) → self::E18 /* = invalid-type */
+static inline-class-member method E18|_#new#tearOff((self::E18 /* = invalid-type */) → void it) → self::E18 /* = invalid-type */
   return self::E18|(it);
-static inline-class-member method E19a|(dynamic it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
+static inline-class-member method E19a|((self::E19b /* = core::int */, self::E19b /* = core::int */) it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
   ;
-static inline-class-member method E19a|_#new#tearOff(dynamic it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
+static inline-class-member method E19a|_#new#tearOff((self::E19b /* = core::int */, self::E19b /* = core::int */) it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
   return self::E19a|(it);
-static inline-class-member method E19b|(dynamic it) → self::E19b /* = core::int */
+static inline-class-member method E19b|(core::int it) → self::E19b /* = core::int */
   ;
-static inline-class-member method E19b|_#new#tearOff(dynamic it) → self::E19b /* = core::int */
+static inline-class-member method E19b|_#new#tearOff(core::int it) → self::E19b /* = core::int */
   return self::E19b|(it);
-static inline-class-member method E20|(dynamic it) → self::E20 /* = invalid-type */
+static inline-class-member method E20|(invalid-type it) → self::E20 /* = invalid-type */
   ;
-static inline-class-member method E20|_#new#tearOff(dynamic it) → self::E20 /* = invalid-type */
+static inline-class-member method E20|_#new#tearOff(invalid-type it) → self::E20 /* = invalid-type */
   return self::E20|(it);
-static inline-class-member method E21|(dynamic it) → self::E21 /* = invalid-type */
+static inline-class-member method E21|(invalid-type it) → self::E21 /* = invalid-type */
   ;
-static inline-class-member method E21|_#new#tearOff(dynamic it) → self::E21 /* = invalid-type */
+static inline-class-member method E21|_#new#tearOff(invalid-type it) → self::E21 /* = invalid-type */
   return self::E21|(it);
-static inline-class-member method E22|(dynamic it) → self::E22 /* = invalid-type */
+static inline-class-member method E22|(invalid-type it) → self::E22 /* = invalid-type */
   ;
-static inline-class-member method E22|_#new#tearOff(dynamic it) → self::E22 /* = invalid-type */
+static inline-class-member method E22|_#new#tearOff(invalid-type it) → self::E22 /* = invalid-type */
   return self::E22|(it);
-static inline-class-member method E23|(dynamic it) → self::E23 /* = invalid-type */
+static inline-class-member method E23|(core::List<self::E23 /* = invalid-type */> it) → self::E23 /* = invalid-type */
   ;
-static inline-class-member method E23|_#new#tearOff(dynamic it) → self::E23 /* = invalid-type */
+static inline-class-member method E23|_#new#tearOff(core::List<self::E23 /* = invalid-type */> it) → self::E23 /* = invalid-type */
   return self::E23|(it);
-static inline-class-member method E24|<T extends core::Object? = dynamic>(dynamic it) → self::E24<self::E24|::T%> /* = invalid-type */
+static inline-class-member method E24|<T extends core::Object? = dynamic>(core::List<self::E24<dynamic> /* = invalid-type */> it) → self::E24<self::E24|::T%> /* = invalid-type */
   ;
-static inline-class-member method E24|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E24<self::E24|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E24|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::E24<dynamic> /* = invalid-type */> it) → self::E24<self::E24|_#new#tearOff::T%> /* = invalid-type */
   return self::E24|<self::E24|_#new#tearOff::T%>(it);
 static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/integers_patch.dart */ _#Alias14#fromEnvironment#tearOff<unrelated T extends core::Object? = dynamic>(core::String name, {has-declared-initializer core::int defaultValue}) → core::int
   return core::int::fromEnvironment(name, defaultValue: defaultValue);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.transformed.expect
index f5a4965..89d82bc 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/cyclic_representation_type.dart.weak.transformed.expect
@@ -331,185 +331,185 @@
   constructor • = self::E24|;
   tearoff • = self::E24|_#new#tearOff;
 }
-static inline-class-member method E1|(dynamic it) → self::E1 /* = invalid-type */ {
+static inline-class-member method E1|(self::E1 /* = invalid-type */ it) → self::E1 /* = invalid-type */ {
   lowered final self::E1 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E1|_#new#tearOff(dynamic it) → self::E1 /* = invalid-type */
+static inline-class-member method E1|_#new#tearOff(self::E1 /* = invalid-type */ it) → self::E1 /* = invalid-type */
   return self::E1|(it);
-static inline-class-member method E2a|(dynamic it) → self::E2a /* = invalid-type */ {
+static inline-class-member method E2a|(self::E2b /* = invalid-type */ it) → self::E2a /* = invalid-type */ {
   lowered final self::E2a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E2a|_#new#tearOff(dynamic it) → self::E2a /* = invalid-type */
+static inline-class-member method E2a|_#new#tearOff(self::E2b /* = invalid-type */ it) → self::E2a /* = invalid-type */
   return self::E2a|(it);
-static inline-class-member method E2b|(dynamic it) → self::E2b /* = invalid-type */ {
+static inline-class-member method E2b|(self::E2a /* = invalid-type */ it) → self::E2b /* = invalid-type */ {
   lowered final self::E2b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E2b|_#new#tearOff(dynamic it) → self::E2b /* = invalid-type */
+static inline-class-member method E2b|_#new#tearOff(self::E2a /* = invalid-type */ it) → self::E2b /* = invalid-type */
   return self::E2b|(it);
-static inline-class-member method E3a|(dynamic it) → self::E3a /* = invalid-type */ {
+static inline-class-member method E3a|(self::E3b /* = invalid-type */ it) → self::E3a /* = invalid-type */ {
   lowered final self::E3a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3a|_#new#tearOff(dynamic it) → self::E3a /* = invalid-type */
+static inline-class-member method E3a|_#new#tearOff(self::E3b /* = invalid-type */ it) → self::E3a /* = invalid-type */
   return self::E3a|(it);
-static inline-class-member method E3b|(dynamic it) → self::E3b /* = invalid-type */ {
+static inline-class-member method E3b|(self::E3c /* = invalid-type */ it) → self::E3b /* = invalid-type */ {
   lowered final self::E3b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3b|_#new#tearOff(dynamic it) → self::E3b /* = invalid-type */
+static inline-class-member method E3b|_#new#tearOff(self::E3c /* = invalid-type */ it) → self::E3b /* = invalid-type */
   return self::E3b|(it);
-static inline-class-member method E3c|(dynamic it) → self::E3c /* = invalid-type */ {
+static inline-class-member method E3c|(self::E3a /* = invalid-type */ it) → self::E3c /* = invalid-type */ {
   lowered final self::E3c /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E3c|_#new#tearOff(dynamic it) → self::E3c /* = invalid-type */
+static inline-class-member method E3c|_#new#tearOff(self::E3a /* = invalid-type */ it) → self::E3c /* = invalid-type */
   return self::E3c|(it);
-static inline-class-member method E4|(dynamic it) → self::E4 /* = invalid-type */ {
+static inline-class-member method E4|(() → self::E4 /* = invalid-type */ it) → self::E4 /* = invalid-type */ {
   lowered final self::E4 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E4|_#new#tearOff(dynamic it) → self::E4 /* = invalid-type */
+static inline-class-member method E4|_#new#tearOff(() → self::E4 /* = invalid-type */ it) → self::E4 /* = invalid-type */
   return self::E4|(it);
-static inline-class-member method E5|(dynamic it) → self::E5 /* = invalid-type */ {
+static inline-class-member method E5|((self::E5 /* = invalid-type */) → void it) → self::E5 /* = invalid-type */ {
   lowered final self::E5 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E5|_#new#tearOff(dynamic it) → self::E5 /* = invalid-type */
+static inline-class-member method E5|_#new#tearOff((self::E5 /* = invalid-type */) → void it) → self::E5 /* = invalid-type */
   return self::E5|(it);
-static inline-class-member method E6|(dynamic it) → self::E6 /* = invalid-type */ {
+static inline-class-member method E6|((self::E6 /* = invalid-type */, core::int) it) → self::E6 /* = invalid-type */ {
   lowered final self::E6 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E6|_#new#tearOff(dynamic it) → self::E6 /* = invalid-type */
+static inline-class-member method E6|_#new#tearOff((self::E6 /* = invalid-type */, core::int) it) → self::E6 /* = invalid-type */
   return self::E6|(it);
-static inline-class-member method E7|_#new#tearOff(dynamic it) → self::E7 /* = invalid-type */
+static inline-class-member method E7|_#new#tearOff(<T extends self::E7 /* = invalid-type */ = dynamic>() → void it) → self::E7 /* = invalid-type */
   return self::E7|(it);
-static inline-class-member method E7|(dynamic it) → self::E7 /* = invalid-type */ {
+static inline-class-member method E7|(<T extends self::E7 /* = invalid-type */ = dynamic>() → void it) → self::E7 /* = invalid-type */ {
   lowered final self::E7 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E8|<T extends core::Object? = dynamic>(dynamic it) → self::E8<self::E8|::T%> /* = invalid-type */ {
+static inline-class-member method E8|<T extends core::Object? = dynamic>(core::List<self::E8<dynamic> /* = invalid-type */> it) → self::E8<self::E8|::T%> /* = invalid-type */ {
   lowered final self::E8<self::E8|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E8|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E8<self::E8|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E8|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::E8<dynamic> /* = invalid-type */> it) → self::E8<self::E8|_#new#tearOff::T%> /* = invalid-type */
   return self::E8|<self::E8|_#new#tearOff::T%>(it);
-static inline-class-member method E9|(dynamic it) → self::E9 /* = invalid-type */ {
+static inline-class-member method E9|(self::E9 /* = invalid-type */ it) → self::E9 /* = invalid-type */ {
   lowered final self::E9 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E9|_#new#tearOff(dynamic it) → self::E9 /* = invalid-type */
+static inline-class-member method E9|_#new#tearOff(self::E9 /* = invalid-type */ it) → self::E9 /* = invalid-type */
   return self::E9|(it);
-static inline-class-member method E10|<T extends core::Object? = dynamic>(dynamic it) → self::E10<self::E10|::T%> /* = invalid-type */ {
+static inline-class-member method E10|<T extends core::Object? = dynamic>(self::E10<self::E10|::T%> /* = invalid-type */ it) → self::E10<self::E10|::T%> /* = invalid-type */ {
   lowered final self::E10<self::E10|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E10|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E10|_#new#tearOff<T extends core::Object? = dynamic>(self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */ it) → self::E10<self::E10|_#new#tearOff::T%> /* = invalid-type */
   return self::E10|<self::E10|_#new#tearOff::T%>(it);
-static inline-class-member method E11|(dynamic it) → self::E11 /* = invalid-type */ {
+static inline-class-member method E11|(() → self::E11 /* = invalid-type */ it) → self::E11 /* = invalid-type */ {
   lowered final self::E11 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E11|_#new#tearOff(dynamic it) → self::E11 /* = invalid-type */
+static inline-class-member method E11|_#new#tearOff(() → self::E11 /* = invalid-type */ it) → self::E11 /* = invalid-type */
   return self::E11|(it);
-static inline-class-member method E12|(dynamic it) → self::E12 /* = invalid-type */ {
+static inline-class-member method E12|((self::E12 /* = invalid-type */) → void it) → self::E12 /* = invalid-type */ {
   lowered final self::E12 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E12|_#new#tearOff(dynamic it) → self::E12 /* = invalid-type */
+static inline-class-member method E12|_#new#tearOff((self::E12 /* = invalid-type */) → void it) → self::E12 /* = invalid-type */
   return self::E12|(it);
-static inline-class-member method E13|(dynamic it) → self::E13 /* = invalid-type */ {
+static inline-class-member method E13|(<T extends self::E13 /* = invalid-type */ = dynamic>() → void it) → self::E13 /* = invalid-type */ {
   lowered final self::E13 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E13|_#new#tearOff(dynamic it) → self::E13 /* = invalid-type */
+static inline-class-member method E13|_#new#tearOff(<T extends self::E13 /* = invalid-type */ = dynamic>() → void it) → self::E13 /* = invalid-type */
   return self::E13|(it);
-static inline-class-member method E14|(dynamic it) → self::E14 /* = core::int */ {
+static inline-class-member method E14|(core::int it) → self::E14 /* = core::int */ {
   lowered final self::E14 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E14|_#new#tearOff(dynamic it) → self::E14 /* = core::int */
+static inline-class-member method E14|_#new#tearOff(core::int it) → self::E14 /* = core::int */
   return self::E14|(it);
-static inline-class-member method E15a|(dynamic it) → self::E15a /* = invalid-type */ {
+static inline-class-member method E15a|(core::List<self::E15b /* = invalid-type */> it) → self::E15a /* = invalid-type */ {
   lowered final self::E15a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E15a|_#new#tearOff(dynamic it) → self::E15a /* = invalid-type */
+static inline-class-member method E15a|_#new#tearOff(core::List<self::E15b /* = invalid-type */> it) → self::E15a /* = invalid-type */
   return self::E15a|(it);
-static inline-class-member method E15b|(dynamic it) → self::E15b /* = invalid-type */ {
+static inline-class-member method E15b|(core::List<self::E15a /* = invalid-type */> it) → self::E15b /* = invalid-type */ {
   lowered final self::E15b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E15b|_#new#tearOff(dynamic it) → self::E15b /* = invalid-type */
+static inline-class-member method E15b|_#new#tearOff(core::List<self::E15a /* = invalid-type */> it) → self::E15b /* = invalid-type */
   return self::E15b|(it);
-static inline-class-member method E16a|(dynamic it) → self::E16a /* = invalid-type */ {
+static inline-class-member method E16a|(core::List<self::E16b /* = invalid-type */> it) → self::E16a /* = invalid-type */ {
   lowered final self::E16a /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E16a|_#new#tearOff(dynamic it) → self::E16a /* = invalid-type */
+static inline-class-member method E16a|_#new#tearOff(core::List<self::E16b /* = invalid-type */> it) → self::E16a /* = invalid-type */
   return self::E16a|(it);
-static inline-class-member method E16b|(dynamic it) → self::E16b /* = invalid-type */ {
+static inline-class-member method E16b|(core::List<self::E16a /* = invalid-type */> it) → self::E16b /* = invalid-type */ {
   lowered final self::E16b /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E16b|_#new#tearOff(dynamic it) → self::E16b /* = invalid-type */
+static inline-class-member method E16b|_#new#tearOff(core::List<self::E16a /* = invalid-type */> it) → self::E16b /* = invalid-type */
   return self::E16b|(it);
-static inline-class-member method E17|(dynamic it) → self::E17 /* = invalid-type */ {
+static inline-class-member method E17|((core::int, {required a: self::E17 /* = invalid-type */}) it) → self::E17 /* = invalid-type */ {
   lowered final self::E17 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E17|_#new#tearOff(dynamic it) → self::E17 /* = invalid-type */
+static inline-class-member method E17|_#new#tearOff((core::int, {required a: self::E17 /* = invalid-type */}) it) → self::E17 /* = invalid-type */
   return self::E17|(it);
-static inline-class-member method E18|(dynamic it) → self::E18 /* = invalid-type */ {
+static inline-class-member method E18|((self::E18 /* = invalid-type */) → void it) → self::E18 /* = invalid-type */ {
   lowered final self::E18 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E18|_#new#tearOff(dynamic it) → self::E18 /* = invalid-type */
+static inline-class-member method E18|_#new#tearOff((self::E18 /* = invalid-type */) → void it) → self::E18 /* = invalid-type */
   return self::E18|(it);
-static inline-class-member method E19a|(dynamic it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ {
+static inline-class-member method E19a|((self::E19b /* = core::int */, self::E19b /* = core::int */) it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ {
   lowered final self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */ #this = it;
   return #this;
 }
-static inline-class-member method E19a|_#new#tearOff(dynamic it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
+static inline-class-member method E19a|_#new#tearOff((self::E19b /* = core::int */, self::E19b /* = core::int */) it) → self::E19a /* =(self::E19b /* = core::int */, self::E19b /* = core::int */) */
   return self::E19a|(it);
-static inline-class-member method E19b|(dynamic it) → self::E19b /* = core::int */ {
+static inline-class-member method E19b|(core::int it) → self::E19b /* = core::int */ {
   lowered final self::E19b /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E19b|_#new#tearOff(dynamic it) → self::E19b /* = core::int */
+static inline-class-member method E19b|_#new#tearOff(core::int it) → self::E19b /* = core::int */
   return self::E19b|(it);
-static inline-class-member method E20|(dynamic it) → self::E20 /* = invalid-type */ {
+static inline-class-member method E20|(invalid-type it) → self::E20 /* = invalid-type */ {
   lowered final self::E20 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E20|_#new#tearOff(dynamic it) → self::E20 /* = invalid-type */
+static inline-class-member method E20|_#new#tearOff(invalid-type it) → self::E20 /* = invalid-type */
   return self::E20|(it);
-static inline-class-member method E21|(dynamic it) → self::E21 /* = invalid-type */ {
+static inline-class-member method E21|(invalid-type it) → self::E21 /* = invalid-type */ {
   lowered final self::E21 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E21|_#new#tearOff(dynamic it) → self::E21 /* = invalid-type */
+static inline-class-member method E21|_#new#tearOff(invalid-type it) → self::E21 /* = invalid-type */
   return self::E21|(it);
-static inline-class-member method E22|(dynamic it) → self::E22 /* = invalid-type */ {
+static inline-class-member method E22|(invalid-type it) → self::E22 /* = invalid-type */ {
   lowered final self::E22 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E22|_#new#tearOff(dynamic it) → self::E22 /* = invalid-type */
+static inline-class-member method E22|_#new#tearOff(invalid-type it) → self::E22 /* = invalid-type */
   return self::E22|(it);
-static inline-class-member method E23|(dynamic it) → self::E23 /* = invalid-type */ {
+static inline-class-member method E23|(core::List<self::E23 /* = invalid-type */> it) → self::E23 /* = invalid-type */ {
   lowered final self::E23 /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E23|_#new#tearOff(dynamic it) → self::E23 /* = invalid-type */
+static inline-class-member method E23|_#new#tearOff(core::List<self::E23 /* = invalid-type */> it) → self::E23 /* = invalid-type */
   return self::E23|(it);
-static inline-class-member method E24|<T extends core::Object? = dynamic>(dynamic it) → self::E24<self::E24|::T%> /* = invalid-type */ {
+static inline-class-member method E24|<T extends core::Object? = dynamic>(core::List<self::E24<dynamic> /* = invalid-type */> it) → self::E24<self::E24|::T%> /* = invalid-type */ {
   lowered final self::E24<self::E24|::T%> /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method E24|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::E24<self::E24|_#new#tearOff::T%> /* = invalid-type */
+static inline-class-member method E24|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::E24<dynamic> /* = invalid-type */> it) → self::E24<self::E24|_#new#tearOff::T%> /* = invalid-type */
   return self::E24|<self::E24|_#new#tearOff::T%>(it);
 static method /* from org-dartlang-sdk:///sdk/lib/_internal/vm_shared/lib/integers_patch.dart */ _#Alias14#fromEnvironment#tearOff<unrelated T extends core::Object? = dynamic>(core::String name, {core::int defaultValue = #C1}) → core::int
   return core::int::fromEnvironment(name, defaultValue: defaultValue);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.strong.expect
index 9f84a45..ae387dd 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.strong.expect
@@ -49,29 +49,29 @@
   tearoff id = self::ExtensionType7|_#id#tearOff;
 }
 static field core::int ExtensionType4|staticField = 42;
-static inline-class-member method ExtensionType1|(dynamic it) → self::ExtensionType1 /* = core::int */ {
+static inline-class-member method ExtensionType1|(core::int it) → self::ExtensionType1 /* = core::int */ {
   lowered final self::ExtensionType1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType1|_#new#tearOff(dynamic it) → self::ExtensionType1 /* = core::int */
+static inline-class-member method ExtensionType1|_#new#tearOff(core::int it) → self::ExtensionType1 /* = core::int */
   return self::ExtensionType1|(it);
-static inline-class-member method ExtensionType2|(dynamic it) → self::ExtensionType2 /* = core::int */ {
+static inline-class-member method ExtensionType2|(core::int it) → self::ExtensionType2 /* = core::int */ {
   lowered final self::ExtensionType2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType2|_#new#tearOff(dynamic it) → self::ExtensionType2 /* = core::int */
+static inline-class-member method ExtensionType2|_#new#tearOff(core::int it) → self::ExtensionType2 /* = core::int */
   return self::ExtensionType2|(it);
-static inline-class-member method ExtensionType3|<T extends core::num = dynamic>(dynamic it) → self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ {
+static inline-class-member method ExtensionType3|<T extends core::num = dynamic>(self::ExtensionType3|::T it) → self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ {
   lowered final self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType3|_#new#tearOff<T extends core::num = dynamic>(dynamic it) → self::ExtensionType3<self::ExtensionType3|_#new#tearOff::T> /* = self::ExtensionType3|_#new#tearOff::T */
+static inline-class-member method ExtensionType3|_#new#tearOff<T extends core::num = dynamic>(self::ExtensionType3|_#new#tearOff::T it) → self::ExtensionType3<self::ExtensionType3|_#new#tearOff::T> /* = self::ExtensionType3|_#new#tearOff::T */
   return self::ExtensionType3|<self::ExtensionType3|_#new#tearOff::T>(it);
-static inline-class-member method ExtensionType4|(dynamic it) → self::ExtensionType4 /* = core::int */ {
+static inline-class-member method ExtensionType4|(core::int it) → self::ExtensionType4 /* = core::int */ {
   lowered final self::ExtensionType4 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType4|_#new#tearOff(dynamic it) → self::ExtensionType4 /* = core::int */
+static inline-class-member method ExtensionType4|_#new#tearOff(core::int it) → self::ExtensionType4 /* = core::int */
   return self::ExtensionType4|(it);
 static inline-class-member method ExtensionType4|constructor(core::int it) → self::ExtensionType4 /* = core::int */ {
   lowered final self::ExtensionType4 /* = core::int */ #this = it;
@@ -109,21 +109,21 @@
 static inline-class-member set ExtensionType4|staticSetter(core::int value) → void {}
 static inline-class-member method ExtensionType4|staticMethod() → core::int
   return 42;
-static inline-class-member method ExtensionType5|(dynamic it) → self::ExtensionType5 /* = core::int */ {
+static inline-class-member method ExtensionType5|(core::int it) → self::ExtensionType5 /* = core::int */ {
   lowered final self::ExtensionType5 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType5|_#new#tearOff(dynamic it) → self::ExtensionType5 /* = core::int */
+static inline-class-member method ExtensionType5|_#new#tearOff(core::int it) → self::ExtensionType5 /* = core::int */
   return self::ExtensionType5|(it);
-static inline-class-member method ExtensionType6|id(dynamic it) → self::ExtensionType6 /* = core::int */ {
+static inline-class-member method ExtensionType6|id(core::int it) → self::ExtensionType6 /* = core::int */ {
   lowered final self::ExtensionType6 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType6|_#id#tearOff(dynamic it) → self::ExtensionType6 /* = core::int */
+static inline-class-member method ExtensionType6|_#id#tearOff(core::int it) → self::ExtensionType6 /* = core::int */
   return self::ExtensionType6|id(it);
-static inline-class-member method ExtensionType7|id<T extends core::num = dynamic>(dynamic it) → self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ {
+static inline-class-member method ExtensionType7|id<T extends core::num = dynamic>(core::int it) → self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ {
   lowered final self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType7|_#id#tearOff<T extends core::num = dynamic>(dynamic it) → self::ExtensionType7<self::ExtensionType7|_#id#tearOff::T> /* = core::int */
+static inline-class-member method ExtensionType7|_#id#tearOff<T extends core::num = dynamic>(core::int it) → self::ExtensionType7<self::ExtensionType7|_#id#tearOff::T> /* = core::int */
   return self::ExtensionType7|id<self::ExtensionType7|_#id#tearOff::T>(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.strong.transformed.expect
index 9f84a45..ae387dd 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.strong.transformed.expect
@@ -49,29 +49,29 @@
   tearoff id = self::ExtensionType7|_#id#tearOff;
 }
 static field core::int ExtensionType4|staticField = 42;
-static inline-class-member method ExtensionType1|(dynamic it) → self::ExtensionType1 /* = core::int */ {
+static inline-class-member method ExtensionType1|(core::int it) → self::ExtensionType1 /* = core::int */ {
   lowered final self::ExtensionType1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType1|_#new#tearOff(dynamic it) → self::ExtensionType1 /* = core::int */
+static inline-class-member method ExtensionType1|_#new#tearOff(core::int it) → self::ExtensionType1 /* = core::int */
   return self::ExtensionType1|(it);
-static inline-class-member method ExtensionType2|(dynamic it) → self::ExtensionType2 /* = core::int */ {
+static inline-class-member method ExtensionType2|(core::int it) → self::ExtensionType2 /* = core::int */ {
   lowered final self::ExtensionType2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType2|_#new#tearOff(dynamic it) → self::ExtensionType2 /* = core::int */
+static inline-class-member method ExtensionType2|_#new#tearOff(core::int it) → self::ExtensionType2 /* = core::int */
   return self::ExtensionType2|(it);
-static inline-class-member method ExtensionType3|<T extends core::num = dynamic>(dynamic it) → self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ {
+static inline-class-member method ExtensionType3|<T extends core::num = dynamic>(self::ExtensionType3|::T it) → self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ {
   lowered final self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType3|_#new#tearOff<T extends core::num = dynamic>(dynamic it) → self::ExtensionType3<self::ExtensionType3|_#new#tearOff::T> /* = self::ExtensionType3|_#new#tearOff::T */
+static inline-class-member method ExtensionType3|_#new#tearOff<T extends core::num = dynamic>(self::ExtensionType3|_#new#tearOff::T it) → self::ExtensionType3<self::ExtensionType3|_#new#tearOff::T> /* = self::ExtensionType3|_#new#tearOff::T */
   return self::ExtensionType3|<self::ExtensionType3|_#new#tearOff::T>(it);
-static inline-class-member method ExtensionType4|(dynamic it) → self::ExtensionType4 /* = core::int */ {
+static inline-class-member method ExtensionType4|(core::int it) → self::ExtensionType4 /* = core::int */ {
   lowered final self::ExtensionType4 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType4|_#new#tearOff(dynamic it) → self::ExtensionType4 /* = core::int */
+static inline-class-member method ExtensionType4|_#new#tearOff(core::int it) → self::ExtensionType4 /* = core::int */
   return self::ExtensionType4|(it);
 static inline-class-member method ExtensionType4|constructor(core::int it) → self::ExtensionType4 /* = core::int */ {
   lowered final self::ExtensionType4 /* = core::int */ #this = it;
@@ -109,21 +109,21 @@
 static inline-class-member set ExtensionType4|staticSetter(core::int value) → void {}
 static inline-class-member method ExtensionType4|staticMethod() → core::int
   return 42;
-static inline-class-member method ExtensionType5|(dynamic it) → self::ExtensionType5 /* = core::int */ {
+static inline-class-member method ExtensionType5|(core::int it) → self::ExtensionType5 /* = core::int */ {
   lowered final self::ExtensionType5 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType5|_#new#tearOff(dynamic it) → self::ExtensionType5 /* = core::int */
+static inline-class-member method ExtensionType5|_#new#tearOff(core::int it) → self::ExtensionType5 /* = core::int */
   return self::ExtensionType5|(it);
-static inline-class-member method ExtensionType6|id(dynamic it) → self::ExtensionType6 /* = core::int */ {
+static inline-class-member method ExtensionType6|id(core::int it) → self::ExtensionType6 /* = core::int */ {
   lowered final self::ExtensionType6 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType6|_#id#tearOff(dynamic it) → self::ExtensionType6 /* = core::int */
+static inline-class-member method ExtensionType6|_#id#tearOff(core::int it) → self::ExtensionType6 /* = core::int */
   return self::ExtensionType6|id(it);
-static inline-class-member method ExtensionType7|id<T extends core::num = dynamic>(dynamic it) → self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ {
+static inline-class-member method ExtensionType7|id<T extends core::num = dynamic>(core::int it) → self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ {
   lowered final self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType7|_#id#tearOff<T extends core::num = dynamic>(dynamic it) → self::ExtensionType7<self::ExtensionType7|_#id#tearOff::T> /* = core::int */
+static inline-class-member method ExtensionType7|_#id#tearOff<T extends core::num = dynamic>(core::int it) → self::ExtensionType7<self::ExtensionType7|_#id#tearOff::T> /* = core::int */
   return self::ExtensionType7|id<self::ExtensionType7|_#id#tearOff::T>(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.expect
index 9f84a45..ae387dd 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.expect
@@ -49,29 +49,29 @@
   tearoff id = self::ExtensionType7|_#id#tearOff;
 }
 static field core::int ExtensionType4|staticField = 42;
-static inline-class-member method ExtensionType1|(dynamic it) → self::ExtensionType1 /* = core::int */ {
+static inline-class-member method ExtensionType1|(core::int it) → self::ExtensionType1 /* = core::int */ {
   lowered final self::ExtensionType1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType1|_#new#tearOff(dynamic it) → self::ExtensionType1 /* = core::int */
+static inline-class-member method ExtensionType1|_#new#tearOff(core::int it) → self::ExtensionType1 /* = core::int */
   return self::ExtensionType1|(it);
-static inline-class-member method ExtensionType2|(dynamic it) → self::ExtensionType2 /* = core::int */ {
+static inline-class-member method ExtensionType2|(core::int it) → self::ExtensionType2 /* = core::int */ {
   lowered final self::ExtensionType2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType2|_#new#tearOff(dynamic it) → self::ExtensionType2 /* = core::int */
+static inline-class-member method ExtensionType2|_#new#tearOff(core::int it) → self::ExtensionType2 /* = core::int */
   return self::ExtensionType2|(it);
-static inline-class-member method ExtensionType3|<T extends core::num = dynamic>(dynamic it) → self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ {
+static inline-class-member method ExtensionType3|<T extends core::num = dynamic>(self::ExtensionType3|::T it) → self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ {
   lowered final self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType3|_#new#tearOff<T extends core::num = dynamic>(dynamic it) → self::ExtensionType3<self::ExtensionType3|_#new#tearOff::T> /* = self::ExtensionType3|_#new#tearOff::T */
+static inline-class-member method ExtensionType3|_#new#tearOff<T extends core::num = dynamic>(self::ExtensionType3|_#new#tearOff::T it) → self::ExtensionType3<self::ExtensionType3|_#new#tearOff::T> /* = self::ExtensionType3|_#new#tearOff::T */
   return self::ExtensionType3|<self::ExtensionType3|_#new#tearOff::T>(it);
-static inline-class-member method ExtensionType4|(dynamic it) → self::ExtensionType4 /* = core::int */ {
+static inline-class-member method ExtensionType4|(core::int it) → self::ExtensionType4 /* = core::int */ {
   lowered final self::ExtensionType4 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType4|_#new#tearOff(dynamic it) → self::ExtensionType4 /* = core::int */
+static inline-class-member method ExtensionType4|_#new#tearOff(core::int it) → self::ExtensionType4 /* = core::int */
   return self::ExtensionType4|(it);
 static inline-class-member method ExtensionType4|constructor(core::int it) → self::ExtensionType4 /* = core::int */ {
   lowered final self::ExtensionType4 /* = core::int */ #this = it;
@@ -109,21 +109,21 @@
 static inline-class-member set ExtensionType4|staticSetter(core::int value) → void {}
 static inline-class-member method ExtensionType4|staticMethod() → core::int
   return 42;
-static inline-class-member method ExtensionType5|(dynamic it) → self::ExtensionType5 /* = core::int */ {
+static inline-class-member method ExtensionType5|(core::int it) → self::ExtensionType5 /* = core::int */ {
   lowered final self::ExtensionType5 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType5|_#new#tearOff(dynamic it) → self::ExtensionType5 /* = core::int */
+static inline-class-member method ExtensionType5|_#new#tearOff(core::int it) → self::ExtensionType5 /* = core::int */
   return self::ExtensionType5|(it);
-static inline-class-member method ExtensionType6|id(dynamic it) → self::ExtensionType6 /* = core::int */ {
+static inline-class-member method ExtensionType6|id(core::int it) → self::ExtensionType6 /* = core::int */ {
   lowered final self::ExtensionType6 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType6|_#id#tearOff(dynamic it) → self::ExtensionType6 /* = core::int */
+static inline-class-member method ExtensionType6|_#id#tearOff(core::int it) → self::ExtensionType6 /* = core::int */
   return self::ExtensionType6|id(it);
-static inline-class-member method ExtensionType7|id<T extends core::num = dynamic>(dynamic it) → self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ {
+static inline-class-member method ExtensionType7|id<T extends core::num = dynamic>(core::int it) → self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ {
   lowered final self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType7|_#id#tearOff<T extends core::num = dynamic>(dynamic it) → self::ExtensionType7<self::ExtensionType7|_#id#tearOff::T> /* = core::int */
+static inline-class-member method ExtensionType7|_#id#tearOff<T extends core::num = dynamic>(core::int it) → self::ExtensionType7<self::ExtensionType7|_#id#tearOff::T> /* = core::int */
   return self::ExtensionType7|id<self::ExtensionType7|_#id#tearOff::T>(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.modular.expect
index 9f84a45..ae387dd 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.modular.expect
@@ -49,29 +49,29 @@
   tearoff id = self::ExtensionType7|_#id#tearOff;
 }
 static field core::int ExtensionType4|staticField = 42;
-static inline-class-member method ExtensionType1|(dynamic it) → self::ExtensionType1 /* = core::int */ {
+static inline-class-member method ExtensionType1|(core::int it) → self::ExtensionType1 /* = core::int */ {
   lowered final self::ExtensionType1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType1|_#new#tearOff(dynamic it) → self::ExtensionType1 /* = core::int */
+static inline-class-member method ExtensionType1|_#new#tearOff(core::int it) → self::ExtensionType1 /* = core::int */
   return self::ExtensionType1|(it);
-static inline-class-member method ExtensionType2|(dynamic it) → self::ExtensionType2 /* = core::int */ {
+static inline-class-member method ExtensionType2|(core::int it) → self::ExtensionType2 /* = core::int */ {
   lowered final self::ExtensionType2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType2|_#new#tearOff(dynamic it) → self::ExtensionType2 /* = core::int */
+static inline-class-member method ExtensionType2|_#new#tearOff(core::int it) → self::ExtensionType2 /* = core::int */
   return self::ExtensionType2|(it);
-static inline-class-member method ExtensionType3|<T extends core::num = dynamic>(dynamic it) → self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ {
+static inline-class-member method ExtensionType3|<T extends core::num = dynamic>(self::ExtensionType3|::T it) → self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ {
   lowered final self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType3|_#new#tearOff<T extends core::num = dynamic>(dynamic it) → self::ExtensionType3<self::ExtensionType3|_#new#tearOff::T> /* = self::ExtensionType3|_#new#tearOff::T */
+static inline-class-member method ExtensionType3|_#new#tearOff<T extends core::num = dynamic>(self::ExtensionType3|_#new#tearOff::T it) → self::ExtensionType3<self::ExtensionType3|_#new#tearOff::T> /* = self::ExtensionType3|_#new#tearOff::T */
   return self::ExtensionType3|<self::ExtensionType3|_#new#tearOff::T>(it);
-static inline-class-member method ExtensionType4|(dynamic it) → self::ExtensionType4 /* = core::int */ {
+static inline-class-member method ExtensionType4|(core::int it) → self::ExtensionType4 /* = core::int */ {
   lowered final self::ExtensionType4 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType4|_#new#tearOff(dynamic it) → self::ExtensionType4 /* = core::int */
+static inline-class-member method ExtensionType4|_#new#tearOff(core::int it) → self::ExtensionType4 /* = core::int */
   return self::ExtensionType4|(it);
 static inline-class-member method ExtensionType4|constructor(core::int it) → self::ExtensionType4 /* = core::int */ {
   lowered final self::ExtensionType4 /* = core::int */ #this = it;
@@ -109,21 +109,21 @@
 static inline-class-member set ExtensionType4|staticSetter(core::int value) → void {}
 static inline-class-member method ExtensionType4|staticMethod() → core::int
   return 42;
-static inline-class-member method ExtensionType5|(dynamic it) → self::ExtensionType5 /* = core::int */ {
+static inline-class-member method ExtensionType5|(core::int it) → self::ExtensionType5 /* = core::int */ {
   lowered final self::ExtensionType5 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType5|_#new#tearOff(dynamic it) → self::ExtensionType5 /* = core::int */
+static inline-class-member method ExtensionType5|_#new#tearOff(core::int it) → self::ExtensionType5 /* = core::int */
   return self::ExtensionType5|(it);
-static inline-class-member method ExtensionType6|id(dynamic it) → self::ExtensionType6 /* = core::int */ {
+static inline-class-member method ExtensionType6|id(core::int it) → self::ExtensionType6 /* = core::int */ {
   lowered final self::ExtensionType6 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType6|_#id#tearOff(dynamic it) → self::ExtensionType6 /* = core::int */
+static inline-class-member method ExtensionType6|_#id#tearOff(core::int it) → self::ExtensionType6 /* = core::int */
   return self::ExtensionType6|id(it);
-static inline-class-member method ExtensionType7|id<T extends core::num = dynamic>(dynamic it) → self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ {
+static inline-class-member method ExtensionType7|id<T extends core::num = dynamic>(core::int it) → self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ {
   lowered final self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType7|_#id#tearOff<T extends core::num = dynamic>(dynamic it) → self::ExtensionType7<self::ExtensionType7|_#id#tearOff::T> /* = core::int */
+static inline-class-member method ExtensionType7|_#id#tearOff<T extends core::num = dynamic>(core::int it) → self::ExtensionType7<self::ExtensionType7|_#id#tearOff::T> /* = core::int */
   return self::ExtensionType7|id<self::ExtensionType7|_#id#tearOff::T>(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.outline.expect
index 54c847c..10f20f9 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.outline.expect
@@ -49,21 +49,21 @@
   tearoff id = self::ExtensionType7|_#id#tearOff;
 }
 static field core::int ExtensionType4|staticField;
-static inline-class-member method ExtensionType1|(dynamic it) → self::ExtensionType1 /* = core::int */
+static inline-class-member method ExtensionType1|(core::int it) → self::ExtensionType1 /* = core::int */
   ;
-static inline-class-member method ExtensionType1|_#new#tearOff(dynamic it) → self::ExtensionType1 /* = core::int */
+static inline-class-member method ExtensionType1|_#new#tearOff(core::int it) → self::ExtensionType1 /* = core::int */
   return self::ExtensionType1|(it);
-static inline-class-member method ExtensionType2|(dynamic it) → self::ExtensionType2 /* = core::int */
+static inline-class-member method ExtensionType2|(core::int it) → self::ExtensionType2 /* = core::int */
   ;
-static inline-class-member method ExtensionType2|_#new#tearOff(dynamic it) → self::ExtensionType2 /* = core::int */
+static inline-class-member method ExtensionType2|_#new#tearOff(core::int it) → self::ExtensionType2 /* = core::int */
   return self::ExtensionType2|(it);
-static inline-class-member method ExtensionType3|<T extends core::num = dynamic>(dynamic it) → self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */
+static inline-class-member method ExtensionType3|<T extends core::num = dynamic>(self::ExtensionType3|::T it) → self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */
   ;
-static inline-class-member method ExtensionType3|_#new#tearOff<T extends core::num = dynamic>(dynamic it) → self::ExtensionType3<self::ExtensionType3|_#new#tearOff::T> /* = self::ExtensionType3|_#new#tearOff::T */
+static inline-class-member method ExtensionType3|_#new#tearOff<T extends core::num = dynamic>(self::ExtensionType3|_#new#tearOff::T it) → self::ExtensionType3<self::ExtensionType3|_#new#tearOff::T> /* = self::ExtensionType3|_#new#tearOff::T */
   return self::ExtensionType3|<self::ExtensionType3|_#new#tearOff::T>(it);
-static inline-class-member method ExtensionType4|(dynamic it) → self::ExtensionType4 /* = core::int */
+static inline-class-member method ExtensionType4|(core::int it) → self::ExtensionType4 /* = core::int */
   ;
-static inline-class-member method ExtensionType4|_#new#tearOff(dynamic it) → self::ExtensionType4 /* = core::int */
+static inline-class-member method ExtensionType4|_#new#tearOff(core::int it) → self::ExtensionType4 /* = core::int */
   return self::ExtensionType4|(it);
 static inline-class-member method ExtensionType4|constructor(core::int it) → self::ExtensionType4 /* = core::int */
   ;
@@ -99,15 +99,15 @@
   ;
 static inline-class-member method ExtensionType4|staticMethod() → core::int
   ;
-static inline-class-member method ExtensionType5|(dynamic it) → self::ExtensionType5 /* = core::int */
+static inline-class-member method ExtensionType5|(core::int it) → self::ExtensionType5 /* = core::int */
   ;
-static inline-class-member method ExtensionType5|_#new#tearOff(dynamic it) → self::ExtensionType5 /* = core::int */
+static inline-class-member method ExtensionType5|_#new#tearOff(core::int it) → self::ExtensionType5 /* = core::int */
   return self::ExtensionType5|(it);
-static inline-class-member method ExtensionType6|id(dynamic it) → self::ExtensionType6 /* = core::int */
+static inline-class-member method ExtensionType6|id(core::int it) → self::ExtensionType6 /* = core::int */
   ;
-static inline-class-member method ExtensionType6|_#id#tearOff(dynamic it) → self::ExtensionType6 /* = core::int */
+static inline-class-member method ExtensionType6|_#id#tearOff(core::int it) → self::ExtensionType6 /* = core::int */
   return self::ExtensionType6|id(it);
-static inline-class-member method ExtensionType7|id<T extends core::num = dynamic>(dynamic it) → self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */
+static inline-class-member method ExtensionType7|id<T extends core::num = dynamic>(core::int it) → self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */
   ;
-static inline-class-member method ExtensionType7|_#id#tearOff<T extends core::num = dynamic>(dynamic it) → self::ExtensionType7<self::ExtensionType7|_#id#tearOff::T> /* = core::int */
+static inline-class-member method ExtensionType7|_#id#tearOff<T extends core::num = dynamic>(core::int it) → self::ExtensionType7<self::ExtensionType7|_#id#tearOff::T> /* = core::int */
   return self::ExtensionType7|id<self::ExtensionType7|_#id#tearOff::T>(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.transformed.expect
index 9f84a45..ae387dd 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/extension_type_declarations.dart.weak.transformed.expect
@@ -49,29 +49,29 @@
   tearoff id = self::ExtensionType7|_#id#tearOff;
 }
 static field core::int ExtensionType4|staticField = 42;
-static inline-class-member method ExtensionType1|(dynamic it) → self::ExtensionType1 /* = core::int */ {
+static inline-class-member method ExtensionType1|(core::int it) → self::ExtensionType1 /* = core::int */ {
   lowered final self::ExtensionType1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType1|_#new#tearOff(dynamic it) → self::ExtensionType1 /* = core::int */
+static inline-class-member method ExtensionType1|_#new#tearOff(core::int it) → self::ExtensionType1 /* = core::int */
   return self::ExtensionType1|(it);
-static inline-class-member method ExtensionType2|(dynamic it) → self::ExtensionType2 /* = core::int */ {
+static inline-class-member method ExtensionType2|(core::int it) → self::ExtensionType2 /* = core::int */ {
   lowered final self::ExtensionType2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType2|_#new#tearOff(dynamic it) → self::ExtensionType2 /* = core::int */
+static inline-class-member method ExtensionType2|_#new#tearOff(core::int it) → self::ExtensionType2 /* = core::int */
   return self::ExtensionType2|(it);
-static inline-class-member method ExtensionType3|<T extends core::num = dynamic>(dynamic it) → self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ {
+static inline-class-member method ExtensionType3|<T extends core::num = dynamic>(self::ExtensionType3|::T it) → self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ {
   lowered final self::ExtensionType3<self::ExtensionType3|::T> /* = self::ExtensionType3|::T */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType3|_#new#tearOff<T extends core::num = dynamic>(dynamic it) → self::ExtensionType3<self::ExtensionType3|_#new#tearOff::T> /* = self::ExtensionType3|_#new#tearOff::T */
+static inline-class-member method ExtensionType3|_#new#tearOff<T extends core::num = dynamic>(self::ExtensionType3|_#new#tearOff::T it) → self::ExtensionType3<self::ExtensionType3|_#new#tearOff::T> /* = self::ExtensionType3|_#new#tearOff::T */
   return self::ExtensionType3|<self::ExtensionType3|_#new#tearOff::T>(it);
-static inline-class-member method ExtensionType4|(dynamic it) → self::ExtensionType4 /* = core::int */ {
+static inline-class-member method ExtensionType4|(core::int it) → self::ExtensionType4 /* = core::int */ {
   lowered final self::ExtensionType4 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType4|_#new#tearOff(dynamic it) → self::ExtensionType4 /* = core::int */
+static inline-class-member method ExtensionType4|_#new#tearOff(core::int it) → self::ExtensionType4 /* = core::int */
   return self::ExtensionType4|(it);
 static inline-class-member method ExtensionType4|constructor(core::int it) → self::ExtensionType4 /* = core::int */ {
   lowered final self::ExtensionType4 /* = core::int */ #this = it;
@@ -109,21 +109,21 @@
 static inline-class-member set ExtensionType4|staticSetter(core::int value) → void {}
 static inline-class-member method ExtensionType4|staticMethod() → core::int
   return 42;
-static inline-class-member method ExtensionType5|(dynamic it) → self::ExtensionType5 /* = core::int */ {
+static inline-class-member method ExtensionType5|(core::int it) → self::ExtensionType5 /* = core::int */ {
   lowered final self::ExtensionType5 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType5|_#new#tearOff(dynamic it) → self::ExtensionType5 /* = core::int */
+static inline-class-member method ExtensionType5|_#new#tearOff(core::int it) → self::ExtensionType5 /* = core::int */
   return self::ExtensionType5|(it);
-static inline-class-member method ExtensionType6|id(dynamic it) → self::ExtensionType6 /* = core::int */ {
+static inline-class-member method ExtensionType6|id(core::int it) → self::ExtensionType6 /* = core::int */ {
   lowered final self::ExtensionType6 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType6|_#id#tearOff(dynamic it) → self::ExtensionType6 /* = core::int */
+static inline-class-member method ExtensionType6|_#id#tearOff(core::int it) → self::ExtensionType6 /* = core::int */
   return self::ExtensionType6|id(it);
-static inline-class-member method ExtensionType7|id<T extends core::num = dynamic>(dynamic it) → self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ {
+static inline-class-member method ExtensionType7|id<T extends core::num = dynamic>(core::int it) → self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ {
   lowered final self::ExtensionType7<self::ExtensionType7|id::T> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType7|_#id#tearOff<T extends core::num = dynamic>(dynamic it) → self::ExtensionType7<self::ExtensionType7|_#id#tearOff::T> /* = core::int */
+static inline-class-member method ExtensionType7|_#id#tearOff<T extends core::num = dynamic>(core::int it) → self::ExtensionType7<self::ExtensionType7|_#id#tearOff::T> /* = core::int */
   return self::ExtensionType7|id<self::ExtensionType7|_#id#tearOff::T>(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/external.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/external.dart.strong.expect
index f386cdf..016afb6 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/external.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/external.dart.strong.expect
@@ -37,11 +37,11 @@
   constructor named = self::B|named;
   tearoff named = self::B|_#named#tearOff;
 }
-static inline-class-member method B|_(dynamic a) → self::B /* = self::A */ {
+static inline-class-member method B|_(self::A a) → self::B /* = self::A */ {
   lowered final self::B /* = self::A */ #this = a;
   return #this;
 }
-static inline-class-member method B|_#_#tearOff(dynamic a) → self::B /* = self::A */
+static inline-class-member method B|_#_#tearOff(self::A a) → self::B /* = self::A */
   return self::B|_(a);
 external static inline-class-member method B|(self::A a) → self::B /* = self::A */;
 static inline-class-member method B|_#new#tearOff(self::A a) → self::B /* = self::A */
diff --git a/pkg/front_end/testcases/inline_class/extension_types/external.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/external.dart.strong.transformed.expect
index f386cdf..016afb6 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/external.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/external.dart.strong.transformed.expect
@@ -37,11 +37,11 @@
   constructor named = self::B|named;
   tearoff named = self::B|_#named#tearOff;
 }
-static inline-class-member method B|_(dynamic a) → self::B /* = self::A */ {
+static inline-class-member method B|_(self::A a) → self::B /* = self::A */ {
   lowered final self::B /* = self::A */ #this = a;
   return #this;
 }
-static inline-class-member method B|_#_#tearOff(dynamic a) → self::B /* = self::A */
+static inline-class-member method B|_#_#tearOff(self::A a) → self::B /* = self::A */
   return self::B|_(a);
 external static inline-class-member method B|(self::A a) → self::B /* = self::A */;
 static inline-class-member method B|_#new#tearOff(self::A a) → self::B /* = self::A */
diff --git a/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.expect
index 5dc61aa..a194788 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.expect
@@ -37,11 +37,11 @@
   constructor named = self::B|named;
   tearoff named = self::B|_#named#tearOff;
 }
-static inline-class-member method B|_(dynamic a) → self::B /* = self::A */ {
+static inline-class-member method B|_(self::A a) → self::B /* = self::A */ {
   lowered final self::B /* = self::A */ #this = a;
   return #this;
 }
-static inline-class-member method B|_#_#tearOff(dynamic a) → self::B /* = self::A */
+static inline-class-member method B|_#_#tearOff(self::A a) → self::B /* = self::A */
   return self::B|_(a);
 external static inline-class-member method B|(self::A a) → self::B /* = self::A */;
 static inline-class-member method B|_#new#tearOff(self::A a) → self::B /* = self::A */
diff --git a/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.modular.expect
index 5dc61aa..a194788 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.modular.expect
@@ -37,11 +37,11 @@
   constructor named = self::B|named;
   tearoff named = self::B|_#named#tearOff;
 }
-static inline-class-member method B|_(dynamic a) → self::B /* = self::A */ {
+static inline-class-member method B|_(self::A a) → self::B /* = self::A */ {
   lowered final self::B /* = self::A */ #this = a;
   return #this;
 }
-static inline-class-member method B|_#_#tearOff(dynamic a) → self::B /* = self::A */
+static inline-class-member method B|_#_#tearOff(self::A a) → self::B /* = self::A */
   return self::B|_(a);
 external static inline-class-member method B|(self::A a) → self::B /* = self::A */;
 static inline-class-member method B|_#new#tearOff(self::A a) → self::B /* = self::A */
diff --git a/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.outline.expect
index 27b3887..143caf4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.outline.expect
@@ -28,9 +28,9 @@
   constructor named = self::B|named;
   tearoff named = self::B|_#named#tearOff;
 }
-static inline-class-member method B|_(dynamic a) → self::B /* = self::A */
+static inline-class-member method B|_(self::A a) → self::B /* = self::A */
   ;
-static inline-class-member method B|_#_#tearOff(dynamic a) → self::B /* = self::A */
+static inline-class-member method B|_#_#tearOff(self::A a) → self::B /* = self::A */
   return self::B|_(a);
 external static inline-class-member method B|(self::A a) → self::B /* = self::A */;
 static inline-class-member method B|_#new#tearOff(self::A a) → self::B /* = self::A */
diff --git a/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.transformed.expect
index 5dc61aa..a194788 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/external.dart.weak.transformed.expect
@@ -37,11 +37,11 @@
   constructor named = self::B|named;
   tearoff named = self::B|_#named#tearOff;
 }
-static inline-class-member method B|_(dynamic a) → self::B /* = self::A */ {
+static inline-class-member method B|_(self::A a) → self::B /* = self::A */ {
   lowered final self::B /* = self::A */ #this = a;
   return #this;
 }
-static inline-class-member method B|_#_#tearOff(dynamic a) → self::B /* = self::A */
+static inline-class-member method B|_#_#tearOff(self::A a) → self::B /* = self::A */
   return self::B|_(a);
 external static inline-class-member method B|(self::A a) → self::B /* = self::A */;
 static inline-class-member method B|_#new#tearOff(self::A a) → self::B /* = self::A */
diff --git a/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.strong.expect
index 00bb75e..ecbd0df 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.strong.expect
@@ -337,11 +337,11 @@
   tearoff • = self::ErroneousInlineClass|_#new#tearOff;
 }
 static extension-member method _extension#0|set#it(lowered final dynamic #this, dynamic value) → void {}
-static inline-class-member method InlineClass|(dynamic it) → self::InlineClass /* = core::int */ {
+static inline-class-member method InlineClass|(core::int it) → self::InlineClass /* = core::int */ {
   lowered final self::InlineClass /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method InlineClass|_#new#tearOff(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|_#new#tearOff(core::int it) → self::InlineClass /* = core::int */
   return self::InlineClass|(it);
 static inline-class-member method InlineClass|test(lowered final self::InlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
@@ -365,11 +365,11 @@
 }
 static inline-class-member method InlineClass|get#test(lowered final self::InlineClass /* = core::int */ #this) → () → void
   return () → void => self::InlineClass|test(#this);
-static inline-class-member method GenericInlineClass|<T extends core::Object? = dynamic>(dynamic it) → self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ {
+static inline-class-member method GenericInlineClass|<T extends core::Object? = dynamic>(self::GenericInlineClass|::T% it) → self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ {
   lowered final self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericInlineClass<self::GenericInlineClass|_#new#tearOff::T%> /* = self::GenericInlineClass|_#new#tearOff::T% */
+static inline-class-member method GenericInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericInlineClass|_#new#tearOff::T% it) → self::GenericInlineClass<self::GenericInlineClass|_#new#tearOff::T%> /* = self::GenericInlineClass|_#new#tearOff::T% */
   return self::GenericInlineClass|<self::GenericInlineClass|_#new#tearOff::T%>(it);
 static inline-class-member method GenericInlineClass|test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|test::T%> /* = self::GenericInlineClass|test::T% */ #this, self::GenericInlineClass|test::T% t) → void {
   self::GenericInlineClass|test::T% a1 = #this as{Unchecked} self::GenericInlineClass|test::T%;
@@ -393,11 +393,11 @@
 }
 static inline-class-member method GenericInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|get#test::T%> /* = self::GenericInlineClass|get#test::T% */ #this) → (self::GenericInlineClass|get#test::T%) → void
   return (self::GenericInlineClass|get#test::T% t) → void => self::GenericInlineClass|test<self::GenericInlineClass|get#test::T%>(#this, t);
-static inline-class-member method FunctionInlineClass|<T extends core::Object? = dynamic>(dynamic it) → self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ {
+static inline-class-member method FunctionInlineClass|<T extends core::Object? = dynamic>(() → self::FunctionInlineClass|::T% it) → self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ {
   lowered final self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method FunctionInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::FunctionInlineClass<self::FunctionInlineClass|_#new#tearOff::T%> /* = () → self::FunctionInlineClass|_#new#tearOff::T% */
+static inline-class-member method FunctionInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(() → self::FunctionInlineClass|_#new#tearOff::T% it) → self::FunctionInlineClass<self::FunctionInlineClass|_#new#tearOff::T%> /* = () → self::FunctionInlineClass|_#new#tearOff::T% */
   return self::FunctionInlineClass|<self::FunctionInlineClass|_#new#tearOff::T%>(it);
 static inline-class-member method FunctionInlineClass|test<T extends core::Object? = dynamic>(lowered final self::FunctionInlineClass<self::FunctionInlineClass|test::T%> /* = () → self::FunctionInlineClass|test::T% */ #this, () → self::FunctionInlineClass|test::T% t) → void {
   () → self::FunctionInlineClass|test::T% a1 = #this as{Unchecked} () → self::FunctionInlineClass|test::T%;
@@ -425,11 +425,11 @@
 }
 static inline-class-member method FunctionInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::FunctionInlineClass<self::FunctionInlineClass|get#test::T%> /* = () → self::FunctionInlineClass|get#test::T% */ #this) → (() → self::FunctionInlineClass|get#test::T%) → void
   return (() → self::FunctionInlineClass|get#test::T% t) → void => self::FunctionInlineClass|test<self::FunctionInlineClass|get#test::T%>(#this, t);
-static inline-class-member method GenericFunctionInlineClass|(dynamic it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ {
+static inline-class-member method GenericFunctionInlineClass|(<T extends core::Object? = dynamic>() → T% it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ {
   lowered final self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericFunctionInlineClass|_#new#tearOff(dynamic it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
+static inline-class-member method GenericFunctionInlineClass|_#new#tearOff(<T extends core::Object? = dynamic>() → T% it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
   return self::GenericFunctionInlineClass|(it);
 static inline-class-member method GenericFunctionInlineClass|test(lowered final self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ #this) → void {
   <T extends core::Object? = dynamic>() → T% a1 = #this as{Unchecked} <T extends core::Object? = dynamic>() → T%;
@@ -493,11 +493,11 @@
 }
 static inline-class-member method DynamicInlineClass|get#test(lowered final self::DynamicInlineClass /* = dynamic */ #this) → () → void
   return () → void => self::DynamicInlineClass|test(#this);
-static inline-class-member method ErroneousInlineClass|(dynamic a, dynamic b) → self::ErroneousInlineClass /* = core::int */ {
+static inline-class-member method ErroneousInlineClass|(core::int a, core::String b) → self::ErroneousInlineClass /* = core::int */ {
   lowered final self::ErroneousInlineClass /* = core::int */ #this = b;
   return #this;
 }
-static inline-class-member method ErroneousInlineClass|_#new#tearOff(dynamic a, dynamic b) → self::ErroneousInlineClass /* = core::int */
+static inline-class-member method ErroneousInlineClass|_#new#tearOff(core::int a, core::String b) → self::ErroneousInlineClass /* = core::int */
   return self::ErroneousInlineClass|(a, b);
 static inline-class-member method ErroneousInlineClass|test(lowered final self::ErroneousInlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
@@ -694,11 +694,11 @@
   constructor • = self2::PrivateInlineClass|;
   tearoff • = self2::PrivateInlineClass|_#new#tearOff;
 }
-static inline-class-member method PrivateInlineClass|(dynamic _it) → self2::PrivateInlineClass /* = core::int */ {
+static inline-class-member method PrivateInlineClass|(core::int _it) → self2::PrivateInlineClass /* = core::int */ {
   lowered final self2::PrivateInlineClass /* = core::int */ #this = _it;
   return #this;
 }
-static inline-class-member method PrivateInlineClass|_#new#tearOff(dynamic _it) → self2::PrivateInlineClass /* = core::int */
+static inline-class-member method PrivateInlineClass|_#new#tearOff(core::int _it) → self2::PrivateInlineClass /* = core::int */
   return self2::PrivateInlineClass|(_it);
 static inline-class-member method PrivateInlineClass|test(lowered final self2::PrivateInlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.strong.transformed.expect
index 00bb75e..ecbd0df 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.strong.transformed.expect
@@ -337,11 +337,11 @@
   tearoff • = self::ErroneousInlineClass|_#new#tearOff;
 }
 static extension-member method _extension#0|set#it(lowered final dynamic #this, dynamic value) → void {}
-static inline-class-member method InlineClass|(dynamic it) → self::InlineClass /* = core::int */ {
+static inline-class-member method InlineClass|(core::int it) → self::InlineClass /* = core::int */ {
   lowered final self::InlineClass /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method InlineClass|_#new#tearOff(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|_#new#tearOff(core::int it) → self::InlineClass /* = core::int */
   return self::InlineClass|(it);
 static inline-class-member method InlineClass|test(lowered final self::InlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
@@ -365,11 +365,11 @@
 }
 static inline-class-member method InlineClass|get#test(lowered final self::InlineClass /* = core::int */ #this) → () → void
   return () → void => self::InlineClass|test(#this);
-static inline-class-member method GenericInlineClass|<T extends core::Object? = dynamic>(dynamic it) → self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ {
+static inline-class-member method GenericInlineClass|<T extends core::Object? = dynamic>(self::GenericInlineClass|::T% it) → self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ {
   lowered final self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericInlineClass<self::GenericInlineClass|_#new#tearOff::T%> /* = self::GenericInlineClass|_#new#tearOff::T% */
+static inline-class-member method GenericInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericInlineClass|_#new#tearOff::T% it) → self::GenericInlineClass<self::GenericInlineClass|_#new#tearOff::T%> /* = self::GenericInlineClass|_#new#tearOff::T% */
   return self::GenericInlineClass|<self::GenericInlineClass|_#new#tearOff::T%>(it);
 static inline-class-member method GenericInlineClass|test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|test::T%> /* = self::GenericInlineClass|test::T% */ #this, self::GenericInlineClass|test::T% t) → void {
   self::GenericInlineClass|test::T% a1 = #this as{Unchecked} self::GenericInlineClass|test::T%;
@@ -393,11 +393,11 @@
 }
 static inline-class-member method GenericInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|get#test::T%> /* = self::GenericInlineClass|get#test::T% */ #this) → (self::GenericInlineClass|get#test::T%) → void
   return (self::GenericInlineClass|get#test::T% t) → void => self::GenericInlineClass|test<self::GenericInlineClass|get#test::T%>(#this, t);
-static inline-class-member method FunctionInlineClass|<T extends core::Object? = dynamic>(dynamic it) → self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ {
+static inline-class-member method FunctionInlineClass|<T extends core::Object? = dynamic>(() → self::FunctionInlineClass|::T% it) → self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ {
   lowered final self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method FunctionInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::FunctionInlineClass<self::FunctionInlineClass|_#new#tearOff::T%> /* = () → self::FunctionInlineClass|_#new#tearOff::T% */
+static inline-class-member method FunctionInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(() → self::FunctionInlineClass|_#new#tearOff::T% it) → self::FunctionInlineClass<self::FunctionInlineClass|_#new#tearOff::T%> /* = () → self::FunctionInlineClass|_#new#tearOff::T% */
   return self::FunctionInlineClass|<self::FunctionInlineClass|_#new#tearOff::T%>(it);
 static inline-class-member method FunctionInlineClass|test<T extends core::Object? = dynamic>(lowered final self::FunctionInlineClass<self::FunctionInlineClass|test::T%> /* = () → self::FunctionInlineClass|test::T% */ #this, () → self::FunctionInlineClass|test::T% t) → void {
   () → self::FunctionInlineClass|test::T% a1 = #this as{Unchecked} () → self::FunctionInlineClass|test::T%;
@@ -425,11 +425,11 @@
 }
 static inline-class-member method FunctionInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::FunctionInlineClass<self::FunctionInlineClass|get#test::T%> /* = () → self::FunctionInlineClass|get#test::T% */ #this) → (() → self::FunctionInlineClass|get#test::T%) → void
   return (() → self::FunctionInlineClass|get#test::T% t) → void => self::FunctionInlineClass|test<self::FunctionInlineClass|get#test::T%>(#this, t);
-static inline-class-member method GenericFunctionInlineClass|(dynamic it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ {
+static inline-class-member method GenericFunctionInlineClass|(<T extends core::Object? = dynamic>() → T% it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ {
   lowered final self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericFunctionInlineClass|_#new#tearOff(dynamic it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
+static inline-class-member method GenericFunctionInlineClass|_#new#tearOff(<T extends core::Object? = dynamic>() → T% it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
   return self::GenericFunctionInlineClass|(it);
 static inline-class-member method GenericFunctionInlineClass|test(lowered final self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ #this) → void {
   <T extends core::Object? = dynamic>() → T% a1 = #this as{Unchecked} <T extends core::Object? = dynamic>() → T%;
@@ -493,11 +493,11 @@
 }
 static inline-class-member method DynamicInlineClass|get#test(lowered final self::DynamicInlineClass /* = dynamic */ #this) → () → void
   return () → void => self::DynamicInlineClass|test(#this);
-static inline-class-member method ErroneousInlineClass|(dynamic a, dynamic b) → self::ErroneousInlineClass /* = core::int */ {
+static inline-class-member method ErroneousInlineClass|(core::int a, core::String b) → self::ErroneousInlineClass /* = core::int */ {
   lowered final self::ErroneousInlineClass /* = core::int */ #this = b;
   return #this;
 }
-static inline-class-member method ErroneousInlineClass|_#new#tearOff(dynamic a, dynamic b) → self::ErroneousInlineClass /* = core::int */
+static inline-class-member method ErroneousInlineClass|_#new#tearOff(core::int a, core::String b) → self::ErroneousInlineClass /* = core::int */
   return self::ErroneousInlineClass|(a, b);
 static inline-class-member method ErroneousInlineClass|test(lowered final self::ErroneousInlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
@@ -694,11 +694,11 @@
   constructor • = self2::PrivateInlineClass|;
   tearoff • = self2::PrivateInlineClass|_#new#tearOff;
 }
-static inline-class-member method PrivateInlineClass|(dynamic _it) → self2::PrivateInlineClass /* = core::int */ {
+static inline-class-member method PrivateInlineClass|(core::int _it) → self2::PrivateInlineClass /* = core::int */ {
   lowered final self2::PrivateInlineClass /* = core::int */ #this = _it;
   return #this;
 }
-static inline-class-member method PrivateInlineClass|_#new#tearOff(dynamic _it) → self2::PrivateInlineClass /* = core::int */
+static inline-class-member method PrivateInlineClass|_#new#tearOff(core::int _it) → self2::PrivateInlineClass /* = core::int */
   return self2::PrivateInlineClass|(_it);
 static inline-class-member method PrivateInlineClass|test(lowered final self2::PrivateInlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.expect
index 00bb75e..ecbd0df 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.expect
@@ -337,11 +337,11 @@
   tearoff • = self::ErroneousInlineClass|_#new#tearOff;
 }
 static extension-member method _extension#0|set#it(lowered final dynamic #this, dynamic value) → void {}
-static inline-class-member method InlineClass|(dynamic it) → self::InlineClass /* = core::int */ {
+static inline-class-member method InlineClass|(core::int it) → self::InlineClass /* = core::int */ {
   lowered final self::InlineClass /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method InlineClass|_#new#tearOff(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|_#new#tearOff(core::int it) → self::InlineClass /* = core::int */
   return self::InlineClass|(it);
 static inline-class-member method InlineClass|test(lowered final self::InlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
@@ -365,11 +365,11 @@
 }
 static inline-class-member method InlineClass|get#test(lowered final self::InlineClass /* = core::int */ #this) → () → void
   return () → void => self::InlineClass|test(#this);
-static inline-class-member method GenericInlineClass|<T extends core::Object? = dynamic>(dynamic it) → self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ {
+static inline-class-member method GenericInlineClass|<T extends core::Object? = dynamic>(self::GenericInlineClass|::T% it) → self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ {
   lowered final self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericInlineClass<self::GenericInlineClass|_#new#tearOff::T%> /* = self::GenericInlineClass|_#new#tearOff::T% */
+static inline-class-member method GenericInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericInlineClass|_#new#tearOff::T% it) → self::GenericInlineClass<self::GenericInlineClass|_#new#tearOff::T%> /* = self::GenericInlineClass|_#new#tearOff::T% */
   return self::GenericInlineClass|<self::GenericInlineClass|_#new#tearOff::T%>(it);
 static inline-class-member method GenericInlineClass|test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|test::T%> /* = self::GenericInlineClass|test::T% */ #this, self::GenericInlineClass|test::T% t) → void {
   self::GenericInlineClass|test::T% a1 = #this as{Unchecked} self::GenericInlineClass|test::T%;
@@ -393,11 +393,11 @@
 }
 static inline-class-member method GenericInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|get#test::T%> /* = self::GenericInlineClass|get#test::T% */ #this) → (self::GenericInlineClass|get#test::T%) → void
   return (self::GenericInlineClass|get#test::T% t) → void => self::GenericInlineClass|test<self::GenericInlineClass|get#test::T%>(#this, t);
-static inline-class-member method FunctionInlineClass|<T extends core::Object? = dynamic>(dynamic it) → self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ {
+static inline-class-member method FunctionInlineClass|<T extends core::Object? = dynamic>(() → self::FunctionInlineClass|::T% it) → self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ {
   lowered final self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method FunctionInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::FunctionInlineClass<self::FunctionInlineClass|_#new#tearOff::T%> /* = () → self::FunctionInlineClass|_#new#tearOff::T% */
+static inline-class-member method FunctionInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(() → self::FunctionInlineClass|_#new#tearOff::T% it) → self::FunctionInlineClass<self::FunctionInlineClass|_#new#tearOff::T%> /* = () → self::FunctionInlineClass|_#new#tearOff::T% */
   return self::FunctionInlineClass|<self::FunctionInlineClass|_#new#tearOff::T%>(it);
 static inline-class-member method FunctionInlineClass|test<T extends core::Object? = dynamic>(lowered final self::FunctionInlineClass<self::FunctionInlineClass|test::T%> /* = () → self::FunctionInlineClass|test::T% */ #this, () → self::FunctionInlineClass|test::T% t) → void {
   () → self::FunctionInlineClass|test::T% a1 = #this as{Unchecked} () → self::FunctionInlineClass|test::T%;
@@ -425,11 +425,11 @@
 }
 static inline-class-member method FunctionInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::FunctionInlineClass<self::FunctionInlineClass|get#test::T%> /* = () → self::FunctionInlineClass|get#test::T% */ #this) → (() → self::FunctionInlineClass|get#test::T%) → void
   return (() → self::FunctionInlineClass|get#test::T% t) → void => self::FunctionInlineClass|test<self::FunctionInlineClass|get#test::T%>(#this, t);
-static inline-class-member method GenericFunctionInlineClass|(dynamic it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ {
+static inline-class-member method GenericFunctionInlineClass|(<T extends core::Object? = dynamic>() → T% it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ {
   lowered final self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericFunctionInlineClass|_#new#tearOff(dynamic it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
+static inline-class-member method GenericFunctionInlineClass|_#new#tearOff(<T extends core::Object? = dynamic>() → T% it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
   return self::GenericFunctionInlineClass|(it);
 static inline-class-member method GenericFunctionInlineClass|test(lowered final self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ #this) → void {
   <T extends core::Object? = dynamic>() → T% a1 = #this as{Unchecked} <T extends core::Object? = dynamic>() → T%;
@@ -493,11 +493,11 @@
 }
 static inline-class-member method DynamicInlineClass|get#test(lowered final self::DynamicInlineClass /* = dynamic */ #this) → () → void
   return () → void => self::DynamicInlineClass|test(#this);
-static inline-class-member method ErroneousInlineClass|(dynamic a, dynamic b) → self::ErroneousInlineClass /* = core::int */ {
+static inline-class-member method ErroneousInlineClass|(core::int a, core::String b) → self::ErroneousInlineClass /* = core::int */ {
   lowered final self::ErroneousInlineClass /* = core::int */ #this = b;
   return #this;
 }
-static inline-class-member method ErroneousInlineClass|_#new#tearOff(dynamic a, dynamic b) → self::ErroneousInlineClass /* = core::int */
+static inline-class-member method ErroneousInlineClass|_#new#tearOff(core::int a, core::String b) → self::ErroneousInlineClass /* = core::int */
   return self::ErroneousInlineClass|(a, b);
 static inline-class-member method ErroneousInlineClass|test(lowered final self::ErroneousInlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
@@ -694,11 +694,11 @@
   constructor • = self2::PrivateInlineClass|;
   tearoff • = self2::PrivateInlineClass|_#new#tearOff;
 }
-static inline-class-member method PrivateInlineClass|(dynamic _it) → self2::PrivateInlineClass /* = core::int */ {
+static inline-class-member method PrivateInlineClass|(core::int _it) → self2::PrivateInlineClass /* = core::int */ {
   lowered final self2::PrivateInlineClass /* = core::int */ #this = _it;
   return #this;
 }
-static inline-class-member method PrivateInlineClass|_#new#tearOff(dynamic _it) → self2::PrivateInlineClass /* = core::int */
+static inline-class-member method PrivateInlineClass|_#new#tearOff(core::int _it) → self2::PrivateInlineClass /* = core::int */
   return self2::PrivateInlineClass|(_it);
 static inline-class-member method PrivateInlineClass|test(lowered final self2::PrivateInlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.modular.expect
index 00bb75e..ecbd0df 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.modular.expect
@@ -337,11 +337,11 @@
   tearoff • = self::ErroneousInlineClass|_#new#tearOff;
 }
 static extension-member method _extension#0|set#it(lowered final dynamic #this, dynamic value) → void {}
-static inline-class-member method InlineClass|(dynamic it) → self::InlineClass /* = core::int */ {
+static inline-class-member method InlineClass|(core::int it) → self::InlineClass /* = core::int */ {
   lowered final self::InlineClass /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method InlineClass|_#new#tearOff(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|_#new#tearOff(core::int it) → self::InlineClass /* = core::int */
   return self::InlineClass|(it);
 static inline-class-member method InlineClass|test(lowered final self::InlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
@@ -365,11 +365,11 @@
 }
 static inline-class-member method InlineClass|get#test(lowered final self::InlineClass /* = core::int */ #this) → () → void
   return () → void => self::InlineClass|test(#this);
-static inline-class-member method GenericInlineClass|<T extends core::Object? = dynamic>(dynamic it) → self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ {
+static inline-class-member method GenericInlineClass|<T extends core::Object? = dynamic>(self::GenericInlineClass|::T% it) → self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ {
   lowered final self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericInlineClass<self::GenericInlineClass|_#new#tearOff::T%> /* = self::GenericInlineClass|_#new#tearOff::T% */
+static inline-class-member method GenericInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericInlineClass|_#new#tearOff::T% it) → self::GenericInlineClass<self::GenericInlineClass|_#new#tearOff::T%> /* = self::GenericInlineClass|_#new#tearOff::T% */
   return self::GenericInlineClass|<self::GenericInlineClass|_#new#tearOff::T%>(it);
 static inline-class-member method GenericInlineClass|test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|test::T%> /* = self::GenericInlineClass|test::T% */ #this, self::GenericInlineClass|test::T% t) → void {
   self::GenericInlineClass|test::T% a1 = #this as{Unchecked} self::GenericInlineClass|test::T%;
@@ -393,11 +393,11 @@
 }
 static inline-class-member method GenericInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|get#test::T%> /* = self::GenericInlineClass|get#test::T% */ #this) → (self::GenericInlineClass|get#test::T%) → void
   return (self::GenericInlineClass|get#test::T% t) → void => self::GenericInlineClass|test<self::GenericInlineClass|get#test::T%>(#this, t);
-static inline-class-member method FunctionInlineClass|<T extends core::Object? = dynamic>(dynamic it) → self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ {
+static inline-class-member method FunctionInlineClass|<T extends core::Object? = dynamic>(() → self::FunctionInlineClass|::T% it) → self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ {
   lowered final self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method FunctionInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::FunctionInlineClass<self::FunctionInlineClass|_#new#tearOff::T%> /* = () → self::FunctionInlineClass|_#new#tearOff::T% */
+static inline-class-member method FunctionInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(() → self::FunctionInlineClass|_#new#tearOff::T% it) → self::FunctionInlineClass<self::FunctionInlineClass|_#new#tearOff::T%> /* = () → self::FunctionInlineClass|_#new#tearOff::T% */
   return self::FunctionInlineClass|<self::FunctionInlineClass|_#new#tearOff::T%>(it);
 static inline-class-member method FunctionInlineClass|test<T extends core::Object? = dynamic>(lowered final self::FunctionInlineClass<self::FunctionInlineClass|test::T%> /* = () → self::FunctionInlineClass|test::T% */ #this, () → self::FunctionInlineClass|test::T% t) → void {
   () → self::FunctionInlineClass|test::T% a1 = #this as{Unchecked} () → self::FunctionInlineClass|test::T%;
@@ -425,11 +425,11 @@
 }
 static inline-class-member method FunctionInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::FunctionInlineClass<self::FunctionInlineClass|get#test::T%> /* = () → self::FunctionInlineClass|get#test::T% */ #this) → (() → self::FunctionInlineClass|get#test::T%) → void
   return (() → self::FunctionInlineClass|get#test::T% t) → void => self::FunctionInlineClass|test<self::FunctionInlineClass|get#test::T%>(#this, t);
-static inline-class-member method GenericFunctionInlineClass|(dynamic it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ {
+static inline-class-member method GenericFunctionInlineClass|(<T extends core::Object? = dynamic>() → T% it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ {
   lowered final self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericFunctionInlineClass|_#new#tearOff(dynamic it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
+static inline-class-member method GenericFunctionInlineClass|_#new#tearOff(<T extends core::Object? = dynamic>() → T% it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
   return self::GenericFunctionInlineClass|(it);
 static inline-class-member method GenericFunctionInlineClass|test(lowered final self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ #this) → void {
   <T extends core::Object? = dynamic>() → T% a1 = #this as{Unchecked} <T extends core::Object? = dynamic>() → T%;
@@ -493,11 +493,11 @@
 }
 static inline-class-member method DynamicInlineClass|get#test(lowered final self::DynamicInlineClass /* = dynamic */ #this) → () → void
   return () → void => self::DynamicInlineClass|test(#this);
-static inline-class-member method ErroneousInlineClass|(dynamic a, dynamic b) → self::ErroneousInlineClass /* = core::int */ {
+static inline-class-member method ErroneousInlineClass|(core::int a, core::String b) → self::ErroneousInlineClass /* = core::int */ {
   lowered final self::ErroneousInlineClass /* = core::int */ #this = b;
   return #this;
 }
-static inline-class-member method ErroneousInlineClass|_#new#tearOff(dynamic a, dynamic b) → self::ErroneousInlineClass /* = core::int */
+static inline-class-member method ErroneousInlineClass|_#new#tearOff(core::int a, core::String b) → self::ErroneousInlineClass /* = core::int */
   return self::ErroneousInlineClass|(a, b);
 static inline-class-member method ErroneousInlineClass|test(lowered final self::ErroneousInlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
@@ -694,11 +694,11 @@
   constructor • = self2::PrivateInlineClass|;
   tearoff • = self2::PrivateInlineClass|_#new#tearOff;
 }
-static inline-class-member method PrivateInlineClass|(dynamic _it) → self2::PrivateInlineClass /* = core::int */ {
+static inline-class-member method PrivateInlineClass|(core::int _it) → self2::PrivateInlineClass /* = core::int */ {
   lowered final self2::PrivateInlineClass /* = core::int */ #this = _it;
   return #this;
 }
-static inline-class-member method PrivateInlineClass|_#new#tearOff(dynamic _it) → self2::PrivateInlineClass /* = core::int */
+static inline-class-member method PrivateInlineClass|_#new#tearOff(core::int _it) → self2::PrivateInlineClass /* = core::int */
   return self2::PrivateInlineClass|(_it);
 static inline-class-member method PrivateInlineClass|test(lowered final self2::PrivateInlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.outline.expect
index ae96c28..edb9755 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.outline.expect
@@ -45,33 +45,33 @@
 }
 static extension-member method _extension#0|set#it(lowered final dynamic #this, dynamic value) → void
   ;
-static inline-class-member method InlineClass|(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|(core::int it) → self::InlineClass /* = core::int */
   ;
-static inline-class-member method InlineClass|_#new#tearOff(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|_#new#tearOff(core::int it) → self::InlineClass /* = core::int */
   return self::InlineClass|(it);
 static inline-class-member method InlineClass|test(lowered final self::InlineClass /* = core::int */ #this) → void
   ;
 static inline-class-member method InlineClass|get#test(lowered final self::InlineClass /* = core::int */ #this) → () → void
   return () → void => self::InlineClass|test(#this);
-static inline-class-member method GenericInlineClass|<T extends core::Object? = dynamic>(dynamic it) → self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */
+static inline-class-member method GenericInlineClass|<T extends core::Object? = dynamic>(self::GenericInlineClass|::T% it) → self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */
   ;
-static inline-class-member method GenericInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericInlineClass<self::GenericInlineClass|_#new#tearOff::T%> /* = self::GenericInlineClass|_#new#tearOff::T% */
+static inline-class-member method GenericInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericInlineClass|_#new#tearOff::T% it) → self::GenericInlineClass<self::GenericInlineClass|_#new#tearOff::T%> /* = self::GenericInlineClass|_#new#tearOff::T% */
   return self::GenericInlineClass|<self::GenericInlineClass|_#new#tearOff::T%>(it);
 static inline-class-member method GenericInlineClass|test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|test::T%> /* = self::GenericInlineClass|test::T% */ #this, self::GenericInlineClass|test::T% t) → void
   ;
 static inline-class-member method GenericInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|get#test::T%> /* = self::GenericInlineClass|get#test::T% */ #this) → (self::GenericInlineClass|get#test::T%) → void
   return (self::GenericInlineClass|get#test::T% t) → void => self::GenericInlineClass|test<self::GenericInlineClass|get#test::T%>(#this, t);
-static inline-class-member method FunctionInlineClass|<T extends core::Object? = dynamic>(dynamic it) → self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */
+static inline-class-member method FunctionInlineClass|<T extends core::Object? = dynamic>(() → self::FunctionInlineClass|::T% it) → self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */
   ;
-static inline-class-member method FunctionInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::FunctionInlineClass<self::FunctionInlineClass|_#new#tearOff::T%> /* = () → self::FunctionInlineClass|_#new#tearOff::T% */
+static inline-class-member method FunctionInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(() → self::FunctionInlineClass|_#new#tearOff::T% it) → self::FunctionInlineClass<self::FunctionInlineClass|_#new#tearOff::T%> /* = () → self::FunctionInlineClass|_#new#tearOff::T% */
   return self::FunctionInlineClass|<self::FunctionInlineClass|_#new#tearOff::T%>(it);
 static inline-class-member method FunctionInlineClass|test<T extends core::Object? = dynamic>(lowered final self::FunctionInlineClass<self::FunctionInlineClass|test::T%> /* = () → self::FunctionInlineClass|test::T% */ #this, () → self::FunctionInlineClass|test::T% t) → void
   ;
 static inline-class-member method FunctionInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::FunctionInlineClass<self::FunctionInlineClass|get#test::T%> /* = () → self::FunctionInlineClass|get#test::T% */ #this) → (() → self::FunctionInlineClass|get#test::T%) → void
   return (() → self::FunctionInlineClass|get#test::T% t) → void => self::FunctionInlineClass|test<self::FunctionInlineClass|get#test::T%>(#this, t);
-static inline-class-member method GenericFunctionInlineClass|(dynamic it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
+static inline-class-member method GenericFunctionInlineClass|(<T extends core::Object? = dynamic>() → T% it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
   ;
-static inline-class-member method GenericFunctionInlineClass|_#new#tearOff(dynamic it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
+static inline-class-member method GenericFunctionInlineClass|_#new#tearOff(<T extends core::Object? = dynamic>() → T% it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
   return self::GenericFunctionInlineClass|(it);
 static inline-class-member method GenericFunctionInlineClass|test(lowered final self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ #this) → void
   ;
@@ -85,9 +85,9 @@
   ;
 static inline-class-member method DynamicInlineClass|get#test(lowered final self::DynamicInlineClass /* = dynamic */ #this) → () → void
   return () → void => self::DynamicInlineClass|test(#this);
-static inline-class-member method ErroneousInlineClass|(dynamic a, dynamic b) → self::ErroneousInlineClass /* = core::int */
+static inline-class-member method ErroneousInlineClass|(core::int a, core::String b) → self::ErroneousInlineClass /* = core::int */
   ;
-static inline-class-member method ErroneousInlineClass|_#new#tearOff(dynamic a, dynamic b) → self::ErroneousInlineClass /* = core::int */
+static inline-class-member method ErroneousInlineClass|_#new#tearOff(core::int a, core::String b) → self::ErroneousInlineClass /* = core::int */
   return self::ErroneousInlineClass|(a, b);
 static inline-class-member method ErroneousInlineClass|test(lowered final self::ErroneousInlineClass /* = core::int */ #this) → void
   ;
@@ -106,9 +106,9 @@
   constructor • = self2::PrivateInlineClass|;
   tearoff • = self2::PrivateInlineClass|_#new#tearOff;
 }
-static inline-class-member method PrivateInlineClass|(dynamic _it) → self2::PrivateInlineClass /* = core::int */
+static inline-class-member method PrivateInlineClass|(core::int _it) → self2::PrivateInlineClass /* = core::int */
   ;
-static inline-class-member method PrivateInlineClass|_#new#tearOff(dynamic _it) → self2::PrivateInlineClass /* = core::int */
+static inline-class-member method PrivateInlineClass|_#new#tearOff(core::int _it) → self2::PrivateInlineClass /* = core::int */
   return self2::PrivateInlineClass|(_it);
 static inline-class-member method PrivateInlineClass|test(lowered final self2::PrivateInlineClass /* = core::int */ #this) → void
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.transformed.expect
index 00bb75e..ecbd0df 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/field_access.dart.weak.transformed.expect
@@ -337,11 +337,11 @@
   tearoff • = self::ErroneousInlineClass|_#new#tearOff;
 }
 static extension-member method _extension#0|set#it(lowered final dynamic #this, dynamic value) → void {}
-static inline-class-member method InlineClass|(dynamic it) → self::InlineClass /* = core::int */ {
+static inline-class-member method InlineClass|(core::int it) → self::InlineClass /* = core::int */ {
   lowered final self::InlineClass /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method InlineClass|_#new#tearOff(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|_#new#tearOff(core::int it) → self::InlineClass /* = core::int */
   return self::InlineClass|(it);
 static inline-class-member method InlineClass|test(lowered final self::InlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
@@ -365,11 +365,11 @@
 }
 static inline-class-member method InlineClass|get#test(lowered final self::InlineClass /* = core::int */ #this) → () → void
   return () → void => self::InlineClass|test(#this);
-static inline-class-member method GenericInlineClass|<T extends core::Object? = dynamic>(dynamic it) → self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ {
+static inline-class-member method GenericInlineClass|<T extends core::Object? = dynamic>(self::GenericInlineClass|::T% it) → self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ {
   lowered final self::GenericInlineClass<self::GenericInlineClass|::T%> /* = self::GenericInlineClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericInlineClass<self::GenericInlineClass|_#new#tearOff::T%> /* = self::GenericInlineClass|_#new#tearOff::T% */
+static inline-class-member method GenericInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericInlineClass|_#new#tearOff::T% it) → self::GenericInlineClass<self::GenericInlineClass|_#new#tearOff::T%> /* = self::GenericInlineClass|_#new#tearOff::T% */
   return self::GenericInlineClass|<self::GenericInlineClass|_#new#tearOff::T%>(it);
 static inline-class-member method GenericInlineClass|test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|test::T%> /* = self::GenericInlineClass|test::T% */ #this, self::GenericInlineClass|test::T% t) → void {
   self::GenericInlineClass|test::T% a1 = #this as{Unchecked} self::GenericInlineClass|test::T%;
@@ -393,11 +393,11 @@
 }
 static inline-class-member method GenericInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::GenericInlineClass<self::GenericInlineClass|get#test::T%> /* = self::GenericInlineClass|get#test::T% */ #this) → (self::GenericInlineClass|get#test::T%) → void
   return (self::GenericInlineClass|get#test::T% t) → void => self::GenericInlineClass|test<self::GenericInlineClass|get#test::T%>(#this, t);
-static inline-class-member method FunctionInlineClass|<T extends core::Object? = dynamic>(dynamic it) → self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ {
+static inline-class-member method FunctionInlineClass|<T extends core::Object? = dynamic>(() → self::FunctionInlineClass|::T% it) → self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ {
   lowered final self::FunctionInlineClass<self::FunctionInlineClass|::T%> /* = () → self::FunctionInlineClass|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method FunctionInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::FunctionInlineClass<self::FunctionInlineClass|_#new#tearOff::T%> /* = () → self::FunctionInlineClass|_#new#tearOff::T% */
+static inline-class-member method FunctionInlineClass|_#new#tearOff<T extends core::Object? = dynamic>(() → self::FunctionInlineClass|_#new#tearOff::T% it) → self::FunctionInlineClass<self::FunctionInlineClass|_#new#tearOff::T%> /* = () → self::FunctionInlineClass|_#new#tearOff::T% */
   return self::FunctionInlineClass|<self::FunctionInlineClass|_#new#tearOff::T%>(it);
 static inline-class-member method FunctionInlineClass|test<T extends core::Object? = dynamic>(lowered final self::FunctionInlineClass<self::FunctionInlineClass|test::T%> /* = () → self::FunctionInlineClass|test::T% */ #this, () → self::FunctionInlineClass|test::T% t) → void {
   () → self::FunctionInlineClass|test::T% a1 = #this as{Unchecked} () → self::FunctionInlineClass|test::T%;
@@ -425,11 +425,11 @@
 }
 static inline-class-member method FunctionInlineClass|get#test<T extends core::Object? = dynamic>(lowered final self::FunctionInlineClass<self::FunctionInlineClass|get#test::T%> /* = () → self::FunctionInlineClass|get#test::T% */ #this) → (() → self::FunctionInlineClass|get#test::T%) → void
   return (() → self::FunctionInlineClass|get#test::T% t) → void => self::FunctionInlineClass|test<self::FunctionInlineClass|get#test::T%>(#this, t);
-static inline-class-member method GenericFunctionInlineClass|(dynamic it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ {
+static inline-class-member method GenericFunctionInlineClass|(<T extends core::Object? = dynamic>() → T% it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ {
   lowered final self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericFunctionInlineClass|_#new#tearOff(dynamic it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
+static inline-class-member method GenericFunctionInlineClass|_#new#tearOff(<T extends core::Object? = dynamic>() → T% it) → self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */
   return self::GenericFunctionInlineClass|(it);
 static inline-class-member method GenericFunctionInlineClass|test(lowered final self::GenericFunctionInlineClass /* = <T extends core::Object? = dynamic>() → T% */ #this) → void {
   <T extends core::Object? = dynamic>() → T% a1 = #this as{Unchecked} <T extends core::Object? = dynamic>() → T%;
@@ -493,11 +493,11 @@
 }
 static inline-class-member method DynamicInlineClass|get#test(lowered final self::DynamicInlineClass /* = dynamic */ #this) → () → void
   return () → void => self::DynamicInlineClass|test(#this);
-static inline-class-member method ErroneousInlineClass|(dynamic a, dynamic b) → self::ErroneousInlineClass /* = core::int */ {
+static inline-class-member method ErroneousInlineClass|(core::int a, core::String b) → self::ErroneousInlineClass /* = core::int */ {
   lowered final self::ErroneousInlineClass /* = core::int */ #this = b;
   return #this;
 }
-static inline-class-member method ErroneousInlineClass|_#new#tearOff(dynamic a, dynamic b) → self::ErroneousInlineClass /* = core::int */
+static inline-class-member method ErroneousInlineClass|_#new#tearOff(core::int a, core::String b) → self::ErroneousInlineClass /* = core::int */
   return self::ErroneousInlineClass|(a, b);
 static inline-class-member method ErroneousInlineClass|test(lowered final self::ErroneousInlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
@@ -694,11 +694,11 @@
   constructor • = self2::PrivateInlineClass|;
   tearoff • = self2::PrivateInlineClass|_#new#tearOff;
 }
-static inline-class-member method PrivateInlineClass|(dynamic _it) → self2::PrivateInlineClass /* = core::int */ {
+static inline-class-member method PrivateInlineClass|(core::int _it) → self2::PrivateInlineClass /* = core::int */ {
   lowered final self2::PrivateInlineClass /* = core::int */ #this = _it;
   return #this;
 }
-static inline-class-member method PrivateInlineClass|_#new#tearOff(dynamic _it) → self2::PrivateInlineClass /* = core::int */
+static inline-class-member method PrivateInlineClass|_#new#tearOff(core::int _it) → self2::PrivateInlineClass /* = core::int */
   return self2::PrivateInlineClass|(_it);
 static inline-class-member method PrivateInlineClass|test(lowered final self2::PrivateInlineClass /* = core::int */ #this) → void {
   core::int a1 = #this as{Unchecked} core::int;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.strong.expect
index 05d1aa9..eaa6a97 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.strong.expect
@@ -29,7 +29,7 @@
   mai2::ExtensionType|staticSetter = 124;
   mai::expect(124, mai2::ExtensionType|staticField);
   mai::expect(124, mai2::ExtensionType|staticGetter);
-  mai::expect(42, #C2(42){(dynamic) → mai2::ExtensionType /* = core::int */});
+  mai::expect(42, #C2(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(43, mai2::ExtensionType|named(42));
   mai::expect(43, #C3(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(44, mai2::ExtensionType|redirectingGenerative(42));
@@ -70,11 +70,11 @@
   static tearoff redirectingFactory = mai2::ExtensionType|_#redirectingFactory#tearOff;
 }
 static field core::int ExtensionType|staticField = 123;
-static inline-class-member method ExtensionType|(dynamic it) → mai2::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → mai2::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → mai2::ExtensionType /* = core::int */
   return mai2::ExtensionType|(it);
 static inline-class-member method ExtensionType|named(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.strong.transformed.expect
index 05d1aa9..eaa6a97 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.strong.transformed.expect
@@ -29,7 +29,7 @@
   mai2::ExtensionType|staticSetter = 124;
   mai::expect(124, mai2::ExtensionType|staticField);
   mai::expect(124, mai2::ExtensionType|staticGetter);
-  mai::expect(42, #C2(42){(dynamic) → mai2::ExtensionType /* = core::int */});
+  mai::expect(42, #C2(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(43, mai2::ExtensionType|named(42));
   mai::expect(43, #C3(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(44, mai2::ExtensionType|redirectingGenerative(42));
@@ -70,11 +70,11 @@
   static tearoff redirectingFactory = mai2::ExtensionType|_#redirectingFactory#tearOff;
 }
 static field core::int ExtensionType|staticField = 123;
-static inline-class-member method ExtensionType|(dynamic it) → mai2::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → mai2::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → mai2::ExtensionType /* = core::int */
   return mai2::ExtensionType|(it);
 static inline-class-member method ExtensionType|named(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.expect
index 05d1aa9..eaa6a97 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.expect
@@ -29,7 +29,7 @@
   mai2::ExtensionType|staticSetter = 124;
   mai::expect(124, mai2::ExtensionType|staticField);
   mai::expect(124, mai2::ExtensionType|staticGetter);
-  mai::expect(42, #C2(42){(dynamic) → mai2::ExtensionType /* = core::int */});
+  mai::expect(42, #C2(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(43, mai2::ExtensionType|named(42));
   mai::expect(43, #C3(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(44, mai2::ExtensionType|redirectingGenerative(42));
@@ -70,11 +70,11 @@
   static tearoff redirectingFactory = mai2::ExtensionType|_#redirectingFactory#tearOff;
 }
 static field core::int ExtensionType|staticField = 123;
-static inline-class-member method ExtensionType|(dynamic it) → mai2::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → mai2::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → mai2::ExtensionType /* = core::int */
   return mai2::ExtensionType|(it);
 static inline-class-member method ExtensionType|named(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.modular.expect
index d1413af..1088356 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.modular.expect
@@ -29,7 +29,7 @@
   mai2::ExtensionType|staticSetter = 124;
   mai::expect(124, mai2::ExtensionType|staticField);
   mai::expect(124, mai2::ExtensionType|staticGetter);
-  mai::expect(42, #C2(42){(dynamic) → mai2::ExtensionType /* = core::int */});
+  mai::expect(42, #C2(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(43, mai2::ExtensionType|named(42));
   mai::expect(43, #C3(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(44, mai2::ExtensionType|redirectingGenerative(42));
diff --git a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.outline.expect
index c4384a4..f85bcdb 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.outline.expect
@@ -43,9 +43,9 @@
   static tearoff redirectingFactory = self2::ExtensionType|_#redirectingFactory#tearOff;
 }
 static field core::int ExtensionType|staticField;
-static inline-class-member method ExtensionType|(dynamic it) → self2::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|(core::int it) → self2::ExtensionType /* = core::int */
   ;
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → self2::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → self2::ExtensionType /* = core::int */
   return self2::ExtensionType|(it);
 static inline-class-member method ExtensionType|named(core::int it) → self2::ExtensionType /* = core::int */
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.transformed.expect
index 05d1aa9..eaa6a97 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.dart.weak.transformed.expect
@@ -29,7 +29,7 @@
   mai2::ExtensionType|staticSetter = 124;
   mai::expect(124, mai2::ExtensionType|staticField);
   mai::expect(124, mai2::ExtensionType|staticGetter);
-  mai::expect(42, #C2(42){(dynamic) → mai2::ExtensionType /* = core::int */});
+  mai::expect(42, #C2(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(43, mai2::ExtensionType|named(42));
   mai::expect(43, #C3(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(44, mai2::ExtensionType|redirectingGenerative(42));
@@ -70,11 +70,11 @@
   static tearoff redirectingFactory = mai2::ExtensionType|_#redirectingFactory#tearOff;
 }
 static field core::int ExtensionType|staticField = 123;
-static inline-class-member method ExtensionType|(dynamic it) → mai2::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → mai2::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → mai2::ExtensionType /* = core::int */
   return mai2::ExtensionType|(it);
 static inline-class-member method ExtensionType|named(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.strong.expect
index 05d1aa9..eaa6a97 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.strong.expect
@@ -29,7 +29,7 @@
   mai2::ExtensionType|staticSetter = 124;
   mai::expect(124, mai2::ExtensionType|staticField);
   mai::expect(124, mai2::ExtensionType|staticGetter);
-  mai::expect(42, #C2(42){(dynamic) → mai2::ExtensionType /* = core::int */});
+  mai::expect(42, #C2(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(43, mai2::ExtensionType|named(42));
   mai::expect(43, #C3(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(44, mai2::ExtensionType|redirectingGenerative(42));
@@ -70,11 +70,11 @@
   static tearoff redirectingFactory = mai2::ExtensionType|_#redirectingFactory#tearOff;
 }
 static field core::int ExtensionType|staticField = 123;
-static inline-class-member method ExtensionType|(dynamic it) → mai2::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → mai2::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → mai2::ExtensionType /* = core::int */
   return mai2::ExtensionType|(it);
 static inline-class-member method ExtensionType|named(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.strong.transformed.expect
index 05d1aa9..eaa6a97 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.strong.transformed.expect
@@ -29,7 +29,7 @@
   mai2::ExtensionType|staticSetter = 124;
   mai::expect(124, mai2::ExtensionType|staticField);
   mai::expect(124, mai2::ExtensionType|staticGetter);
-  mai::expect(42, #C2(42){(dynamic) → mai2::ExtensionType /* = core::int */});
+  mai::expect(42, #C2(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(43, mai2::ExtensionType|named(42));
   mai::expect(43, #C3(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(44, mai2::ExtensionType|redirectingGenerative(42));
@@ -70,11 +70,11 @@
   static tearoff redirectingFactory = mai2::ExtensionType|_#redirectingFactory#tearOff;
 }
 static field core::int ExtensionType|staticField = 123;
-static inline-class-member method ExtensionType|(dynamic it) → mai2::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → mai2::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → mai2::ExtensionType /* = core::int */
   return mai2::ExtensionType|(it);
 static inline-class-member method ExtensionType|named(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.expect
index 05d1aa9..eaa6a97 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.expect
@@ -29,7 +29,7 @@
   mai2::ExtensionType|staticSetter = 124;
   mai::expect(124, mai2::ExtensionType|staticField);
   mai::expect(124, mai2::ExtensionType|staticGetter);
-  mai::expect(42, #C2(42){(dynamic) → mai2::ExtensionType /* = core::int */});
+  mai::expect(42, #C2(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(43, mai2::ExtensionType|named(42));
   mai::expect(43, #C3(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(44, mai2::ExtensionType|redirectingGenerative(42));
@@ -70,11 +70,11 @@
   static tearoff redirectingFactory = mai2::ExtensionType|_#redirectingFactory#tearOff;
 }
 static field core::int ExtensionType|staticField = 123;
-static inline-class-member method ExtensionType|(dynamic it) → mai2::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → mai2::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → mai2::ExtensionType /* = core::int */
   return mai2::ExtensionType|(it);
 static inline-class-member method ExtensionType|named(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.modular.expect
index 05d1aa9..eaa6a97 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.modular.expect
@@ -29,7 +29,7 @@
   mai2::ExtensionType|staticSetter = 124;
   mai::expect(124, mai2::ExtensionType|staticField);
   mai::expect(124, mai2::ExtensionType|staticGetter);
-  mai::expect(42, #C2(42){(dynamic) → mai2::ExtensionType /* = core::int */});
+  mai::expect(42, #C2(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(43, mai2::ExtensionType|named(42));
   mai::expect(43, #C3(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(44, mai2::ExtensionType|redirectingGenerative(42));
@@ -70,11 +70,11 @@
   static tearoff redirectingFactory = mai2::ExtensionType|_#redirectingFactory#tearOff;
 }
 static field core::int ExtensionType|staticField = 123;
-static inline-class-member method ExtensionType|(dynamic it) → mai2::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → mai2::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → mai2::ExtensionType /* = core::int */
   return mai2::ExtensionType|(it);
 static inline-class-member method ExtensionType|named(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.outline.expect
index c4384a4..f85bcdb 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.outline.expect
@@ -43,9 +43,9 @@
   static tearoff redirectingFactory = self2::ExtensionType|_#redirectingFactory#tearOff;
 }
 static field core::int ExtensionType|staticField;
-static inline-class-member method ExtensionType|(dynamic it) → self2::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|(core::int it) → self2::ExtensionType /* = core::int */
   ;
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → self2::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → self2::ExtensionType /* = core::int */
   return self2::ExtensionType|(it);
 static inline-class-member method ExtensionType|named(core::int it) → self2::ExtensionType /* = core::int */
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.transformed.expect
index 05d1aa9..eaa6a97 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/from_dill/main.no_link.dart.weak.transformed.expect
@@ -29,7 +29,7 @@
   mai2::ExtensionType|staticSetter = 124;
   mai::expect(124, mai2::ExtensionType|staticField);
   mai::expect(124, mai2::ExtensionType|staticGetter);
-  mai::expect(42, #C2(42){(dynamic) → mai2::ExtensionType /* = core::int */});
+  mai::expect(42, #C2(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(43, mai2::ExtensionType|named(42));
   mai::expect(43, #C3(42){(core::int) → mai2::ExtensionType /* = core::int */});
   mai::expect(44, mai2::ExtensionType|redirectingGenerative(42));
@@ -70,11 +70,11 @@
   static tearoff redirectingFactory = mai2::ExtensionType|_#redirectingFactory#tearOff;
 }
 static field core::int ExtensionType|staticField = 123;
-static inline-class-member method ExtensionType|(dynamic it) → mai2::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → mai2::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → mai2::ExtensionType /* = core::int */
   return mai2::ExtensionType|(it);
 static inline-class-member method ExtensionType|named(core::int it) → mai2::ExtensionType /* = core::int */ {
   lowered final mai2::ExtensionType /* = core::int */ #this = it.{core::num::+}(1){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.strong.expect
index 8205e71..ac457c4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.strong.expect
@@ -16,9 +16,9 @@
   constructor • = has::C|;
   tearoff • = has::_#new#tearOff;
 }
-static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ C|(dynamic i) → has::C /* = core::int */ {
+static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ C|(core::int i) → has::C /* = core::int */ {
   lowered final has::C /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ _#new#tearOff(dynamic i) → has::C /* = core::int */
+static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ _#new#tearOff(core::int i) → has::C /* = core::int */
   return has::C|(i);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.strong.transformed.expect
index 8205e71..ac457c4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.strong.transformed.expect
@@ -16,9 +16,9 @@
   constructor • = has::C|;
   tearoff • = has::_#new#tearOff;
 }
-static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ C|(dynamic i) → has::C /* = core::int */ {
+static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ C|(core::int i) → has::C /* = core::int */ {
   lowered final has::C /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ _#new#tearOff(dynamic i) → has::C /* = core::int */
+static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ _#new#tearOff(core::int i) → has::C /* = core::int */
   return has::C|(i);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.expect
index 8205e71..ac457c4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.expect
@@ -16,9 +16,9 @@
   constructor • = has::C|;
   tearoff • = has::_#new#tearOff;
 }
-static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ C|(dynamic i) → has::C /* = core::int */ {
+static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ C|(core::int i) → has::C /* = core::int */ {
   lowered final has::C /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ _#new#tearOff(dynamic i) → has::C /* = core::int */
+static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ _#new#tearOff(core::int i) → has::C /* = core::int */
   return has::C|(i);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.modular.expect
index 8205e71..ac457c4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.modular.expect
@@ -16,9 +16,9 @@
   constructor • = has::C|;
   tearoff • = has::_#new#tearOff;
 }
-static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ C|(dynamic i) → has::C /* = core::int */ {
+static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ C|(core::int i) → has::C /* = core::int */ {
   lowered final has::C /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ _#new#tearOff(dynamic i) → has::C /* = core::int */
+static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ _#new#tearOff(core::int i) → has::C /* = core::int */
   return has::C|(i);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.outline.expect
index 181c1bb..2814bf2 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.outline.expect
@@ -17,7 +17,7 @@
   constructor • = has::C|;
   tearoff • = has::_#new#tearOff;
 }
-static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ C|(dynamic i) → has::C /* = core::int */
+static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ C|(core::int i) → has::C /* = core::int */
   ;
-static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ _#new#tearOff(dynamic i) → has::C /* = core::int */
+static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ _#new#tearOff(core::int i) → has::C /* = core::int */
   return has::C|(i);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.transformed.expect
index 8205e71..ac457c4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/has_export.dart.weak.transformed.expect
@@ -16,9 +16,9 @@
   constructor • = has::C|;
   tearoff • = has::_#new#tearOff;
 }
-static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ C|(dynamic i) → has::C /* = core::int */ {
+static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ C|(core::int i) → has::C /* = core::int */ {
   lowered final has::C /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ _#new#tearOff(dynamic i) → has::C /* = core::int */
+static inline-class-member method /* from org-dartlang-testcase:///has_part_of_lib.dart */ _#new#tearOff(core::int i) → has::C /* = core::int */
   return has::C|(i);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.strong.expect
index 2df0ca3..d1231b5 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.strong.expect
@@ -194,23 +194,23 @@
   constructor • = self::ET_GenericExtensionType|;
   tearoff • = self::ET_GenericExtensionType|_#new#tearOff;
 }
-static inline-class-member method ExtensionType|(dynamic it) → self::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → self::ExtensionType /* = core::int */ {
   lowered final self::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → self::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → self::ExtensionType /* = core::int */
   return self::ExtensionType|(it);
-static inline-class-member method GenericExtensionType|<T extends core::Object? = dynamic>(dynamic it) → self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ {
+static inline-class-member method GenericExtensionType|<T extends core::Object? = dynamic>(self::GenericExtensionType|::T% it) → self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ {
   lowered final self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericExtensionType<self::GenericExtensionType|_#new#tearOff::T%> /* = self::GenericExtensionType|_#new#tearOff::T% */
+static inline-class-member method GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericExtensionType|_#new#tearOff::T% it) → self::GenericExtensionType<self::GenericExtensionType|_#new#tearOff::T%> /* = self::GenericExtensionType|_#new#tearOff::T% */
   return self::GenericExtensionType|<self::GenericExtensionType|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Null|(dynamic it) → self::ET_Null /* = Null */ {
+static inline-class-member method ET_Null|(Null it) → self::ET_Null /* = Null */ {
   lowered final self::ET_Null /* = Null */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Null|_#new#tearOff(dynamic it) → self::ET_Null /* = Null */
+static inline-class-member method ET_Null|_#new#tearOff(Null it) → self::ET_Null /* = Null */
   return self::ET_Null|(it);
 static inline-class-member method ET_Dynamic|(dynamic it) → self::ET_Dynamic /* = dynamic */ {
   lowered final self::ET_Dynamic /* = dynamic */ #this = it;
@@ -218,111 +218,111 @@
 }
 static inline-class-member method ET_Dynamic|_#new#tearOff(dynamic it) → self::ET_Dynamic /* = dynamic */
   return self::ET_Dynamic|(it);
-static inline-class-member method ET_Void|(dynamic it) → self::ET_Void /* = Never */ {
+static inline-class-member method ET_Void|(Never it) → self::ET_Void /* = Never */ {
   lowered final self::ET_Void /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Void|_#new#tearOff(dynamic it) → self::ET_Void /* = Never */
+static inline-class-member method ET_Void|_#new#tearOff(Never it) → self::ET_Void /* = Never */
   return self::ET_Void|(it);
-static inline-class-member method ET_Never|(dynamic it) → self::ET_Never /* = Never */ {
+static inline-class-member method ET_Never|(Never it) → self::ET_Never /* = Never */ {
   lowered final self::ET_Never /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Never|_#new#tearOff(dynamic it) → self::ET_Never /* = Never */
+static inline-class-member method ET_Never|_#new#tearOff(Never it) → self::ET_Never /* = Never */
   return self::ET_Never|(it);
-static inline-class-member method ET_Object|(dynamic it) → self::ET_Object /* = core::Object */ {
+static inline-class-member method ET_Object|(core::Object it) → self::ET_Object /* = core::Object */ {
   lowered final self::ET_Object /* = core::Object */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Object|_#new#tearOff(dynamic it) → self::ET_Object /* = core::Object */
+static inline-class-member method ET_Object|_#new#tearOff(core::Object it) → self::ET_Object /* = core::Object */
   return self::ET_Object|(it);
-static inline-class-member method ET_Record|(dynamic it) → self::ET_Record /* = core::Record */ {
+static inline-class-member method ET_Record|(core::Record it) → self::ET_Record /* = core::Record */ {
   lowered final self::ET_Record /* = core::Record */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Record|_#new#tearOff(dynamic it) → self::ET_Record /* = core::Record */
+static inline-class-member method ET_Record|_#new#tearOff(core::Record it) → self::ET_Record /* = core::Record */
   return self::ET_Record|(it);
-static inline-class-member method ET_RecordType|(dynamic it) → self::ET_RecordType /* =(core::int, core::String) */ {
+static inline-class-member method ET_RecordType|((core::int, core::String) it) → self::ET_RecordType /* =(core::int, core::String) */ {
   lowered final self::ET_RecordType /* =(core::int, core::String) */ #this = it;
   return #this;
 }
-static inline-class-member method ET_RecordType|_#new#tearOff(dynamic it) → self::ET_RecordType /* =(core::int, core::String) */
+static inline-class-member method ET_RecordType|_#new#tearOff((core::int, core::String) it) → self::ET_RecordType /* =(core::int, core::String) */
   return self::ET_RecordType|(it);
-static inline-class-member method ET_Function|(dynamic it) → self::ET_Function /* = core::Function */ {
+static inline-class-member method ET_Function|(core::Function it) → self::ET_Function /* = core::Function */ {
   lowered final self::ET_Function /* = core::Function */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Function|_#new#tearOff(dynamic it) → self::ET_Function /* = core::Function */
+static inline-class-member method ET_Function|_#new#tearOff(core::Function it) → self::ET_Function /* = core::Function */
   return self::ET_Function|(it);
-static inline-class-member method ET_FunctionType|(dynamic it) → self::ET_FunctionType /* = () → void */ {
+static inline-class-member method ET_FunctionType|(() → void it) → self::ET_FunctionType /* = () → void */ {
   lowered final self::ET_FunctionType /* = () → void */ #this = it;
   return #this;
 }
-static inline-class-member method ET_FunctionType|_#new#tearOff(dynamic it) → self::ET_FunctionType /* = () → void */
+static inline-class-member method ET_FunctionType|_#new#tearOff(() → void it) → self::ET_FunctionType /* = () → void */
   return self::ET_FunctionType|(it);
-static inline-class-member method ET_NullableInterfaceType|(dynamic it) → self::ET_NullableInterfaceType /* = core::String? */ {
+static inline-class-member method ET_NullableInterfaceType|(core::String? it) → self::ET_NullableInterfaceType /* = core::String? */ {
   lowered final self::ET_NullableInterfaceType /* = core::String? */ #this = it;
   return #this;
 }
-static inline-class-member method ET_NullableInterfaceType|_#new#tearOff(dynamic it) → self::ET_NullableInterfaceType /* = core::String? */
+static inline-class-member method ET_NullableInterfaceType|_#new#tearOff(core::String? it) → self::ET_NullableInterfaceType /* = core::String? */
   return self::ET_NullableInterfaceType|(it);
-static inline-class-member method ET_NullableExtensionType|(dynamic it) → self::ET_NullableExtensionType /* = core::int? */ {
+static inline-class-member method ET_NullableExtensionType|(self::ExtensionType? /* = core::int? */ it) → self::ET_NullableExtensionType /* = core::int? */ {
   lowered final self::ET_NullableExtensionType /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method ET_NullableExtensionType|_#new#tearOff(dynamic it) → self::ET_NullableExtensionType /* = core::int? */
+static inline-class-member method ET_NullableExtensionType|_#new#tearOff(self::ExtensionType? /* = core::int? */ it) → self::ET_NullableExtensionType /* = core::int? */
   return self::ET_NullableExtensionType|(it);
-static inline-class-member method ET_FutureOr|(dynamic it) → self::ET_FutureOr /* = FutureOr<core::int>*/ {
+static inline-class-member method ET_FutureOr|(FutureOr<core::int>it) → self::ET_FutureOr /* = FutureOr<core::int>*/ {
   lowered final self::ET_FutureOr /* = FutureOr<core::int>*/ #this = it;
   return #this;
 }
-static inline-class-member method ET_FutureOr|_#new#tearOff(dynamic it) → self::ET_FutureOr /* = FutureOr<core::int>*/
+static inline-class-member method ET_FutureOr|_#new#tearOff(FutureOr<core::int>it) → self::ET_FutureOr /* = FutureOr<core::int>*/
   return self::ET_FutureOr|(it);
-static inline-class-member method ET_Extension|_#new#tearOff(dynamic it) → self::ET_Extension /* = Never */
+static inline-class-member method ET_Extension|_#new#tearOff(Never it) → self::ET_Extension /* = Never */
   return self::ET_Extension|(it);
-static inline-class-member method ET_Extension|(dynamic it) → self::ET_Extension /* = Never */ {
+static inline-class-member method ET_Extension|(Never it) → self::ET_Extension /* = Never */ {
   lowered final self::ET_Extension /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_TypeVariable|<T extends core::Object? = dynamic>(dynamic it) → self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ {
+static inline-class-member method ET_TypeVariable|<T extends core::Object? = dynamic>(self::ET_TypeVariable|::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ {
   lowered final self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method ET_TypeVariable|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_TypeVariable<self::ET_TypeVariable|_#new#tearOff::T%> /* = self::ET_TypeVariable|_#new#tearOff::T% */
+static inline-class-member method ET_TypeVariable|_#new#tearOff<T extends core::Object? = dynamic>(self::ET_TypeVariable|_#new#tearOff::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|_#new#tearOff::T%> /* = self::ET_TypeVariable|_#new#tearOff::T% */
   return self::ET_TypeVariable|<self::ET_TypeVariable|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Class|(dynamic it) → self::ET_Class /* = self::Class */ {
+static inline-class-member method ET_Class|(self::Class it) → self::ET_Class /* = self::Class */ {
   lowered final self::ET_Class /* = self::Class */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Class|_#new#tearOff(dynamic it) → self::ET_Class /* = self::Class */
+static inline-class-member method ET_Class|_#new#tearOff(self::Class it) → self::ET_Class /* = self::Class */
   return self::ET_Class|(it);
-static inline-class-member method ET_GenericClass|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ {
+static inline-class-member method ET_GenericClass|<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|::T%> it) → self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ {
   lowered final self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericClass<self::ET_GenericClass|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> */
+static inline-class-member method ET_GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> it) → self::ET_GenericClass<self::ET_GenericClass|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> */
   return self::ET_GenericClass|<self::ET_GenericClass|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Alias|(dynamic it) → self::ET_Alias /* = self::Class */ {
+static inline-class-member method ET_Alias|(self::Class it) → self::ET_Alias /* = self::Class */ {
   lowered final self::ET_Alias /* = self::Class */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Alias|_#new#tearOff(dynamic it) → self::ET_Alias /* = self::Class */
+static inline-class-member method ET_Alias|_#new#tearOff(self::Class it) → self::ET_Alias /* = self::Class */
   return self::ET_Alias|(it);
-static inline-class-member method ET_GenericAlias|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ {
+static inline-class-member method ET_GenericAlias|<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ {
   lowered final self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericAlias<self::ET_GenericAlias|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> */
+static inline-class-member method ET_GenericAlias|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> */
   return self::ET_GenericAlias|<self::ET_GenericAlias|_#new#tearOff::T%>(it);
-static inline-class-member method ET_ExtensionType|(dynamic it) → self::ET_ExtensionType /* = core::int */ {
+static inline-class-member method ET_ExtensionType|(self::ExtensionType /* = core::int */ it) → self::ET_ExtensionType /* = core::int */ {
   lowered final self::ET_ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ET_ExtensionType|_#new#tearOff(dynamic it) → self::ET_ExtensionType /* = core::int */
+static inline-class-member method ET_ExtensionType|_#new#tearOff(self::ExtensionType /* = core::int */ it) → self::ET_ExtensionType /* = core::int */
   return self::ET_ExtensionType|(it);
-static inline-class-member method ET_GenericExtensionType|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ {
+static inline-class-member method ET_GenericExtensionType|<T extends core::Object? = dynamic>(self::GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ {
   lowered final self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */
+static inline-class-member method ET_GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */ it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */
   return self::ET_GenericExtensionType|<self::ET_GenericExtensionType|_#new#tearOff::T%>(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.strong.transformed.expect
index 2df0ca3..d1231b5 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.strong.transformed.expect
@@ -194,23 +194,23 @@
   constructor • = self::ET_GenericExtensionType|;
   tearoff • = self::ET_GenericExtensionType|_#new#tearOff;
 }
-static inline-class-member method ExtensionType|(dynamic it) → self::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → self::ExtensionType /* = core::int */ {
   lowered final self::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → self::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → self::ExtensionType /* = core::int */
   return self::ExtensionType|(it);
-static inline-class-member method GenericExtensionType|<T extends core::Object? = dynamic>(dynamic it) → self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ {
+static inline-class-member method GenericExtensionType|<T extends core::Object? = dynamic>(self::GenericExtensionType|::T% it) → self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ {
   lowered final self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericExtensionType<self::GenericExtensionType|_#new#tearOff::T%> /* = self::GenericExtensionType|_#new#tearOff::T% */
+static inline-class-member method GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericExtensionType|_#new#tearOff::T% it) → self::GenericExtensionType<self::GenericExtensionType|_#new#tearOff::T%> /* = self::GenericExtensionType|_#new#tearOff::T% */
   return self::GenericExtensionType|<self::GenericExtensionType|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Null|(dynamic it) → self::ET_Null /* = Null */ {
+static inline-class-member method ET_Null|(Null it) → self::ET_Null /* = Null */ {
   lowered final self::ET_Null /* = Null */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Null|_#new#tearOff(dynamic it) → self::ET_Null /* = Null */
+static inline-class-member method ET_Null|_#new#tearOff(Null it) → self::ET_Null /* = Null */
   return self::ET_Null|(it);
 static inline-class-member method ET_Dynamic|(dynamic it) → self::ET_Dynamic /* = dynamic */ {
   lowered final self::ET_Dynamic /* = dynamic */ #this = it;
@@ -218,111 +218,111 @@
 }
 static inline-class-member method ET_Dynamic|_#new#tearOff(dynamic it) → self::ET_Dynamic /* = dynamic */
   return self::ET_Dynamic|(it);
-static inline-class-member method ET_Void|(dynamic it) → self::ET_Void /* = Never */ {
+static inline-class-member method ET_Void|(Never it) → self::ET_Void /* = Never */ {
   lowered final self::ET_Void /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Void|_#new#tearOff(dynamic it) → self::ET_Void /* = Never */
+static inline-class-member method ET_Void|_#new#tearOff(Never it) → self::ET_Void /* = Never */
   return self::ET_Void|(it);
-static inline-class-member method ET_Never|(dynamic it) → self::ET_Never /* = Never */ {
+static inline-class-member method ET_Never|(Never it) → self::ET_Never /* = Never */ {
   lowered final self::ET_Never /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Never|_#new#tearOff(dynamic it) → self::ET_Never /* = Never */
+static inline-class-member method ET_Never|_#new#tearOff(Never it) → self::ET_Never /* = Never */
   return self::ET_Never|(it);
-static inline-class-member method ET_Object|(dynamic it) → self::ET_Object /* = core::Object */ {
+static inline-class-member method ET_Object|(core::Object it) → self::ET_Object /* = core::Object */ {
   lowered final self::ET_Object /* = core::Object */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Object|_#new#tearOff(dynamic it) → self::ET_Object /* = core::Object */
+static inline-class-member method ET_Object|_#new#tearOff(core::Object it) → self::ET_Object /* = core::Object */
   return self::ET_Object|(it);
-static inline-class-member method ET_Record|(dynamic it) → self::ET_Record /* = core::Record */ {
+static inline-class-member method ET_Record|(core::Record it) → self::ET_Record /* = core::Record */ {
   lowered final self::ET_Record /* = core::Record */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Record|_#new#tearOff(dynamic it) → self::ET_Record /* = core::Record */
+static inline-class-member method ET_Record|_#new#tearOff(core::Record it) → self::ET_Record /* = core::Record */
   return self::ET_Record|(it);
-static inline-class-member method ET_RecordType|(dynamic it) → self::ET_RecordType /* =(core::int, core::String) */ {
+static inline-class-member method ET_RecordType|((core::int, core::String) it) → self::ET_RecordType /* =(core::int, core::String) */ {
   lowered final self::ET_RecordType /* =(core::int, core::String) */ #this = it;
   return #this;
 }
-static inline-class-member method ET_RecordType|_#new#tearOff(dynamic it) → self::ET_RecordType /* =(core::int, core::String) */
+static inline-class-member method ET_RecordType|_#new#tearOff((core::int, core::String) it) → self::ET_RecordType /* =(core::int, core::String) */
   return self::ET_RecordType|(it);
-static inline-class-member method ET_Function|(dynamic it) → self::ET_Function /* = core::Function */ {
+static inline-class-member method ET_Function|(core::Function it) → self::ET_Function /* = core::Function */ {
   lowered final self::ET_Function /* = core::Function */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Function|_#new#tearOff(dynamic it) → self::ET_Function /* = core::Function */
+static inline-class-member method ET_Function|_#new#tearOff(core::Function it) → self::ET_Function /* = core::Function */
   return self::ET_Function|(it);
-static inline-class-member method ET_FunctionType|(dynamic it) → self::ET_FunctionType /* = () → void */ {
+static inline-class-member method ET_FunctionType|(() → void it) → self::ET_FunctionType /* = () → void */ {
   lowered final self::ET_FunctionType /* = () → void */ #this = it;
   return #this;
 }
-static inline-class-member method ET_FunctionType|_#new#tearOff(dynamic it) → self::ET_FunctionType /* = () → void */
+static inline-class-member method ET_FunctionType|_#new#tearOff(() → void it) → self::ET_FunctionType /* = () → void */
   return self::ET_FunctionType|(it);
-static inline-class-member method ET_NullableInterfaceType|(dynamic it) → self::ET_NullableInterfaceType /* = core::String? */ {
+static inline-class-member method ET_NullableInterfaceType|(core::String? it) → self::ET_NullableInterfaceType /* = core::String? */ {
   lowered final self::ET_NullableInterfaceType /* = core::String? */ #this = it;
   return #this;
 }
-static inline-class-member method ET_NullableInterfaceType|_#new#tearOff(dynamic it) → self::ET_NullableInterfaceType /* = core::String? */
+static inline-class-member method ET_NullableInterfaceType|_#new#tearOff(core::String? it) → self::ET_NullableInterfaceType /* = core::String? */
   return self::ET_NullableInterfaceType|(it);
-static inline-class-member method ET_NullableExtensionType|(dynamic it) → self::ET_NullableExtensionType /* = core::int? */ {
+static inline-class-member method ET_NullableExtensionType|(self::ExtensionType? /* = core::int? */ it) → self::ET_NullableExtensionType /* = core::int? */ {
   lowered final self::ET_NullableExtensionType /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method ET_NullableExtensionType|_#new#tearOff(dynamic it) → self::ET_NullableExtensionType /* = core::int? */
+static inline-class-member method ET_NullableExtensionType|_#new#tearOff(self::ExtensionType? /* = core::int? */ it) → self::ET_NullableExtensionType /* = core::int? */
   return self::ET_NullableExtensionType|(it);
-static inline-class-member method ET_FutureOr|(dynamic it) → self::ET_FutureOr /* = FutureOr<core::int>*/ {
+static inline-class-member method ET_FutureOr|(FutureOr<core::int>it) → self::ET_FutureOr /* = FutureOr<core::int>*/ {
   lowered final self::ET_FutureOr /* = FutureOr<core::int>*/ #this = it;
   return #this;
 }
-static inline-class-member method ET_FutureOr|_#new#tearOff(dynamic it) → self::ET_FutureOr /* = FutureOr<core::int>*/
+static inline-class-member method ET_FutureOr|_#new#tearOff(FutureOr<core::int>it) → self::ET_FutureOr /* = FutureOr<core::int>*/
   return self::ET_FutureOr|(it);
-static inline-class-member method ET_Extension|_#new#tearOff(dynamic it) → self::ET_Extension /* = Never */
+static inline-class-member method ET_Extension|_#new#tearOff(Never it) → self::ET_Extension /* = Never */
   return self::ET_Extension|(it);
-static inline-class-member method ET_Extension|(dynamic it) → self::ET_Extension /* = Never */ {
+static inline-class-member method ET_Extension|(Never it) → self::ET_Extension /* = Never */ {
   lowered final self::ET_Extension /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_TypeVariable|<T extends core::Object? = dynamic>(dynamic it) → self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ {
+static inline-class-member method ET_TypeVariable|<T extends core::Object? = dynamic>(self::ET_TypeVariable|::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ {
   lowered final self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method ET_TypeVariable|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_TypeVariable<self::ET_TypeVariable|_#new#tearOff::T%> /* = self::ET_TypeVariable|_#new#tearOff::T% */
+static inline-class-member method ET_TypeVariable|_#new#tearOff<T extends core::Object? = dynamic>(self::ET_TypeVariable|_#new#tearOff::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|_#new#tearOff::T%> /* = self::ET_TypeVariable|_#new#tearOff::T% */
   return self::ET_TypeVariable|<self::ET_TypeVariable|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Class|(dynamic it) → self::ET_Class /* = self::Class */ {
+static inline-class-member method ET_Class|(self::Class it) → self::ET_Class /* = self::Class */ {
   lowered final self::ET_Class /* = self::Class */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Class|_#new#tearOff(dynamic it) → self::ET_Class /* = self::Class */
+static inline-class-member method ET_Class|_#new#tearOff(self::Class it) → self::ET_Class /* = self::Class */
   return self::ET_Class|(it);
-static inline-class-member method ET_GenericClass|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ {
+static inline-class-member method ET_GenericClass|<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|::T%> it) → self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ {
   lowered final self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericClass<self::ET_GenericClass|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> */
+static inline-class-member method ET_GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> it) → self::ET_GenericClass<self::ET_GenericClass|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> */
   return self::ET_GenericClass|<self::ET_GenericClass|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Alias|(dynamic it) → self::ET_Alias /* = self::Class */ {
+static inline-class-member method ET_Alias|(self::Class it) → self::ET_Alias /* = self::Class */ {
   lowered final self::ET_Alias /* = self::Class */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Alias|_#new#tearOff(dynamic it) → self::ET_Alias /* = self::Class */
+static inline-class-member method ET_Alias|_#new#tearOff(self::Class it) → self::ET_Alias /* = self::Class */
   return self::ET_Alias|(it);
-static inline-class-member method ET_GenericAlias|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ {
+static inline-class-member method ET_GenericAlias|<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ {
   lowered final self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericAlias<self::ET_GenericAlias|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> */
+static inline-class-member method ET_GenericAlias|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> */
   return self::ET_GenericAlias|<self::ET_GenericAlias|_#new#tearOff::T%>(it);
-static inline-class-member method ET_ExtensionType|(dynamic it) → self::ET_ExtensionType /* = core::int */ {
+static inline-class-member method ET_ExtensionType|(self::ExtensionType /* = core::int */ it) → self::ET_ExtensionType /* = core::int */ {
   lowered final self::ET_ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ET_ExtensionType|_#new#tearOff(dynamic it) → self::ET_ExtensionType /* = core::int */
+static inline-class-member method ET_ExtensionType|_#new#tearOff(self::ExtensionType /* = core::int */ it) → self::ET_ExtensionType /* = core::int */
   return self::ET_ExtensionType|(it);
-static inline-class-member method ET_GenericExtensionType|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ {
+static inline-class-member method ET_GenericExtensionType|<T extends core::Object? = dynamic>(self::GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ {
   lowered final self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */
+static inline-class-member method ET_GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */ it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */
   return self::ET_GenericExtensionType|<self::ET_GenericExtensionType|_#new#tearOff::T%>(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.expect
index 2df0ca3..d1231b5 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.expect
@@ -194,23 +194,23 @@
   constructor • = self::ET_GenericExtensionType|;
   tearoff • = self::ET_GenericExtensionType|_#new#tearOff;
 }
-static inline-class-member method ExtensionType|(dynamic it) → self::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → self::ExtensionType /* = core::int */ {
   lowered final self::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → self::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → self::ExtensionType /* = core::int */
   return self::ExtensionType|(it);
-static inline-class-member method GenericExtensionType|<T extends core::Object? = dynamic>(dynamic it) → self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ {
+static inline-class-member method GenericExtensionType|<T extends core::Object? = dynamic>(self::GenericExtensionType|::T% it) → self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ {
   lowered final self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericExtensionType<self::GenericExtensionType|_#new#tearOff::T%> /* = self::GenericExtensionType|_#new#tearOff::T% */
+static inline-class-member method GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericExtensionType|_#new#tearOff::T% it) → self::GenericExtensionType<self::GenericExtensionType|_#new#tearOff::T%> /* = self::GenericExtensionType|_#new#tearOff::T% */
   return self::GenericExtensionType|<self::GenericExtensionType|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Null|(dynamic it) → self::ET_Null /* = Null */ {
+static inline-class-member method ET_Null|(Null it) → self::ET_Null /* = Null */ {
   lowered final self::ET_Null /* = Null */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Null|_#new#tearOff(dynamic it) → self::ET_Null /* = Null */
+static inline-class-member method ET_Null|_#new#tearOff(Null it) → self::ET_Null /* = Null */
   return self::ET_Null|(it);
 static inline-class-member method ET_Dynamic|(dynamic it) → self::ET_Dynamic /* = dynamic */ {
   lowered final self::ET_Dynamic /* = dynamic */ #this = it;
@@ -218,111 +218,111 @@
 }
 static inline-class-member method ET_Dynamic|_#new#tearOff(dynamic it) → self::ET_Dynamic /* = dynamic */
   return self::ET_Dynamic|(it);
-static inline-class-member method ET_Void|(dynamic it) → self::ET_Void /* = Never */ {
+static inline-class-member method ET_Void|(Never it) → self::ET_Void /* = Never */ {
   lowered final self::ET_Void /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Void|_#new#tearOff(dynamic it) → self::ET_Void /* = Never */
+static inline-class-member method ET_Void|_#new#tearOff(Never it) → self::ET_Void /* = Never */
   return self::ET_Void|(it);
-static inline-class-member method ET_Never|(dynamic it) → self::ET_Never /* = Never */ {
+static inline-class-member method ET_Never|(Never it) → self::ET_Never /* = Never */ {
   lowered final self::ET_Never /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Never|_#new#tearOff(dynamic it) → self::ET_Never /* = Never */
+static inline-class-member method ET_Never|_#new#tearOff(Never it) → self::ET_Never /* = Never */
   return self::ET_Never|(it);
-static inline-class-member method ET_Object|(dynamic it) → self::ET_Object /* = core::Object */ {
+static inline-class-member method ET_Object|(core::Object it) → self::ET_Object /* = core::Object */ {
   lowered final self::ET_Object /* = core::Object */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Object|_#new#tearOff(dynamic it) → self::ET_Object /* = core::Object */
+static inline-class-member method ET_Object|_#new#tearOff(core::Object it) → self::ET_Object /* = core::Object */
   return self::ET_Object|(it);
-static inline-class-member method ET_Record|(dynamic it) → self::ET_Record /* = core::Record */ {
+static inline-class-member method ET_Record|(core::Record it) → self::ET_Record /* = core::Record */ {
   lowered final self::ET_Record /* = core::Record */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Record|_#new#tearOff(dynamic it) → self::ET_Record /* = core::Record */
+static inline-class-member method ET_Record|_#new#tearOff(core::Record it) → self::ET_Record /* = core::Record */
   return self::ET_Record|(it);
-static inline-class-member method ET_RecordType|(dynamic it) → self::ET_RecordType /* =(core::int, core::String) */ {
+static inline-class-member method ET_RecordType|((core::int, core::String) it) → self::ET_RecordType /* =(core::int, core::String) */ {
   lowered final self::ET_RecordType /* =(core::int, core::String) */ #this = it;
   return #this;
 }
-static inline-class-member method ET_RecordType|_#new#tearOff(dynamic it) → self::ET_RecordType /* =(core::int, core::String) */
+static inline-class-member method ET_RecordType|_#new#tearOff((core::int, core::String) it) → self::ET_RecordType /* =(core::int, core::String) */
   return self::ET_RecordType|(it);
-static inline-class-member method ET_Function|(dynamic it) → self::ET_Function /* = core::Function */ {
+static inline-class-member method ET_Function|(core::Function it) → self::ET_Function /* = core::Function */ {
   lowered final self::ET_Function /* = core::Function */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Function|_#new#tearOff(dynamic it) → self::ET_Function /* = core::Function */
+static inline-class-member method ET_Function|_#new#tearOff(core::Function it) → self::ET_Function /* = core::Function */
   return self::ET_Function|(it);
-static inline-class-member method ET_FunctionType|(dynamic it) → self::ET_FunctionType /* = () → void */ {
+static inline-class-member method ET_FunctionType|(() → void it) → self::ET_FunctionType /* = () → void */ {
   lowered final self::ET_FunctionType /* = () → void */ #this = it;
   return #this;
 }
-static inline-class-member method ET_FunctionType|_#new#tearOff(dynamic it) → self::ET_FunctionType /* = () → void */
+static inline-class-member method ET_FunctionType|_#new#tearOff(() → void it) → self::ET_FunctionType /* = () → void */
   return self::ET_FunctionType|(it);
-static inline-class-member method ET_NullableInterfaceType|(dynamic it) → self::ET_NullableInterfaceType /* = core::String? */ {
+static inline-class-member method ET_NullableInterfaceType|(core::String? it) → self::ET_NullableInterfaceType /* = core::String? */ {
   lowered final self::ET_NullableInterfaceType /* = core::String? */ #this = it;
   return #this;
 }
-static inline-class-member method ET_NullableInterfaceType|_#new#tearOff(dynamic it) → self::ET_NullableInterfaceType /* = core::String? */
+static inline-class-member method ET_NullableInterfaceType|_#new#tearOff(core::String? it) → self::ET_NullableInterfaceType /* = core::String? */
   return self::ET_NullableInterfaceType|(it);
-static inline-class-member method ET_NullableExtensionType|(dynamic it) → self::ET_NullableExtensionType /* = core::int? */ {
+static inline-class-member method ET_NullableExtensionType|(self::ExtensionType? /* = core::int? */ it) → self::ET_NullableExtensionType /* = core::int? */ {
   lowered final self::ET_NullableExtensionType /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method ET_NullableExtensionType|_#new#tearOff(dynamic it) → self::ET_NullableExtensionType /* = core::int? */
+static inline-class-member method ET_NullableExtensionType|_#new#tearOff(self::ExtensionType? /* = core::int? */ it) → self::ET_NullableExtensionType /* = core::int? */
   return self::ET_NullableExtensionType|(it);
-static inline-class-member method ET_FutureOr|(dynamic it) → self::ET_FutureOr /* = FutureOr<core::int>*/ {
+static inline-class-member method ET_FutureOr|(FutureOr<core::int>it) → self::ET_FutureOr /* = FutureOr<core::int>*/ {
   lowered final self::ET_FutureOr /* = FutureOr<core::int>*/ #this = it;
   return #this;
 }
-static inline-class-member method ET_FutureOr|_#new#tearOff(dynamic it) → self::ET_FutureOr /* = FutureOr<core::int>*/
+static inline-class-member method ET_FutureOr|_#new#tearOff(FutureOr<core::int>it) → self::ET_FutureOr /* = FutureOr<core::int>*/
   return self::ET_FutureOr|(it);
-static inline-class-member method ET_Extension|_#new#tearOff(dynamic it) → self::ET_Extension /* = Never */
+static inline-class-member method ET_Extension|_#new#tearOff(Never it) → self::ET_Extension /* = Never */
   return self::ET_Extension|(it);
-static inline-class-member method ET_Extension|(dynamic it) → self::ET_Extension /* = Never */ {
+static inline-class-member method ET_Extension|(Never it) → self::ET_Extension /* = Never */ {
   lowered final self::ET_Extension /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_TypeVariable|<T extends core::Object? = dynamic>(dynamic it) → self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ {
+static inline-class-member method ET_TypeVariable|<T extends core::Object? = dynamic>(self::ET_TypeVariable|::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ {
   lowered final self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method ET_TypeVariable|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_TypeVariable<self::ET_TypeVariable|_#new#tearOff::T%> /* = self::ET_TypeVariable|_#new#tearOff::T% */
+static inline-class-member method ET_TypeVariable|_#new#tearOff<T extends core::Object? = dynamic>(self::ET_TypeVariable|_#new#tearOff::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|_#new#tearOff::T%> /* = self::ET_TypeVariable|_#new#tearOff::T% */
   return self::ET_TypeVariable|<self::ET_TypeVariable|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Class|(dynamic it) → self::ET_Class /* = self::Class */ {
+static inline-class-member method ET_Class|(self::Class it) → self::ET_Class /* = self::Class */ {
   lowered final self::ET_Class /* = self::Class */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Class|_#new#tearOff(dynamic it) → self::ET_Class /* = self::Class */
+static inline-class-member method ET_Class|_#new#tearOff(self::Class it) → self::ET_Class /* = self::Class */
   return self::ET_Class|(it);
-static inline-class-member method ET_GenericClass|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ {
+static inline-class-member method ET_GenericClass|<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|::T%> it) → self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ {
   lowered final self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericClass<self::ET_GenericClass|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> */
+static inline-class-member method ET_GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> it) → self::ET_GenericClass<self::ET_GenericClass|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> */
   return self::ET_GenericClass|<self::ET_GenericClass|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Alias|(dynamic it) → self::ET_Alias /* = self::Class */ {
+static inline-class-member method ET_Alias|(self::Class it) → self::ET_Alias /* = self::Class */ {
   lowered final self::ET_Alias /* = self::Class */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Alias|_#new#tearOff(dynamic it) → self::ET_Alias /* = self::Class */
+static inline-class-member method ET_Alias|_#new#tearOff(self::Class it) → self::ET_Alias /* = self::Class */
   return self::ET_Alias|(it);
-static inline-class-member method ET_GenericAlias|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ {
+static inline-class-member method ET_GenericAlias|<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ {
   lowered final self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericAlias<self::ET_GenericAlias|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> */
+static inline-class-member method ET_GenericAlias|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> */
   return self::ET_GenericAlias|<self::ET_GenericAlias|_#new#tearOff::T%>(it);
-static inline-class-member method ET_ExtensionType|(dynamic it) → self::ET_ExtensionType /* = core::int */ {
+static inline-class-member method ET_ExtensionType|(self::ExtensionType /* = core::int */ it) → self::ET_ExtensionType /* = core::int */ {
   lowered final self::ET_ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ET_ExtensionType|_#new#tearOff(dynamic it) → self::ET_ExtensionType /* = core::int */
+static inline-class-member method ET_ExtensionType|_#new#tearOff(self::ExtensionType /* = core::int */ it) → self::ET_ExtensionType /* = core::int */
   return self::ET_ExtensionType|(it);
-static inline-class-member method ET_GenericExtensionType|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ {
+static inline-class-member method ET_GenericExtensionType|<T extends core::Object? = dynamic>(self::GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ {
   lowered final self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */
+static inline-class-member method ET_GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */ it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */
   return self::ET_GenericExtensionType|<self::ET_GenericExtensionType|_#new#tearOff::T%>(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.modular.expect
index 2df0ca3..d1231b5 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.modular.expect
@@ -194,23 +194,23 @@
   constructor • = self::ET_GenericExtensionType|;
   tearoff • = self::ET_GenericExtensionType|_#new#tearOff;
 }
-static inline-class-member method ExtensionType|(dynamic it) → self::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → self::ExtensionType /* = core::int */ {
   lowered final self::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → self::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → self::ExtensionType /* = core::int */
   return self::ExtensionType|(it);
-static inline-class-member method GenericExtensionType|<T extends core::Object? = dynamic>(dynamic it) → self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ {
+static inline-class-member method GenericExtensionType|<T extends core::Object? = dynamic>(self::GenericExtensionType|::T% it) → self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ {
   lowered final self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericExtensionType<self::GenericExtensionType|_#new#tearOff::T%> /* = self::GenericExtensionType|_#new#tearOff::T% */
+static inline-class-member method GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericExtensionType|_#new#tearOff::T% it) → self::GenericExtensionType<self::GenericExtensionType|_#new#tearOff::T%> /* = self::GenericExtensionType|_#new#tearOff::T% */
   return self::GenericExtensionType|<self::GenericExtensionType|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Null|(dynamic it) → self::ET_Null /* = Null */ {
+static inline-class-member method ET_Null|(Null it) → self::ET_Null /* = Null */ {
   lowered final self::ET_Null /* = Null */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Null|_#new#tearOff(dynamic it) → self::ET_Null /* = Null */
+static inline-class-member method ET_Null|_#new#tearOff(Null it) → self::ET_Null /* = Null */
   return self::ET_Null|(it);
 static inline-class-member method ET_Dynamic|(dynamic it) → self::ET_Dynamic /* = dynamic */ {
   lowered final self::ET_Dynamic /* = dynamic */ #this = it;
@@ -218,111 +218,111 @@
 }
 static inline-class-member method ET_Dynamic|_#new#tearOff(dynamic it) → self::ET_Dynamic /* = dynamic */
   return self::ET_Dynamic|(it);
-static inline-class-member method ET_Void|(dynamic it) → self::ET_Void /* = Never */ {
+static inline-class-member method ET_Void|(Never it) → self::ET_Void /* = Never */ {
   lowered final self::ET_Void /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Void|_#new#tearOff(dynamic it) → self::ET_Void /* = Never */
+static inline-class-member method ET_Void|_#new#tearOff(Never it) → self::ET_Void /* = Never */
   return self::ET_Void|(it);
-static inline-class-member method ET_Never|(dynamic it) → self::ET_Never /* = Never */ {
+static inline-class-member method ET_Never|(Never it) → self::ET_Never /* = Never */ {
   lowered final self::ET_Never /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Never|_#new#tearOff(dynamic it) → self::ET_Never /* = Never */
+static inline-class-member method ET_Never|_#new#tearOff(Never it) → self::ET_Never /* = Never */
   return self::ET_Never|(it);
-static inline-class-member method ET_Object|(dynamic it) → self::ET_Object /* = core::Object */ {
+static inline-class-member method ET_Object|(core::Object it) → self::ET_Object /* = core::Object */ {
   lowered final self::ET_Object /* = core::Object */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Object|_#new#tearOff(dynamic it) → self::ET_Object /* = core::Object */
+static inline-class-member method ET_Object|_#new#tearOff(core::Object it) → self::ET_Object /* = core::Object */
   return self::ET_Object|(it);
-static inline-class-member method ET_Record|(dynamic it) → self::ET_Record /* = core::Record */ {
+static inline-class-member method ET_Record|(core::Record it) → self::ET_Record /* = core::Record */ {
   lowered final self::ET_Record /* = core::Record */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Record|_#new#tearOff(dynamic it) → self::ET_Record /* = core::Record */
+static inline-class-member method ET_Record|_#new#tearOff(core::Record it) → self::ET_Record /* = core::Record */
   return self::ET_Record|(it);
-static inline-class-member method ET_RecordType|(dynamic it) → self::ET_RecordType /* =(core::int, core::String) */ {
+static inline-class-member method ET_RecordType|((core::int, core::String) it) → self::ET_RecordType /* =(core::int, core::String) */ {
   lowered final self::ET_RecordType /* =(core::int, core::String) */ #this = it;
   return #this;
 }
-static inline-class-member method ET_RecordType|_#new#tearOff(dynamic it) → self::ET_RecordType /* =(core::int, core::String) */
+static inline-class-member method ET_RecordType|_#new#tearOff((core::int, core::String) it) → self::ET_RecordType /* =(core::int, core::String) */
   return self::ET_RecordType|(it);
-static inline-class-member method ET_Function|(dynamic it) → self::ET_Function /* = core::Function */ {
+static inline-class-member method ET_Function|(core::Function it) → self::ET_Function /* = core::Function */ {
   lowered final self::ET_Function /* = core::Function */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Function|_#new#tearOff(dynamic it) → self::ET_Function /* = core::Function */
+static inline-class-member method ET_Function|_#new#tearOff(core::Function it) → self::ET_Function /* = core::Function */
   return self::ET_Function|(it);
-static inline-class-member method ET_FunctionType|(dynamic it) → self::ET_FunctionType /* = () → void */ {
+static inline-class-member method ET_FunctionType|(() → void it) → self::ET_FunctionType /* = () → void */ {
   lowered final self::ET_FunctionType /* = () → void */ #this = it;
   return #this;
 }
-static inline-class-member method ET_FunctionType|_#new#tearOff(dynamic it) → self::ET_FunctionType /* = () → void */
+static inline-class-member method ET_FunctionType|_#new#tearOff(() → void it) → self::ET_FunctionType /* = () → void */
   return self::ET_FunctionType|(it);
-static inline-class-member method ET_NullableInterfaceType|(dynamic it) → self::ET_NullableInterfaceType /* = core::String? */ {
+static inline-class-member method ET_NullableInterfaceType|(core::String? it) → self::ET_NullableInterfaceType /* = core::String? */ {
   lowered final self::ET_NullableInterfaceType /* = core::String? */ #this = it;
   return #this;
 }
-static inline-class-member method ET_NullableInterfaceType|_#new#tearOff(dynamic it) → self::ET_NullableInterfaceType /* = core::String? */
+static inline-class-member method ET_NullableInterfaceType|_#new#tearOff(core::String? it) → self::ET_NullableInterfaceType /* = core::String? */
   return self::ET_NullableInterfaceType|(it);
-static inline-class-member method ET_NullableExtensionType|(dynamic it) → self::ET_NullableExtensionType /* = core::int? */ {
+static inline-class-member method ET_NullableExtensionType|(self::ExtensionType? /* = core::int? */ it) → self::ET_NullableExtensionType /* = core::int? */ {
   lowered final self::ET_NullableExtensionType /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method ET_NullableExtensionType|_#new#tearOff(dynamic it) → self::ET_NullableExtensionType /* = core::int? */
+static inline-class-member method ET_NullableExtensionType|_#new#tearOff(self::ExtensionType? /* = core::int? */ it) → self::ET_NullableExtensionType /* = core::int? */
   return self::ET_NullableExtensionType|(it);
-static inline-class-member method ET_FutureOr|(dynamic it) → self::ET_FutureOr /* = FutureOr<core::int>*/ {
+static inline-class-member method ET_FutureOr|(FutureOr<core::int>it) → self::ET_FutureOr /* = FutureOr<core::int>*/ {
   lowered final self::ET_FutureOr /* = FutureOr<core::int>*/ #this = it;
   return #this;
 }
-static inline-class-member method ET_FutureOr|_#new#tearOff(dynamic it) → self::ET_FutureOr /* = FutureOr<core::int>*/
+static inline-class-member method ET_FutureOr|_#new#tearOff(FutureOr<core::int>it) → self::ET_FutureOr /* = FutureOr<core::int>*/
   return self::ET_FutureOr|(it);
-static inline-class-member method ET_Extension|_#new#tearOff(dynamic it) → self::ET_Extension /* = Never */
+static inline-class-member method ET_Extension|_#new#tearOff(Never it) → self::ET_Extension /* = Never */
   return self::ET_Extension|(it);
-static inline-class-member method ET_Extension|(dynamic it) → self::ET_Extension /* = Never */ {
+static inline-class-member method ET_Extension|(Never it) → self::ET_Extension /* = Never */ {
   lowered final self::ET_Extension /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_TypeVariable|<T extends core::Object? = dynamic>(dynamic it) → self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ {
+static inline-class-member method ET_TypeVariable|<T extends core::Object? = dynamic>(self::ET_TypeVariable|::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ {
   lowered final self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method ET_TypeVariable|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_TypeVariable<self::ET_TypeVariable|_#new#tearOff::T%> /* = self::ET_TypeVariable|_#new#tearOff::T% */
+static inline-class-member method ET_TypeVariable|_#new#tearOff<T extends core::Object? = dynamic>(self::ET_TypeVariable|_#new#tearOff::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|_#new#tearOff::T%> /* = self::ET_TypeVariable|_#new#tearOff::T% */
   return self::ET_TypeVariable|<self::ET_TypeVariable|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Class|(dynamic it) → self::ET_Class /* = self::Class */ {
+static inline-class-member method ET_Class|(self::Class it) → self::ET_Class /* = self::Class */ {
   lowered final self::ET_Class /* = self::Class */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Class|_#new#tearOff(dynamic it) → self::ET_Class /* = self::Class */
+static inline-class-member method ET_Class|_#new#tearOff(self::Class it) → self::ET_Class /* = self::Class */
   return self::ET_Class|(it);
-static inline-class-member method ET_GenericClass|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ {
+static inline-class-member method ET_GenericClass|<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|::T%> it) → self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ {
   lowered final self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericClass<self::ET_GenericClass|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> */
+static inline-class-member method ET_GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> it) → self::ET_GenericClass<self::ET_GenericClass|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> */
   return self::ET_GenericClass|<self::ET_GenericClass|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Alias|(dynamic it) → self::ET_Alias /* = self::Class */ {
+static inline-class-member method ET_Alias|(self::Class it) → self::ET_Alias /* = self::Class */ {
   lowered final self::ET_Alias /* = self::Class */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Alias|_#new#tearOff(dynamic it) → self::ET_Alias /* = self::Class */
+static inline-class-member method ET_Alias|_#new#tearOff(self::Class it) → self::ET_Alias /* = self::Class */
   return self::ET_Alias|(it);
-static inline-class-member method ET_GenericAlias|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ {
+static inline-class-member method ET_GenericAlias|<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ {
   lowered final self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericAlias<self::ET_GenericAlias|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> */
+static inline-class-member method ET_GenericAlias|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> */
   return self::ET_GenericAlias|<self::ET_GenericAlias|_#new#tearOff::T%>(it);
-static inline-class-member method ET_ExtensionType|(dynamic it) → self::ET_ExtensionType /* = core::int */ {
+static inline-class-member method ET_ExtensionType|(self::ExtensionType /* = core::int */ it) → self::ET_ExtensionType /* = core::int */ {
   lowered final self::ET_ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ET_ExtensionType|_#new#tearOff(dynamic it) → self::ET_ExtensionType /* = core::int */
+static inline-class-member method ET_ExtensionType|_#new#tearOff(self::ExtensionType /* = core::int */ it) → self::ET_ExtensionType /* = core::int */
   return self::ET_ExtensionType|(it);
-static inline-class-member method ET_GenericExtensionType|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ {
+static inline-class-member method ET_GenericExtensionType|<T extends core::Object? = dynamic>(self::GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ {
   lowered final self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */
+static inline-class-member method ET_GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */ it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */
   return self::ET_GenericExtensionType|<self::ET_GenericExtensionType|_#new#tearOff::T%>(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.outline.expect
index 6a2903a..7bfcf7a 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.outline.expect
@@ -192,91 +192,91 @@
   constructor • = self::ET_GenericExtensionType|;
   tearoff • = self::ET_GenericExtensionType|_#new#tearOff;
 }
-static inline-class-member method ExtensionType|(dynamic it) → self::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|(core::int it) → self::ExtensionType /* = core::int */
   ;
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → self::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → self::ExtensionType /* = core::int */
   return self::ExtensionType|(it);
-static inline-class-member method GenericExtensionType|<T extends core::Object? = dynamic>(dynamic it) → self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */
+static inline-class-member method GenericExtensionType|<T extends core::Object? = dynamic>(self::GenericExtensionType|::T% it) → self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */
   ;
-static inline-class-member method GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericExtensionType<self::GenericExtensionType|_#new#tearOff::T%> /* = self::GenericExtensionType|_#new#tearOff::T% */
+static inline-class-member method GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericExtensionType|_#new#tearOff::T% it) → self::GenericExtensionType<self::GenericExtensionType|_#new#tearOff::T%> /* = self::GenericExtensionType|_#new#tearOff::T% */
   return self::GenericExtensionType|<self::GenericExtensionType|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Null|(dynamic it) → self::ET_Null /* = Null */
+static inline-class-member method ET_Null|(Null it) → self::ET_Null /* = Null */
   ;
-static inline-class-member method ET_Null|_#new#tearOff(dynamic it) → self::ET_Null /* = Null */
+static inline-class-member method ET_Null|_#new#tearOff(Null it) → self::ET_Null /* = Null */
   return self::ET_Null|(it);
 static inline-class-member method ET_Dynamic|(dynamic it) → self::ET_Dynamic /* = dynamic */
   ;
 static inline-class-member method ET_Dynamic|_#new#tearOff(dynamic it) → self::ET_Dynamic /* = dynamic */
   return self::ET_Dynamic|(it);
-static inline-class-member method ET_Void|(dynamic it) → self::ET_Void /* = Never */
+static inline-class-member method ET_Void|(Never it) → self::ET_Void /* = Never */
   ;
-static inline-class-member method ET_Void|_#new#tearOff(dynamic it) → self::ET_Void /* = Never */
+static inline-class-member method ET_Void|_#new#tearOff(Never it) → self::ET_Void /* = Never */
   return self::ET_Void|(it);
-static inline-class-member method ET_Never|(dynamic it) → self::ET_Never /* = Never */
+static inline-class-member method ET_Never|(Never it) → self::ET_Never /* = Never */
   ;
-static inline-class-member method ET_Never|_#new#tearOff(dynamic it) → self::ET_Never /* = Never */
+static inline-class-member method ET_Never|_#new#tearOff(Never it) → self::ET_Never /* = Never */
   return self::ET_Never|(it);
-static inline-class-member method ET_Object|(dynamic it) → self::ET_Object /* = core::Object */
+static inline-class-member method ET_Object|(core::Object it) → self::ET_Object /* = core::Object */
   ;
-static inline-class-member method ET_Object|_#new#tearOff(dynamic it) → self::ET_Object /* = core::Object */
+static inline-class-member method ET_Object|_#new#tearOff(core::Object it) → self::ET_Object /* = core::Object */
   return self::ET_Object|(it);
-static inline-class-member method ET_Record|(dynamic it) → self::ET_Record /* = core::Record */
+static inline-class-member method ET_Record|(core::Record it) → self::ET_Record /* = core::Record */
   ;
-static inline-class-member method ET_Record|_#new#tearOff(dynamic it) → self::ET_Record /* = core::Record */
+static inline-class-member method ET_Record|_#new#tearOff(core::Record it) → self::ET_Record /* = core::Record */
   return self::ET_Record|(it);
-static inline-class-member method ET_RecordType|(dynamic it) → self::ET_RecordType /* =(core::int, core::String) */
+static inline-class-member method ET_RecordType|((core::int, core::String) it) → self::ET_RecordType /* =(core::int, core::String) */
   ;
-static inline-class-member method ET_RecordType|_#new#tearOff(dynamic it) → self::ET_RecordType /* =(core::int, core::String) */
+static inline-class-member method ET_RecordType|_#new#tearOff((core::int, core::String) it) → self::ET_RecordType /* =(core::int, core::String) */
   return self::ET_RecordType|(it);
-static inline-class-member method ET_Function|(dynamic it) → self::ET_Function /* = core::Function */
+static inline-class-member method ET_Function|(core::Function it) → self::ET_Function /* = core::Function */
   ;
-static inline-class-member method ET_Function|_#new#tearOff(dynamic it) → self::ET_Function /* = core::Function */
+static inline-class-member method ET_Function|_#new#tearOff(core::Function it) → self::ET_Function /* = core::Function */
   return self::ET_Function|(it);
-static inline-class-member method ET_FunctionType|(dynamic it) → self::ET_FunctionType /* = () → void */
+static inline-class-member method ET_FunctionType|(() → void it) → self::ET_FunctionType /* = () → void */
   ;
-static inline-class-member method ET_FunctionType|_#new#tearOff(dynamic it) → self::ET_FunctionType /* = () → void */
+static inline-class-member method ET_FunctionType|_#new#tearOff(() → void it) → self::ET_FunctionType /* = () → void */
   return self::ET_FunctionType|(it);
-static inline-class-member method ET_NullableInterfaceType|(dynamic it) → self::ET_NullableInterfaceType /* = core::String? */
+static inline-class-member method ET_NullableInterfaceType|(core::String? it) → self::ET_NullableInterfaceType /* = core::String? */
   ;
-static inline-class-member method ET_NullableInterfaceType|_#new#tearOff(dynamic it) → self::ET_NullableInterfaceType /* = core::String? */
+static inline-class-member method ET_NullableInterfaceType|_#new#tearOff(core::String? it) → self::ET_NullableInterfaceType /* = core::String? */
   return self::ET_NullableInterfaceType|(it);
-static inline-class-member method ET_NullableExtensionType|(dynamic it) → self::ET_NullableExtensionType /* = core::int? */
+static inline-class-member method ET_NullableExtensionType|(self::ExtensionType? /* = core::int? */ it) → self::ET_NullableExtensionType /* = core::int? */
   ;
-static inline-class-member method ET_NullableExtensionType|_#new#tearOff(dynamic it) → self::ET_NullableExtensionType /* = core::int? */
+static inline-class-member method ET_NullableExtensionType|_#new#tearOff(self::ExtensionType? /* = core::int? */ it) → self::ET_NullableExtensionType /* = core::int? */
   return self::ET_NullableExtensionType|(it);
-static inline-class-member method ET_FutureOr|(dynamic it) → self::ET_FutureOr /* = FutureOr<core::int>*/
+static inline-class-member method ET_FutureOr|(FutureOr<core::int>it) → self::ET_FutureOr /* = FutureOr<core::int>*/
   ;
-static inline-class-member method ET_FutureOr|_#new#tearOff(dynamic it) → self::ET_FutureOr /* = FutureOr<core::int>*/
+static inline-class-member method ET_FutureOr|_#new#tearOff(FutureOr<core::int>it) → self::ET_FutureOr /* = FutureOr<core::int>*/
   return self::ET_FutureOr|(it);
-static inline-class-member method ET_Extension|_#new#tearOff(dynamic it) → self::ET_Extension /* = Never */
+static inline-class-member method ET_Extension|_#new#tearOff(Never it) → self::ET_Extension /* = Never */
   return self::ET_Extension|(it);
-static inline-class-member method ET_Extension|(dynamic it) → self::ET_Extension /* = Never */
+static inline-class-member method ET_Extension|(Never it) → self::ET_Extension /* = Never */
   ;
-static inline-class-member method ET_TypeVariable|<T extends core::Object? = dynamic>(dynamic it) → self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */
+static inline-class-member method ET_TypeVariable|<T extends core::Object? = dynamic>(self::ET_TypeVariable|::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */
   ;
-static inline-class-member method ET_TypeVariable|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_TypeVariable<self::ET_TypeVariable|_#new#tearOff::T%> /* = self::ET_TypeVariable|_#new#tearOff::T% */
+static inline-class-member method ET_TypeVariable|_#new#tearOff<T extends core::Object? = dynamic>(self::ET_TypeVariable|_#new#tearOff::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|_#new#tearOff::T%> /* = self::ET_TypeVariable|_#new#tearOff::T% */
   return self::ET_TypeVariable|<self::ET_TypeVariable|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Class|(dynamic it) → self::ET_Class /* = self::Class */
+static inline-class-member method ET_Class|(self::Class it) → self::ET_Class /* = self::Class */
   ;
-static inline-class-member method ET_Class|_#new#tearOff(dynamic it) → self::ET_Class /* = self::Class */
+static inline-class-member method ET_Class|_#new#tearOff(self::Class it) → self::ET_Class /* = self::Class */
   return self::ET_Class|(it);
-static inline-class-member method ET_GenericClass|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */
+static inline-class-member method ET_GenericClass|<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|::T%> it) → self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */
   ;
-static inline-class-member method ET_GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericClass<self::ET_GenericClass|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> */
+static inline-class-member method ET_GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> it) → self::ET_GenericClass<self::ET_GenericClass|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> */
   return self::ET_GenericClass|<self::ET_GenericClass|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Alias|(dynamic it) → self::ET_Alias /* = self::Class */
+static inline-class-member method ET_Alias|(self::Class it) → self::ET_Alias /* = self::Class */
   ;
-static inline-class-member method ET_Alias|_#new#tearOff(dynamic it) → self::ET_Alias /* = self::Class */
+static inline-class-member method ET_Alias|_#new#tearOff(self::Class it) → self::ET_Alias /* = self::Class */
   return self::ET_Alias|(it);
-static inline-class-member method ET_GenericAlias|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */
+static inline-class-member method ET_GenericAlias|<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */
   ;
-static inline-class-member method ET_GenericAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericAlias<self::ET_GenericAlias|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> */
+static inline-class-member method ET_GenericAlias|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> */
   return self::ET_GenericAlias|<self::ET_GenericAlias|_#new#tearOff::T%>(it);
-static inline-class-member method ET_ExtensionType|(dynamic it) → self::ET_ExtensionType /* = core::int */
+static inline-class-member method ET_ExtensionType|(self::ExtensionType /* = core::int */ it) → self::ET_ExtensionType /* = core::int */
   ;
-static inline-class-member method ET_ExtensionType|_#new#tearOff(dynamic it) → self::ET_ExtensionType /* = core::int */
+static inline-class-member method ET_ExtensionType|_#new#tearOff(self::ExtensionType /* = core::int */ it) → self::ET_ExtensionType /* = core::int */
   return self::ET_ExtensionType|(it);
-static inline-class-member method ET_GenericExtensionType|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */
+static inline-class-member method ET_GenericExtensionType|<T extends core::Object? = dynamic>(self::GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */
   ;
-static inline-class-member method ET_GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */
+static inline-class-member method ET_GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */ it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */
   return self::ET_GenericExtensionType|<self::ET_GenericExtensionType|_#new#tearOff::T%>(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.transformed.expect
index 2df0ca3..d1231b5 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/implement_all.dart.weak.transformed.expect
@@ -194,23 +194,23 @@
   constructor • = self::ET_GenericExtensionType|;
   tearoff • = self::ET_GenericExtensionType|_#new#tearOff;
 }
-static inline-class-member method ExtensionType|(dynamic it) → self::ExtensionType /* = core::int */ {
+static inline-class-member method ExtensionType|(core::int it) → self::ExtensionType /* = core::int */ {
   lowered final self::ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ExtensionType|_#new#tearOff(dynamic it) → self::ExtensionType /* = core::int */
+static inline-class-member method ExtensionType|_#new#tearOff(core::int it) → self::ExtensionType /* = core::int */
   return self::ExtensionType|(it);
-static inline-class-member method GenericExtensionType|<T extends core::Object? = dynamic>(dynamic it) → self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ {
+static inline-class-member method GenericExtensionType|<T extends core::Object? = dynamic>(self::GenericExtensionType|::T% it) → self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ {
   lowered final self::GenericExtensionType<self::GenericExtensionType|::T%> /* = self::GenericExtensionType|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericExtensionType<self::GenericExtensionType|_#new#tearOff::T%> /* = self::GenericExtensionType|_#new#tearOff::T% */
+static inline-class-member method GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericExtensionType|_#new#tearOff::T% it) → self::GenericExtensionType<self::GenericExtensionType|_#new#tearOff::T%> /* = self::GenericExtensionType|_#new#tearOff::T% */
   return self::GenericExtensionType|<self::GenericExtensionType|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Null|(dynamic it) → self::ET_Null /* = Null */ {
+static inline-class-member method ET_Null|(Null it) → self::ET_Null /* = Null */ {
   lowered final self::ET_Null /* = Null */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Null|_#new#tearOff(dynamic it) → self::ET_Null /* = Null */
+static inline-class-member method ET_Null|_#new#tearOff(Null it) → self::ET_Null /* = Null */
   return self::ET_Null|(it);
 static inline-class-member method ET_Dynamic|(dynamic it) → self::ET_Dynamic /* = dynamic */ {
   lowered final self::ET_Dynamic /* = dynamic */ #this = it;
@@ -218,111 +218,111 @@
 }
 static inline-class-member method ET_Dynamic|_#new#tearOff(dynamic it) → self::ET_Dynamic /* = dynamic */
   return self::ET_Dynamic|(it);
-static inline-class-member method ET_Void|(dynamic it) → self::ET_Void /* = Never */ {
+static inline-class-member method ET_Void|(Never it) → self::ET_Void /* = Never */ {
   lowered final self::ET_Void /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Void|_#new#tearOff(dynamic it) → self::ET_Void /* = Never */
+static inline-class-member method ET_Void|_#new#tearOff(Never it) → self::ET_Void /* = Never */
   return self::ET_Void|(it);
-static inline-class-member method ET_Never|(dynamic it) → self::ET_Never /* = Never */ {
+static inline-class-member method ET_Never|(Never it) → self::ET_Never /* = Never */ {
   lowered final self::ET_Never /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Never|_#new#tearOff(dynamic it) → self::ET_Never /* = Never */
+static inline-class-member method ET_Never|_#new#tearOff(Never it) → self::ET_Never /* = Never */
   return self::ET_Never|(it);
-static inline-class-member method ET_Object|(dynamic it) → self::ET_Object /* = core::Object */ {
+static inline-class-member method ET_Object|(core::Object it) → self::ET_Object /* = core::Object */ {
   lowered final self::ET_Object /* = core::Object */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Object|_#new#tearOff(dynamic it) → self::ET_Object /* = core::Object */
+static inline-class-member method ET_Object|_#new#tearOff(core::Object it) → self::ET_Object /* = core::Object */
   return self::ET_Object|(it);
-static inline-class-member method ET_Record|(dynamic it) → self::ET_Record /* = core::Record */ {
+static inline-class-member method ET_Record|(core::Record it) → self::ET_Record /* = core::Record */ {
   lowered final self::ET_Record /* = core::Record */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Record|_#new#tearOff(dynamic it) → self::ET_Record /* = core::Record */
+static inline-class-member method ET_Record|_#new#tearOff(core::Record it) → self::ET_Record /* = core::Record */
   return self::ET_Record|(it);
-static inline-class-member method ET_RecordType|(dynamic it) → self::ET_RecordType /* =(core::int, core::String) */ {
+static inline-class-member method ET_RecordType|((core::int, core::String) it) → self::ET_RecordType /* =(core::int, core::String) */ {
   lowered final self::ET_RecordType /* =(core::int, core::String) */ #this = it;
   return #this;
 }
-static inline-class-member method ET_RecordType|_#new#tearOff(dynamic it) → self::ET_RecordType /* =(core::int, core::String) */
+static inline-class-member method ET_RecordType|_#new#tearOff((core::int, core::String) it) → self::ET_RecordType /* =(core::int, core::String) */
   return self::ET_RecordType|(it);
-static inline-class-member method ET_Function|(dynamic it) → self::ET_Function /* = core::Function */ {
+static inline-class-member method ET_Function|(core::Function it) → self::ET_Function /* = core::Function */ {
   lowered final self::ET_Function /* = core::Function */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Function|_#new#tearOff(dynamic it) → self::ET_Function /* = core::Function */
+static inline-class-member method ET_Function|_#new#tearOff(core::Function it) → self::ET_Function /* = core::Function */
   return self::ET_Function|(it);
-static inline-class-member method ET_FunctionType|(dynamic it) → self::ET_FunctionType /* = () → void */ {
+static inline-class-member method ET_FunctionType|(() → void it) → self::ET_FunctionType /* = () → void */ {
   lowered final self::ET_FunctionType /* = () → void */ #this = it;
   return #this;
 }
-static inline-class-member method ET_FunctionType|_#new#tearOff(dynamic it) → self::ET_FunctionType /* = () → void */
+static inline-class-member method ET_FunctionType|_#new#tearOff(() → void it) → self::ET_FunctionType /* = () → void */
   return self::ET_FunctionType|(it);
-static inline-class-member method ET_NullableInterfaceType|(dynamic it) → self::ET_NullableInterfaceType /* = core::String? */ {
+static inline-class-member method ET_NullableInterfaceType|(core::String? it) → self::ET_NullableInterfaceType /* = core::String? */ {
   lowered final self::ET_NullableInterfaceType /* = core::String? */ #this = it;
   return #this;
 }
-static inline-class-member method ET_NullableInterfaceType|_#new#tearOff(dynamic it) → self::ET_NullableInterfaceType /* = core::String? */
+static inline-class-member method ET_NullableInterfaceType|_#new#tearOff(core::String? it) → self::ET_NullableInterfaceType /* = core::String? */
   return self::ET_NullableInterfaceType|(it);
-static inline-class-member method ET_NullableExtensionType|(dynamic it) → self::ET_NullableExtensionType /* = core::int? */ {
+static inline-class-member method ET_NullableExtensionType|(self::ExtensionType? /* = core::int? */ it) → self::ET_NullableExtensionType /* = core::int? */ {
   lowered final self::ET_NullableExtensionType /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method ET_NullableExtensionType|_#new#tearOff(dynamic it) → self::ET_NullableExtensionType /* = core::int? */
+static inline-class-member method ET_NullableExtensionType|_#new#tearOff(self::ExtensionType? /* = core::int? */ it) → self::ET_NullableExtensionType /* = core::int? */
   return self::ET_NullableExtensionType|(it);
-static inline-class-member method ET_FutureOr|(dynamic it) → self::ET_FutureOr /* = FutureOr<core::int>*/ {
+static inline-class-member method ET_FutureOr|(FutureOr<core::int>it) → self::ET_FutureOr /* = FutureOr<core::int>*/ {
   lowered final self::ET_FutureOr /* = FutureOr<core::int>*/ #this = it;
   return #this;
 }
-static inline-class-member method ET_FutureOr|_#new#tearOff(dynamic it) → self::ET_FutureOr /* = FutureOr<core::int>*/
+static inline-class-member method ET_FutureOr|_#new#tearOff(FutureOr<core::int>it) → self::ET_FutureOr /* = FutureOr<core::int>*/
   return self::ET_FutureOr|(it);
-static inline-class-member method ET_Extension|_#new#tearOff(dynamic it) → self::ET_Extension /* = Never */
+static inline-class-member method ET_Extension|_#new#tearOff(Never it) → self::ET_Extension /* = Never */
   return self::ET_Extension|(it);
-static inline-class-member method ET_Extension|(dynamic it) → self::ET_Extension /* = Never */ {
+static inline-class-member method ET_Extension|(Never it) → self::ET_Extension /* = Never */ {
   lowered final self::ET_Extension /* = Never */ #this = it;
   return #this;
 }
-static inline-class-member method ET_TypeVariable|<T extends core::Object? = dynamic>(dynamic it) → self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ {
+static inline-class-member method ET_TypeVariable|<T extends core::Object? = dynamic>(self::ET_TypeVariable|::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ {
   lowered final self::ET_TypeVariable<self::ET_TypeVariable|::T%> /* = self::ET_TypeVariable|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method ET_TypeVariable|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_TypeVariable<self::ET_TypeVariable|_#new#tearOff::T%> /* = self::ET_TypeVariable|_#new#tearOff::T% */
+static inline-class-member method ET_TypeVariable|_#new#tearOff<T extends core::Object? = dynamic>(self::ET_TypeVariable|_#new#tearOff::T% it) → self::ET_TypeVariable<self::ET_TypeVariable|_#new#tearOff::T%> /* = self::ET_TypeVariable|_#new#tearOff::T% */
   return self::ET_TypeVariable|<self::ET_TypeVariable|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Class|(dynamic it) → self::ET_Class /* = self::Class */ {
+static inline-class-member method ET_Class|(self::Class it) → self::ET_Class /* = self::Class */ {
   lowered final self::ET_Class /* = self::Class */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Class|_#new#tearOff(dynamic it) → self::ET_Class /* = self::Class */
+static inline-class-member method ET_Class|_#new#tearOff(self::Class it) → self::ET_Class /* = self::Class */
   return self::ET_Class|(it);
-static inline-class-member method ET_GenericClass|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ {
+static inline-class-member method ET_GenericClass|<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|::T%> it) → self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ {
   lowered final self::ET_GenericClass<self::ET_GenericClass|::T%> /* = self::GenericClass<self::ET_GenericClass|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericClass<self::ET_GenericClass|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> */
+static inline-class-member method ET_GenericClass|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> it) → self::ET_GenericClass<self::ET_GenericClass|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericClass|_#new#tearOff::T%> */
   return self::ET_GenericClass|<self::ET_GenericClass|_#new#tearOff::T%>(it);
-static inline-class-member method ET_Alias|(dynamic it) → self::ET_Alias /* = self::Class */ {
+static inline-class-member method ET_Alias|(self::Class it) → self::ET_Alias /* = self::Class */ {
   lowered final self::ET_Alias /* = self::Class */ #this = it;
   return #this;
 }
-static inline-class-member method ET_Alias|_#new#tearOff(dynamic it) → self::ET_Alias /* = self::Class */
+static inline-class-member method ET_Alias|_#new#tearOff(self::Class it) → self::ET_Alias /* = self::Class */
   return self::ET_Alias|(it);
-static inline-class-member method ET_GenericAlias|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ {
+static inline-class-member method ET_GenericAlias|<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ {
   lowered final self::ET_GenericAlias<self::ET_GenericAlias|::T%> /* = self::GenericClass<self::ET_GenericAlias|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericAlias<self::ET_GenericAlias|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> */
+static inline-class-member method ET_GenericAlias|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> it) → self::ET_GenericAlias<self::ET_GenericAlias|_#new#tearOff::T%> /* = self::GenericClass<self::ET_GenericAlias|_#new#tearOff::T%> */
   return self::ET_GenericAlias|<self::ET_GenericAlias|_#new#tearOff::T%>(it);
-static inline-class-member method ET_ExtensionType|(dynamic it) → self::ET_ExtensionType /* = core::int */ {
+static inline-class-member method ET_ExtensionType|(self::ExtensionType /* = core::int */ it) → self::ET_ExtensionType /* = core::int */ {
   lowered final self::ET_ExtensionType /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method ET_ExtensionType|_#new#tearOff(dynamic it) → self::ET_ExtensionType /* = core::int */
+static inline-class-member method ET_ExtensionType|_#new#tearOff(self::ExtensionType /* = core::int */ it) → self::ET_ExtensionType /* = core::int */
   return self::ET_ExtensionType|(it);
-static inline-class-member method ET_GenericExtensionType|<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ {
+static inline-class-member method ET_GenericExtensionType|<T extends core::Object? = dynamic>(self::GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ {
   lowered final self::ET_GenericExtensionType<self::ET_GenericExtensionType|::T%> /* = self::ET_GenericExtensionType|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method ET_GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */
+static inline-class-member method ET_GenericExtensionType|_#new#tearOff<T extends core::Object? = dynamic>(self::GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */ it) → self::ET_GenericExtensionType<self::ET_GenericExtensionType|_#new#tearOff::T%> /* = self::ET_GenericExtensionType|_#new#tearOff::T% */
   return self::ET_GenericExtensionType|<self::ET_GenericExtensionType|_#new#tearOff::T%>(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/implements.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/implements.dart.strong.expect
index 2174dfe..d06a52c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/implements.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/implements.dart.strong.expect
@@ -230,51 +230,51 @@
   constructor • = self::D1|;
   tearoff • = self::D1|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
 static inline-class-member method A|methodA(lowered final self::A /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(5){(core::num) → core::int};
 static inline-class-member method A|get#methodA(lowered final self::A /* = core::int */ #this) → () → core::int
   return () → core::int => self::A|methodA(#this);
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = self::B|::T% */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(self::B|::T% it) → self::B<self::B|::T%> /* = self::B|::T% */ {
   lowered final self::B<self::B|::T%> /* = self::B|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = self::B|_#new#tearOff::T% */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(self::B|_#new#tearOff::T% it) → self::B<self::B|_#new#tearOff::T%> /* = self::B|_#new#tearOff::T% */
   return self::B|<self::B|_#new#tearOff::T%>(it);
 static inline-class-member method B|methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|methodB::T%> /* = self::B|methodB::T% */ #this) → self::B|methodB::T%
   return #this as{Unchecked} self::B|methodB::T%;
 static inline-class-member method B|get#methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|get#methodB::T%> /* = self::B|get#methodB::T% */ #this) → () → self::B|get#methodB::T%
   return () → self::B|get#methodB::T% => self::B|methodB<self::B|get#methodB::T%>(#this);
-static inline-class-member method C1|(dynamic it) → self::C1 /* = core::int */ {
+static inline-class-member method C1|(core::int it) → self::C1 /* = core::int */ {
   lowered final self::C1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C1|_#new#tearOff(dynamic it) → self::C1 /* = core::int */
+static inline-class-member method C1|_#new#tearOff(core::int it) → self::C1 /* = core::int */
   return self::C1|(it);
 static inline-class-member method C1|methodC1(lowered final self::C1 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(42){(core::num) → core::int};
 static inline-class-member method C1|get#methodC1(lowered final self::C1 /* = core::int */ #this) → () → core::int
   return () → core::int => self::C1|methodC1(#this);
-static inline-class-member method C2|(dynamic it) → self::C2 /* = core::int */ {
+static inline-class-member method C2|(core::int it) → self::C2 /* = core::int */ {
   lowered final self::C2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C2|_#new#tearOff(dynamic it) → self::C2 /* = core::int */
+static inline-class-member method C2|_#new#tearOff(core::int it) → self::C2 /* = core::int */
   return self::C2|(it);
 static inline-class-member method C2|methodC2(lowered final self::C2 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(87){(core::num) → core::int};
 static inline-class-member method C2|get#methodC2(lowered final self::C2 /* = core::int */ #this) → () → core::int
   return () → core::int => self::C2|methodC2(#this);
-static inline-class-member method D1|(dynamic it) → self::D1 /* = core::int */ {
+static inline-class-member method D1|(core::int it) → self::D1 /* = core::int */ {
   lowered final self::D1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D1|_#new#tearOff(dynamic it) → self::D1 /* = core::int */
+static inline-class-member method D1|_#new#tearOff(core::int it) → self::D1 /* = core::int */
   return self::D1|(it);
 static inline-class-member method D1|methodD1(lowered final self::D1 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(123){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/implements.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/implements.dart.strong.transformed.expect
index 570ebd2..43625ff 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/implements.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/implements.dart.strong.transformed.expect
@@ -230,51 +230,51 @@
   constructor • = self::D1|;
   tearoff • = self::D1|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
 static inline-class-member method A|methodA(lowered final self::A /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(5){(core::num) → core::int};
 static inline-class-member method A|get#methodA(lowered final self::A /* = core::int */ #this) → () → core::int
   return () → core::int => self::A|methodA(#this);
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = self::B|::T% */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(self::B|::T% it) → self::B<self::B|::T%> /* = self::B|::T% */ {
   lowered final self::B<self::B|::T%> /* = self::B|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = self::B|_#new#tearOff::T% */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(self::B|_#new#tearOff::T% it) → self::B<self::B|_#new#tearOff::T%> /* = self::B|_#new#tearOff::T% */
   return self::B|<self::B|_#new#tearOff::T%>(it);
 static inline-class-member method B|methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|methodB::T%> /* = self::B|methodB::T% */ #this) → self::B|methodB::T%
   return #this as{Unchecked} self::B|methodB::T%;
 static inline-class-member method B|get#methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|get#methodB::T%> /* = self::B|get#methodB::T% */ #this) → () → self::B|get#methodB::T%
   return () → self::B|get#methodB::T% => self::B|methodB<self::B|get#methodB::T%>(#this);
-static inline-class-member method C1|(dynamic it) → self::C1 /* = core::int */ {
+static inline-class-member method C1|(core::int it) → self::C1 /* = core::int */ {
   lowered final self::C1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C1|_#new#tearOff(dynamic it) → self::C1 /* = core::int */
+static inline-class-member method C1|_#new#tearOff(core::int it) → self::C1 /* = core::int */
   return self::C1|(it);
 static inline-class-member method C1|methodC1(lowered final self::C1 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(42){(core::num) → core::int};
 static inline-class-member method C1|get#methodC1(lowered final self::C1 /* = core::int */ #this) → () → core::int
   return () → core::int => self::C1|methodC1(#this);
-static inline-class-member method C2|(dynamic it) → self::C2 /* = core::int */ {
+static inline-class-member method C2|(core::int it) → self::C2 /* = core::int */ {
   lowered final self::C2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C2|_#new#tearOff(dynamic it) → self::C2 /* = core::int */
+static inline-class-member method C2|_#new#tearOff(core::int it) → self::C2 /* = core::int */
   return self::C2|(it);
 static inline-class-member method C2|methodC2(lowered final self::C2 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(87){(core::num) → core::int};
 static inline-class-member method C2|get#methodC2(lowered final self::C2 /* = core::int */ #this) → () → core::int
   return () → core::int => self::C2|methodC2(#this);
-static inline-class-member method D1|(dynamic it) → self::D1 /* = core::int */ {
+static inline-class-member method D1|(core::int it) → self::D1 /* = core::int */ {
   lowered final self::D1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D1|_#new#tearOff(dynamic it) → self::D1 /* = core::int */
+static inline-class-member method D1|_#new#tearOff(core::int it) → self::D1 /* = core::int */
   return self::D1|(it);
 static inline-class-member method D1|methodD1(lowered final self::D1 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(123){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.expect
index 2174dfe..d06a52c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.expect
@@ -230,51 +230,51 @@
   constructor • = self::D1|;
   tearoff • = self::D1|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
 static inline-class-member method A|methodA(lowered final self::A /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(5){(core::num) → core::int};
 static inline-class-member method A|get#methodA(lowered final self::A /* = core::int */ #this) → () → core::int
   return () → core::int => self::A|methodA(#this);
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = self::B|::T% */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(self::B|::T% it) → self::B<self::B|::T%> /* = self::B|::T% */ {
   lowered final self::B<self::B|::T%> /* = self::B|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = self::B|_#new#tearOff::T% */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(self::B|_#new#tearOff::T% it) → self::B<self::B|_#new#tearOff::T%> /* = self::B|_#new#tearOff::T% */
   return self::B|<self::B|_#new#tearOff::T%>(it);
 static inline-class-member method B|methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|methodB::T%> /* = self::B|methodB::T% */ #this) → self::B|methodB::T%
   return #this as{Unchecked} self::B|methodB::T%;
 static inline-class-member method B|get#methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|get#methodB::T%> /* = self::B|get#methodB::T% */ #this) → () → self::B|get#methodB::T%
   return () → self::B|get#methodB::T% => self::B|methodB<self::B|get#methodB::T%>(#this);
-static inline-class-member method C1|(dynamic it) → self::C1 /* = core::int */ {
+static inline-class-member method C1|(core::int it) → self::C1 /* = core::int */ {
   lowered final self::C1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C1|_#new#tearOff(dynamic it) → self::C1 /* = core::int */
+static inline-class-member method C1|_#new#tearOff(core::int it) → self::C1 /* = core::int */
   return self::C1|(it);
 static inline-class-member method C1|methodC1(lowered final self::C1 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(42){(core::num) → core::int};
 static inline-class-member method C1|get#methodC1(lowered final self::C1 /* = core::int */ #this) → () → core::int
   return () → core::int => self::C1|methodC1(#this);
-static inline-class-member method C2|(dynamic it) → self::C2 /* = core::int */ {
+static inline-class-member method C2|(core::int it) → self::C2 /* = core::int */ {
   lowered final self::C2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C2|_#new#tearOff(dynamic it) → self::C2 /* = core::int */
+static inline-class-member method C2|_#new#tearOff(core::int it) → self::C2 /* = core::int */
   return self::C2|(it);
 static inline-class-member method C2|methodC2(lowered final self::C2 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(87){(core::num) → core::int};
 static inline-class-member method C2|get#methodC2(lowered final self::C2 /* = core::int */ #this) → () → core::int
   return () → core::int => self::C2|methodC2(#this);
-static inline-class-member method D1|(dynamic it) → self::D1 /* = core::int */ {
+static inline-class-member method D1|(core::int it) → self::D1 /* = core::int */ {
   lowered final self::D1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D1|_#new#tearOff(dynamic it) → self::D1 /* = core::int */
+static inline-class-member method D1|_#new#tearOff(core::int it) → self::D1 /* = core::int */
   return self::D1|(it);
 static inline-class-member method D1|methodD1(lowered final self::D1 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(123){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.modular.expect
index 2174dfe..d06a52c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.modular.expect
@@ -230,51 +230,51 @@
   constructor • = self::D1|;
   tearoff • = self::D1|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
 static inline-class-member method A|methodA(lowered final self::A /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(5){(core::num) → core::int};
 static inline-class-member method A|get#methodA(lowered final self::A /* = core::int */ #this) → () → core::int
   return () → core::int => self::A|methodA(#this);
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = self::B|::T% */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(self::B|::T% it) → self::B<self::B|::T%> /* = self::B|::T% */ {
   lowered final self::B<self::B|::T%> /* = self::B|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = self::B|_#new#tearOff::T% */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(self::B|_#new#tearOff::T% it) → self::B<self::B|_#new#tearOff::T%> /* = self::B|_#new#tearOff::T% */
   return self::B|<self::B|_#new#tearOff::T%>(it);
 static inline-class-member method B|methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|methodB::T%> /* = self::B|methodB::T% */ #this) → self::B|methodB::T%
   return #this as{Unchecked} self::B|methodB::T%;
 static inline-class-member method B|get#methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|get#methodB::T%> /* = self::B|get#methodB::T% */ #this) → () → self::B|get#methodB::T%
   return () → self::B|get#methodB::T% => self::B|methodB<self::B|get#methodB::T%>(#this);
-static inline-class-member method C1|(dynamic it) → self::C1 /* = core::int */ {
+static inline-class-member method C1|(core::int it) → self::C1 /* = core::int */ {
   lowered final self::C1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C1|_#new#tearOff(dynamic it) → self::C1 /* = core::int */
+static inline-class-member method C1|_#new#tearOff(core::int it) → self::C1 /* = core::int */
   return self::C1|(it);
 static inline-class-member method C1|methodC1(lowered final self::C1 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(42){(core::num) → core::int};
 static inline-class-member method C1|get#methodC1(lowered final self::C1 /* = core::int */ #this) → () → core::int
   return () → core::int => self::C1|methodC1(#this);
-static inline-class-member method C2|(dynamic it) → self::C2 /* = core::int */ {
+static inline-class-member method C2|(core::int it) → self::C2 /* = core::int */ {
   lowered final self::C2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C2|_#new#tearOff(dynamic it) → self::C2 /* = core::int */
+static inline-class-member method C2|_#new#tearOff(core::int it) → self::C2 /* = core::int */
   return self::C2|(it);
 static inline-class-member method C2|methodC2(lowered final self::C2 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(87){(core::num) → core::int};
 static inline-class-member method C2|get#methodC2(lowered final self::C2 /* = core::int */ #this) → () → core::int
   return () → core::int => self::C2|methodC2(#this);
-static inline-class-member method D1|(dynamic it) → self::D1 /* = core::int */ {
+static inline-class-member method D1|(core::int it) → self::D1 /* = core::int */ {
   lowered final self::D1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D1|_#new#tearOff(dynamic it) → self::D1 /* = core::int */
+static inline-class-member method D1|_#new#tearOff(core::int it) → self::D1 /* = core::int */
   return self::D1|(it);
 static inline-class-member method D1|methodD1(lowered final self::D1 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(123){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.outline.expect
index 90e936a..521318d 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.outline.expect
@@ -32,41 +32,41 @@
   constructor • = self::D1|;
   tearoff • = self::D1|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|(core::int it) → self::A /* = core::int */
   ;
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
 static inline-class-member method A|methodA(lowered final self::A /* = core::int */ #this) → core::int
   ;
 static inline-class-member method A|get#methodA(lowered final self::A /* = core::int */ #this) → () → core::int
   return () → core::int => self::A|methodA(#this);
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = self::B|::T% */
+static inline-class-member method B|<T extends core::Object? = dynamic>(self::B|::T% it) → self::B<self::B|::T%> /* = self::B|::T% */
   ;
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = self::B|_#new#tearOff::T% */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(self::B|_#new#tearOff::T% it) → self::B<self::B|_#new#tearOff::T%> /* = self::B|_#new#tearOff::T% */
   return self::B|<self::B|_#new#tearOff::T%>(it);
 static inline-class-member method B|methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|methodB::T%> /* = self::B|methodB::T% */ #this) → self::B|methodB::T%
   ;
 static inline-class-member method B|get#methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|get#methodB::T%> /* = self::B|get#methodB::T% */ #this) → () → self::B|get#methodB::T%
   return () → self::B|get#methodB::T% => self::B|methodB<self::B|get#methodB::T%>(#this);
-static inline-class-member method C1|(dynamic it) → self::C1 /* = core::int */
+static inline-class-member method C1|(core::int it) → self::C1 /* = core::int */
   ;
-static inline-class-member method C1|_#new#tearOff(dynamic it) → self::C1 /* = core::int */
+static inline-class-member method C1|_#new#tearOff(core::int it) → self::C1 /* = core::int */
   return self::C1|(it);
 static inline-class-member method C1|methodC1(lowered final self::C1 /* = core::int */ #this) → core::int
   ;
 static inline-class-member method C1|get#methodC1(lowered final self::C1 /* = core::int */ #this) → () → core::int
   return () → core::int => self::C1|methodC1(#this);
-static inline-class-member method C2|(dynamic it) → self::C2 /* = core::int */
+static inline-class-member method C2|(core::int it) → self::C2 /* = core::int */
   ;
-static inline-class-member method C2|_#new#tearOff(dynamic it) → self::C2 /* = core::int */
+static inline-class-member method C2|_#new#tearOff(core::int it) → self::C2 /* = core::int */
   return self::C2|(it);
 static inline-class-member method C2|methodC2(lowered final self::C2 /* = core::int */ #this) → core::int
   ;
 static inline-class-member method C2|get#methodC2(lowered final self::C2 /* = core::int */ #this) → () → core::int
   return () → core::int => self::C2|methodC2(#this);
-static inline-class-member method D1|(dynamic it) → self::D1 /* = core::int */
+static inline-class-member method D1|(core::int it) → self::D1 /* = core::int */
   ;
-static inline-class-member method D1|_#new#tearOff(dynamic it) → self::D1 /* = core::int */
+static inline-class-member method D1|_#new#tearOff(core::int it) → self::D1 /* = core::int */
   return self::D1|(it);
 static inline-class-member method D1|methodD1(lowered final self::D1 /* = core::int */ #this) → core::int
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.transformed.expect
index 570ebd2..43625ff 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/implements.dart.weak.transformed.expect
@@ -230,51 +230,51 @@
   constructor • = self::D1|;
   tearoff • = self::D1|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
 static inline-class-member method A|methodA(lowered final self::A /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(5){(core::num) → core::int};
 static inline-class-member method A|get#methodA(lowered final self::A /* = core::int */ #this) → () → core::int
   return () → core::int => self::A|methodA(#this);
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = self::B|::T% */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(self::B|::T% it) → self::B<self::B|::T%> /* = self::B|::T% */ {
   lowered final self::B<self::B|::T%> /* = self::B|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = self::B|_#new#tearOff::T% */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(self::B|_#new#tearOff::T% it) → self::B<self::B|_#new#tearOff::T%> /* = self::B|_#new#tearOff::T% */
   return self::B|<self::B|_#new#tearOff::T%>(it);
 static inline-class-member method B|methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|methodB::T%> /* = self::B|methodB::T% */ #this) → self::B|methodB::T%
   return #this as{Unchecked} self::B|methodB::T%;
 static inline-class-member method B|get#methodB<T extends core::Object? = dynamic>(lowered final self::B<self::B|get#methodB::T%> /* = self::B|get#methodB::T% */ #this) → () → self::B|get#methodB::T%
   return () → self::B|get#methodB::T% => self::B|methodB<self::B|get#methodB::T%>(#this);
-static inline-class-member method C1|(dynamic it) → self::C1 /* = core::int */ {
+static inline-class-member method C1|(core::int it) → self::C1 /* = core::int */ {
   lowered final self::C1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C1|_#new#tearOff(dynamic it) → self::C1 /* = core::int */
+static inline-class-member method C1|_#new#tearOff(core::int it) → self::C1 /* = core::int */
   return self::C1|(it);
 static inline-class-member method C1|methodC1(lowered final self::C1 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(42){(core::num) → core::int};
 static inline-class-member method C1|get#methodC1(lowered final self::C1 /* = core::int */ #this) → () → core::int
   return () → core::int => self::C1|methodC1(#this);
-static inline-class-member method C2|(dynamic it) → self::C2 /* = core::int */ {
+static inline-class-member method C2|(core::int it) → self::C2 /* = core::int */ {
   lowered final self::C2 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C2|_#new#tearOff(dynamic it) → self::C2 /* = core::int */
+static inline-class-member method C2|_#new#tearOff(core::int it) → self::C2 /* = core::int */
   return self::C2|(it);
 static inline-class-member method C2|methodC2(lowered final self::C2 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(87){(core::num) → core::int};
 static inline-class-member method C2|get#methodC2(lowered final self::C2 /* = core::int */ #this) → () → core::int
   return () → core::int => self::C2|methodC2(#this);
-static inline-class-member method D1|(dynamic it) → self::D1 /* = core::int */ {
+static inline-class-member method D1|(core::int it) → self::D1 /* = core::int */ {
   lowered final self::D1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D1|_#new#tearOff(dynamic it) → self::D1 /* = core::int */
+static inline-class-member method D1|_#new#tearOff(core::int it) → self::D1 /* = core::int */
   return self::D1|(it);
 static inline-class-member method D1|methodD1(lowered final self::D1 /* = core::int */ #this) → core::int
   return (#this as{Unchecked} core::int).{core::num::+}(123){(core::num) → core::int};
diff --git a/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.strong.expect
index 16f3480..26155a4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.strong.expect
@@ -51,11 +51,11 @@
   constructor • = self::Class6|;
   tearoff • = self::Class6|_#new#tearOff;
 }
-static inline-class-member method Class1|_(dynamic field) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|_(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class1|_#_#tearOff(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#_#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|_(field);
 static inline-class-member method Class1|(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
@@ -63,11 +63,11 @@
 }
 static inline-class-member method Class1|_#new#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|(field);
-static inline-class-member method Class2|_(dynamic field) → self::Class2 /* = core::int */ {
+static inline-class-member method Class2|_(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class2|_#_#tearOff(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|_#_#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|_(field);
 static inline-class-member method Class2|(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
@@ -75,17 +75,17 @@
 }
 static inline-class-member method Class2|_#new#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|(field);
-static inline-class-member method Class3|_(dynamic field) → self::Class3 /* = core::int */ {
+static inline-class-member method Class3|_(core::int field) → self::Class3 /* = core::int */ {
   lowered final self::Class3 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class3|_#_#tearOff(dynamic field) → self::Class3 /* = core::int */
+static inline-class-member method Class3|_#_#tearOff(core::int field) → self::Class3 /* = core::int */
   return self::Class3|_(field);
-static inline-class-member method Class4|_(dynamic field) → self::Class4 /* = core::int */ {
+static inline-class-member method Class4|_(core::int field) → self::Class4 /* = core::int */ {
   lowered final self::Class4 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class4|_#_#tearOff(dynamic field) → self::Class4 /* = core::int */
+static inline-class-member method Class4|_#_#tearOff(core::int field) → self::Class4 /* = core::int */
   return self::Class4|_(field);
 static inline-class-member method Class4|(core::int field, dynamic nonexisting) → self::Class4 /* = core::int */ {
   lowered final self::Class4 /* = core::int */ #this = field;
@@ -96,11 +96,11 @@
 }
 static inline-class-member method Class4|_#new#tearOff(core::int field, dynamic nonexisting) → self::Class4 /* = core::int */
   return self::Class4|(field, nonexisting);
-static inline-class-member method Class5|_(dynamic field) → self::Class5 /* = core::int */ {
+static inline-class-member method Class5|_(core::int field) → self::Class5 /* = core::int */ {
   lowered final self::Class5 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class5|_#_#tearOff(dynamic field) → self::Class5 /* = core::int */
+static inline-class-member method Class5|_#_#tearOff(core::int field) → self::Class5 /* = core::int */
   return self::Class5|_(field);
 static inline-class-member method Class5|(core::int field) → self::Class5 /* = core::int */ {
   lowered final self::Class5 /* = core::int */ #this = field;
@@ -111,11 +111,11 @@
 }
 static inline-class-member method Class5|_#new#tearOff(core::int field) → self::Class5 /* = core::int */
   return self::Class5|(field);
-static inline-class-member method Class6|_(dynamic field) → self::Class6 /* = core::int */ {
+static inline-class-member method Class6|_(core::int field) → self::Class6 /* = core::int */ {
   lowered final self::Class6 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class6|_#_#tearOff(dynamic field) → self::Class6 /* = core::int */
+static inline-class-member method Class6|_#_#tearOff(core::int field) → self::Class6 /* = core::int */
   return self::Class6|_(field);
 static inline-class-member method Class6|(core::int field) → self::Class6 /* = core::int */ {
   lowered final self::Class6 /* = core::int */ #this = field;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.strong.transformed.expect
index 16f3480..26155a4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.strong.transformed.expect
@@ -51,11 +51,11 @@
   constructor • = self::Class6|;
   tearoff • = self::Class6|_#new#tearOff;
 }
-static inline-class-member method Class1|_(dynamic field) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|_(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class1|_#_#tearOff(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#_#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|_(field);
 static inline-class-member method Class1|(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
@@ -63,11 +63,11 @@
 }
 static inline-class-member method Class1|_#new#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|(field);
-static inline-class-member method Class2|_(dynamic field) → self::Class2 /* = core::int */ {
+static inline-class-member method Class2|_(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class2|_#_#tearOff(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|_#_#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|_(field);
 static inline-class-member method Class2|(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
@@ -75,17 +75,17 @@
 }
 static inline-class-member method Class2|_#new#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|(field);
-static inline-class-member method Class3|_(dynamic field) → self::Class3 /* = core::int */ {
+static inline-class-member method Class3|_(core::int field) → self::Class3 /* = core::int */ {
   lowered final self::Class3 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class3|_#_#tearOff(dynamic field) → self::Class3 /* = core::int */
+static inline-class-member method Class3|_#_#tearOff(core::int field) → self::Class3 /* = core::int */
   return self::Class3|_(field);
-static inline-class-member method Class4|_(dynamic field) → self::Class4 /* = core::int */ {
+static inline-class-member method Class4|_(core::int field) → self::Class4 /* = core::int */ {
   lowered final self::Class4 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class4|_#_#tearOff(dynamic field) → self::Class4 /* = core::int */
+static inline-class-member method Class4|_#_#tearOff(core::int field) → self::Class4 /* = core::int */
   return self::Class4|_(field);
 static inline-class-member method Class4|(core::int field, dynamic nonexisting) → self::Class4 /* = core::int */ {
   lowered final self::Class4 /* = core::int */ #this = field;
@@ -96,11 +96,11 @@
 }
 static inline-class-member method Class4|_#new#tearOff(core::int field, dynamic nonexisting) → self::Class4 /* = core::int */
   return self::Class4|(field, nonexisting);
-static inline-class-member method Class5|_(dynamic field) → self::Class5 /* = core::int */ {
+static inline-class-member method Class5|_(core::int field) → self::Class5 /* = core::int */ {
   lowered final self::Class5 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class5|_#_#tearOff(dynamic field) → self::Class5 /* = core::int */
+static inline-class-member method Class5|_#_#tearOff(core::int field) → self::Class5 /* = core::int */
   return self::Class5|_(field);
 static inline-class-member method Class5|(core::int field) → self::Class5 /* = core::int */ {
   lowered final self::Class5 /* = core::int */ #this = field;
@@ -111,11 +111,11 @@
 }
 static inline-class-member method Class5|_#new#tearOff(core::int field) → self::Class5 /* = core::int */
   return self::Class5|(field);
-static inline-class-member method Class6|_(dynamic field) → self::Class6 /* = core::int */ {
+static inline-class-member method Class6|_(core::int field) → self::Class6 /* = core::int */ {
   lowered final self::Class6 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class6|_#_#tearOff(dynamic field) → self::Class6 /* = core::int */
+static inline-class-member method Class6|_#_#tearOff(core::int field) → self::Class6 /* = core::int */
   return self::Class6|_(field);
 static inline-class-member method Class6|(core::int field) → self::Class6 /* = core::int */ {
   lowered final self::Class6 /* = core::int */ #this = field;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.expect
index 16f3480..26155a4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.expect
@@ -51,11 +51,11 @@
   constructor • = self::Class6|;
   tearoff • = self::Class6|_#new#tearOff;
 }
-static inline-class-member method Class1|_(dynamic field) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|_(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class1|_#_#tearOff(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#_#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|_(field);
 static inline-class-member method Class1|(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
@@ -63,11 +63,11 @@
 }
 static inline-class-member method Class1|_#new#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|(field);
-static inline-class-member method Class2|_(dynamic field) → self::Class2 /* = core::int */ {
+static inline-class-member method Class2|_(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class2|_#_#tearOff(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|_#_#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|_(field);
 static inline-class-member method Class2|(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
@@ -75,17 +75,17 @@
 }
 static inline-class-member method Class2|_#new#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|(field);
-static inline-class-member method Class3|_(dynamic field) → self::Class3 /* = core::int */ {
+static inline-class-member method Class3|_(core::int field) → self::Class3 /* = core::int */ {
   lowered final self::Class3 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class3|_#_#tearOff(dynamic field) → self::Class3 /* = core::int */
+static inline-class-member method Class3|_#_#tearOff(core::int field) → self::Class3 /* = core::int */
   return self::Class3|_(field);
-static inline-class-member method Class4|_(dynamic field) → self::Class4 /* = core::int */ {
+static inline-class-member method Class4|_(core::int field) → self::Class4 /* = core::int */ {
   lowered final self::Class4 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class4|_#_#tearOff(dynamic field) → self::Class4 /* = core::int */
+static inline-class-member method Class4|_#_#tearOff(core::int field) → self::Class4 /* = core::int */
   return self::Class4|_(field);
 static inline-class-member method Class4|(core::int field, dynamic nonexisting) → self::Class4 /* = core::int */ {
   lowered final self::Class4 /* = core::int */ #this = field;
@@ -96,11 +96,11 @@
 }
 static inline-class-member method Class4|_#new#tearOff(core::int field, dynamic nonexisting) → self::Class4 /* = core::int */
   return self::Class4|(field, nonexisting);
-static inline-class-member method Class5|_(dynamic field) → self::Class5 /* = core::int */ {
+static inline-class-member method Class5|_(core::int field) → self::Class5 /* = core::int */ {
   lowered final self::Class5 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class5|_#_#tearOff(dynamic field) → self::Class5 /* = core::int */
+static inline-class-member method Class5|_#_#tearOff(core::int field) → self::Class5 /* = core::int */
   return self::Class5|_(field);
 static inline-class-member method Class5|(core::int field) → self::Class5 /* = core::int */ {
   lowered final self::Class5 /* = core::int */ #this = field;
@@ -111,11 +111,11 @@
 }
 static inline-class-member method Class5|_#new#tearOff(core::int field) → self::Class5 /* = core::int */
   return self::Class5|(field);
-static inline-class-member method Class6|_(dynamic field) → self::Class6 /* = core::int */ {
+static inline-class-member method Class6|_(core::int field) → self::Class6 /* = core::int */ {
   lowered final self::Class6 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class6|_#_#tearOff(dynamic field) → self::Class6 /* = core::int */
+static inline-class-member method Class6|_#_#tearOff(core::int field) → self::Class6 /* = core::int */
   return self::Class6|_(field);
 static inline-class-member method Class6|(core::int field) → self::Class6 /* = core::int */ {
   lowered final self::Class6 /* = core::int */ #this = field;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.modular.expect
index 16f3480..26155a4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.modular.expect
@@ -51,11 +51,11 @@
   constructor • = self::Class6|;
   tearoff • = self::Class6|_#new#tearOff;
 }
-static inline-class-member method Class1|_(dynamic field) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|_(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class1|_#_#tearOff(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#_#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|_(field);
 static inline-class-member method Class1|(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
@@ -63,11 +63,11 @@
 }
 static inline-class-member method Class1|_#new#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|(field);
-static inline-class-member method Class2|_(dynamic field) → self::Class2 /* = core::int */ {
+static inline-class-member method Class2|_(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class2|_#_#tearOff(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|_#_#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|_(field);
 static inline-class-member method Class2|(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
@@ -75,17 +75,17 @@
 }
 static inline-class-member method Class2|_#new#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|(field);
-static inline-class-member method Class3|_(dynamic field) → self::Class3 /* = core::int */ {
+static inline-class-member method Class3|_(core::int field) → self::Class3 /* = core::int */ {
   lowered final self::Class3 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class3|_#_#tearOff(dynamic field) → self::Class3 /* = core::int */
+static inline-class-member method Class3|_#_#tearOff(core::int field) → self::Class3 /* = core::int */
   return self::Class3|_(field);
-static inline-class-member method Class4|_(dynamic field) → self::Class4 /* = core::int */ {
+static inline-class-member method Class4|_(core::int field) → self::Class4 /* = core::int */ {
   lowered final self::Class4 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class4|_#_#tearOff(dynamic field) → self::Class4 /* = core::int */
+static inline-class-member method Class4|_#_#tearOff(core::int field) → self::Class4 /* = core::int */
   return self::Class4|_(field);
 static inline-class-member method Class4|(core::int field, dynamic nonexisting) → self::Class4 /* = core::int */ {
   lowered final self::Class4 /* = core::int */ #this = field;
@@ -96,11 +96,11 @@
 }
 static inline-class-member method Class4|_#new#tearOff(core::int field, dynamic nonexisting) → self::Class4 /* = core::int */
   return self::Class4|(field, nonexisting);
-static inline-class-member method Class5|_(dynamic field) → self::Class5 /* = core::int */ {
+static inline-class-member method Class5|_(core::int field) → self::Class5 /* = core::int */ {
   lowered final self::Class5 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class5|_#_#tearOff(dynamic field) → self::Class5 /* = core::int */
+static inline-class-member method Class5|_#_#tearOff(core::int field) → self::Class5 /* = core::int */
   return self::Class5|_(field);
 static inline-class-member method Class5|(core::int field) → self::Class5 /* = core::int */ {
   lowered final self::Class5 /* = core::int */ #this = field;
@@ -111,11 +111,11 @@
 }
 static inline-class-member method Class5|_#new#tearOff(core::int field) → self::Class5 /* = core::int */
   return self::Class5|(field);
-static inline-class-member method Class6|_(dynamic field) → self::Class6 /* = core::int */ {
+static inline-class-member method Class6|_(core::int field) → self::Class6 /* = core::int */ {
   lowered final self::Class6 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class6|_#_#tearOff(dynamic field) → self::Class6 /* = core::int */
+static inline-class-member method Class6|_#_#tearOff(core::int field) → self::Class6 /* = core::int */
   return self::Class6|_(field);
 static inline-class-member method Class6|(core::int field) → self::Class6 /* = core::int */ {
   lowered final self::Class6 /* = core::int */ #this = field;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.outline.expect
index 54f9abb..7095023 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.outline.expect
@@ -36,45 +36,45 @@
   constructor • = self::Class6|;
   tearoff • = self::Class6|_#new#tearOff;
 }
-static inline-class-member method Class1|_(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_(core::int field) → self::Class1 /* = core::int */
   ;
-static inline-class-member method Class1|_#_#tearOff(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#_#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|_(field);
 static inline-class-member method Class1|(core::int field) → self::Class1 /* = core::int */
   ;
 static inline-class-member method Class1|_#new#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|(field);
-static inline-class-member method Class2|_(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|_(core::int field) → self::Class2 /* = core::int */
   ;
-static inline-class-member method Class2|_#_#tearOff(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|_#_#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|_(field);
 static inline-class-member method Class2|(core::int field) → self::Class2 /* = core::int */
   ;
 static inline-class-member method Class2|_#new#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|(field);
-static inline-class-member method Class3|_(dynamic field) → self::Class3 /* = core::int */
+static inline-class-member method Class3|_(core::int field) → self::Class3 /* = core::int */
   ;
-static inline-class-member method Class3|_#_#tearOff(dynamic field) → self::Class3 /* = core::int */
+static inline-class-member method Class3|_#_#tearOff(core::int field) → self::Class3 /* = core::int */
   return self::Class3|_(field);
-static inline-class-member method Class4|_(dynamic field) → self::Class4 /* = core::int */
+static inline-class-member method Class4|_(core::int field) → self::Class4 /* = core::int */
   ;
-static inline-class-member method Class4|_#_#tearOff(dynamic field) → self::Class4 /* = core::int */
+static inline-class-member method Class4|_#_#tearOff(core::int field) → self::Class4 /* = core::int */
   return self::Class4|_(field);
 static inline-class-member method Class4|(core::int field, dynamic nonexisting) → self::Class4 /* = core::int */
   ;
 static inline-class-member method Class4|_#new#tearOff(core::int field, dynamic nonexisting) → self::Class4 /* = core::int */
   return self::Class4|(field, nonexisting);
-static inline-class-member method Class5|_(dynamic field) → self::Class5 /* = core::int */
+static inline-class-member method Class5|_(core::int field) → self::Class5 /* = core::int */
   ;
-static inline-class-member method Class5|_#_#tearOff(dynamic field) → self::Class5 /* = core::int */
+static inline-class-member method Class5|_#_#tearOff(core::int field) → self::Class5 /* = core::int */
   return self::Class5|_(field);
 static inline-class-member method Class5|(core::int field) → self::Class5 /* = core::int */
   ;
 static inline-class-member method Class5|_#new#tearOff(core::int field) → self::Class5 /* = core::int */
   return self::Class5|(field);
-static inline-class-member method Class6|_(dynamic field) → self::Class6 /* = core::int */
+static inline-class-member method Class6|_(core::int field) → self::Class6 /* = core::int */
   ;
-static inline-class-member method Class6|_#_#tearOff(dynamic field) → self::Class6 /* = core::int */
+static inline-class-member method Class6|_#_#tearOff(core::int field) → self::Class6 /* = core::int */
   return self::Class6|_(field);
 static inline-class-member method Class6|(core::int field) → self::Class6 /* = core::int */
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.transformed.expect
index 16f3480..26155a4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/initializers.dart.weak.transformed.expect
@@ -51,11 +51,11 @@
   constructor • = self::Class6|;
   tearoff • = self::Class6|_#new#tearOff;
 }
-static inline-class-member method Class1|_(dynamic field) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|_(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class1|_#_#tearOff(dynamic field) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#_#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|_(field);
 static inline-class-member method Class1|(core::int field) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = field;
@@ -63,11 +63,11 @@
 }
 static inline-class-member method Class1|_#new#tearOff(core::int field) → self::Class1 /* = core::int */
   return self::Class1|(field);
-static inline-class-member method Class2|_(dynamic field) → self::Class2 /* = core::int */ {
+static inline-class-member method Class2|_(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class2|_#_#tearOff(dynamic field) → self::Class2 /* = core::int */
+static inline-class-member method Class2|_#_#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|_(field);
 static inline-class-member method Class2|(core::int field) → self::Class2 /* = core::int */ {
   lowered final self::Class2 /* = core::int */ #this = field;
@@ -75,17 +75,17 @@
 }
 static inline-class-member method Class2|_#new#tearOff(core::int field) → self::Class2 /* = core::int */
   return self::Class2|(field);
-static inline-class-member method Class3|_(dynamic field) → self::Class3 /* = core::int */ {
+static inline-class-member method Class3|_(core::int field) → self::Class3 /* = core::int */ {
   lowered final self::Class3 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class3|_#_#tearOff(dynamic field) → self::Class3 /* = core::int */
+static inline-class-member method Class3|_#_#tearOff(core::int field) → self::Class3 /* = core::int */
   return self::Class3|_(field);
-static inline-class-member method Class4|_(dynamic field) → self::Class4 /* = core::int */ {
+static inline-class-member method Class4|_(core::int field) → self::Class4 /* = core::int */ {
   lowered final self::Class4 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class4|_#_#tearOff(dynamic field) → self::Class4 /* = core::int */
+static inline-class-member method Class4|_#_#tearOff(core::int field) → self::Class4 /* = core::int */
   return self::Class4|_(field);
 static inline-class-member method Class4|(core::int field, dynamic nonexisting) → self::Class4 /* = core::int */ {
   lowered final self::Class4 /* = core::int */ #this = field;
@@ -96,11 +96,11 @@
 }
 static inline-class-member method Class4|_#new#tearOff(core::int field, dynamic nonexisting) → self::Class4 /* = core::int */
   return self::Class4|(field, nonexisting);
-static inline-class-member method Class5|_(dynamic field) → self::Class5 /* = core::int */ {
+static inline-class-member method Class5|_(core::int field) → self::Class5 /* = core::int */ {
   lowered final self::Class5 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class5|_#_#tearOff(dynamic field) → self::Class5 /* = core::int */
+static inline-class-member method Class5|_#_#tearOff(core::int field) → self::Class5 /* = core::int */
   return self::Class5|_(field);
 static inline-class-member method Class5|(core::int field) → self::Class5 /* = core::int */ {
   lowered final self::Class5 /* = core::int */ #this = field;
@@ -111,11 +111,11 @@
 }
 static inline-class-member method Class5|_#new#tearOff(core::int field) → self::Class5 /* = core::int */
   return self::Class5|(field);
-static inline-class-member method Class6|_(dynamic field) → self::Class6 /* = core::int */ {
+static inline-class-member method Class6|_(core::int field) → self::Class6 /* = core::int */ {
   lowered final self::Class6 /* = core::int */ #this = field;
   return #this;
 }
-static inline-class-member method Class6|_#_#tearOff(dynamic field) → self::Class6 /* = core::int */
+static inline-class-member method Class6|_#_#tearOff(core::int field) → self::Class6 /* = core::int */
   return self::Class6|_(field);
 static inline-class-member method Class6|(core::int field) → self::Class6 /* = core::int */ {
   lowered final self::Class6 /* = core::int */ #this = field;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.strong.expect
index 75c1dce..3de6f0e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.strong.expect
@@ -12,16 +12,16 @@
   constructor • = self::Class3|;
   tearoff • = self::Class3|_#new#tearOff;
 }
-static inline-class-member method Class1|(dynamic it) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int it) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int it) → self::Class1 /* = core::int */
   return self::Class1|(it);
-static inline-class-member method Class3|<T extends core::Object? = dynamic>(dynamic it) → self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ {
+static inline-class-member method Class3|<T extends core::Object? = dynamic>(core::List<self::Class3|::T%> it) → self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ {
   lowered final self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method Class3|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Class3<self::Class3|_#new#tearOff::T%> /* = core::List<self::Class3|_#new#tearOff::T%> */
+static inline-class-member method Class3|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::Class3|_#new#tearOff::T%> it) → self::Class3<self::Class3|_#new#tearOff::T%> /* = core::List<self::Class3|_#new#tearOff::T%> */
   return self::Class3|<self::Class3|_#new#tearOff::T%>(it);
 static method method(self::Class1 /* = core::int */ c1, self::Class3<core::int> /* = core::List<core::int> */ c3) → dynamic {}
diff --git a/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.strong.transformed.expect
index 75c1dce..3de6f0e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.strong.transformed.expect
@@ -12,16 +12,16 @@
   constructor • = self::Class3|;
   tearoff • = self::Class3|_#new#tearOff;
 }
-static inline-class-member method Class1|(dynamic it) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int it) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int it) → self::Class1 /* = core::int */
   return self::Class1|(it);
-static inline-class-member method Class3|<T extends core::Object? = dynamic>(dynamic it) → self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ {
+static inline-class-member method Class3|<T extends core::Object? = dynamic>(core::List<self::Class3|::T%> it) → self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ {
   lowered final self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method Class3|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Class3<self::Class3|_#new#tearOff::T%> /* = core::List<self::Class3|_#new#tearOff::T%> */
+static inline-class-member method Class3|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::Class3|_#new#tearOff::T%> it) → self::Class3<self::Class3|_#new#tearOff::T%> /* = core::List<self::Class3|_#new#tearOff::T%> */
   return self::Class3|<self::Class3|_#new#tearOff::T%>(it);
 static method method(self::Class1 /* = core::int */ c1, self::Class3<core::int> /* = core::List<core::int> */ c3) → dynamic {}
diff --git a/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.expect
index 75c1dce..3de6f0e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.expect
@@ -12,16 +12,16 @@
   constructor • = self::Class3|;
   tearoff • = self::Class3|_#new#tearOff;
 }
-static inline-class-member method Class1|(dynamic it) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int it) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int it) → self::Class1 /* = core::int */
   return self::Class1|(it);
-static inline-class-member method Class3|<T extends core::Object? = dynamic>(dynamic it) → self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ {
+static inline-class-member method Class3|<T extends core::Object? = dynamic>(core::List<self::Class3|::T%> it) → self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ {
   lowered final self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method Class3|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Class3<self::Class3|_#new#tearOff::T%> /* = core::List<self::Class3|_#new#tearOff::T%> */
+static inline-class-member method Class3|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::Class3|_#new#tearOff::T%> it) → self::Class3<self::Class3|_#new#tearOff::T%> /* = core::List<self::Class3|_#new#tearOff::T%> */
   return self::Class3|<self::Class3|_#new#tearOff::T%>(it);
 static method method(self::Class1 /* = core::int */ c1, self::Class3<core::int> /* = core::List<core::int> */ c3) → dynamic {}
diff --git a/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.modular.expect
index 75c1dce..3de6f0e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.modular.expect
@@ -12,16 +12,16 @@
   constructor • = self::Class3|;
   tearoff • = self::Class3|_#new#tearOff;
 }
-static inline-class-member method Class1|(dynamic it) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int it) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int it) → self::Class1 /* = core::int */
   return self::Class1|(it);
-static inline-class-member method Class3|<T extends core::Object? = dynamic>(dynamic it) → self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ {
+static inline-class-member method Class3|<T extends core::Object? = dynamic>(core::List<self::Class3|::T%> it) → self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ {
   lowered final self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method Class3|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Class3<self::Class3|_#new#tearOff::T%> /* = core::List<self::Class3|_#new#tearOff::T%> */
+static inline-class-member method Class3|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::Class3|_#new#tearOff::T%> it) → self::Class3<self::Class3|_#new#tearOff::T%> /* = core::List<self::Class3|_#new#tearOff::T%> */
   return self::Class3|<self::Class3|_#new#tearOff::T%>(it);
 static method method(self::Class1 /* = core::int */ c1, self::Class3<core::int> /* = core::List<core::int> */ c3) → dynamic {}
diff --git a/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.outline.expect
index d05e60b..333265e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.outline.expect
@@ -12,13 +12,13 @@
   constructor • = self::Class3|;
   tearoff • = self::Class3|_#new#tearOff;
 }
-static inline-class-member method Class1|(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|(core::int it) → self::Class1 /* = core::int */
   ;
-static inline-class-member method Class1|_#new#tearOff(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int it) → self::Class1 /* = core::int */
   return self::Class1|(it);
-static inline-class-member method Class3|<T extends core::Object? = dynamic>(dynamic it) → self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */
+static inline-class-member method Class3|<T extends core::Object? = dynamic>(core::List<self::Class3|::T%> it) → self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */
   ;
-static inline-class-member method Class3|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Class3<self::Class3|_#new#tearOff::T%> /* = core::List<self::Class3|_#new#tearOff::T%> */
+static inline-class-member method Class3|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::Class3|_#new#tearOff::T%> it) → self::Class3<self::Class3|_#new#tearOff::T%> /* = core::List<self::Class3|_#new#tearOff::T%> */
   return self::Class3|<self::Class3|_#new#tearOff::T%>(it);
 static method method(self::Class1 /* = core::int */ c1, self::Class3<core::int> /* = core::List<core::int> */ c3) → dynamic
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.transformed.expect
index 75c1dce..3de6f0e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/inline_class_declaration.dart.weak.transformed.expect
@@ -12,16 +12,16 @@
   constructor • = self::Class3|;
   tearoff • = self::Class3|_#new#tearOff;
 }
-static inline-class-member method Class1|(dynamic it) → self::Class1 /* = core::int */ {
+static inline-class-member method Class1|(core::int it) → self::Class1 /* = core::int */ {
   lowered final self::Class1 /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class1|_#new#tearOff(dynamic it) → self::Class1 /* = core::int */
+static inline-class-member method Class1|_#new#tearOff(core::int it) → self::Class1 /* = core::int */
   return self::Class1|(it);
-static inline-class-member method Class3|<T extends core::Object? = dynamic>(dynamic it) → self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ {
+static inline-class-member method Class3|<T extends core::Object? = dynamic>(core::List<self::Class3|::T%> it) → self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ {
   lowered final self::Class3<self::Class3|::T%> /* = core::List<self::Class3|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method Class3|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Class3<self::Class3|_#new#tearOff::T%> /* = core::List<self::Class3|_#new#tearOff::T%> */
+static inline-class-member method Class3|_#new#tearOff<T extends core::Object? = dynamic>(core::List<self::Class3|_#new#tearOff::T%> it) → self::Class3<self::Class3|_#new#tearOff::T%> /* = core::List<self::Class3|_#new#tearOff::T%> */
   return self::Class3|<self::Class3|_#new#tearOff::T%>(it);
 static method method(self::Class1 /* = core::int */ c1, self::Class3<core::int> /* = core::List<core::int> */ c3) → dynamic {}
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.strong.expect
index f6aefff..7ab0ec4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.strong.expect
@@ -6,11 +6,11 @@
   constructor • = self::I|;
   tearoff • = self::I|_#new#tearOff;
 }
-static inline-class-member method I|<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(dynamic value) → self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ {
+static inline-class-member method I|<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|::X% value) → self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ {
   lowered final self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ #this = value;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(dynamic value) → self::I<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%> /* = self::I|_#new#tearOff::X% */
+static inline-class-member method I|_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|_#new#tearOff::X% value) → self::I<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%> /* = self::I|_#new#tearOff::X% */
   return self::I|<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%>(value);
 static method f(self::I<core::int, core::String> /* = core::int */ i) → void {}
 static method main() → void {
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.strong.transformed.expect
index f6aefff..7ab0ec4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.strong.transformed.expect
@@ -6,11 +6,11 @@
   constructor • = self::I|;
   tearoff • = self::I|_#new#tearOff;
 }
-static inline-class-member method I|<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(dynamic value) → self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ {
+static inline-class-member method I|<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|::X% value) → self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ {
   lowered final self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ #this = value;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(dynamic value) → self::I<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%> /* = self::I|_#new#tearOff::X% */
+static inline-class-member method I|_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|_#new#tearOff::X% value) → self::I<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%> /* = self::I|_#new#tearOff::X% */
   return self::I|<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%>(value);
 static method f(self::I<core::int, core::String> /* = core::int */ i) → void {}
 static method main() → void {
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.expect
index f6aefff..7ab0ec4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.expect
@@ -6,11 +6,11 @@
   constructor • = self::I|;
   tearoff • = self::I|_#new#tearOff;
 }
-static inline-class-member method I|<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(dynamic value) → self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ {
+static inline-class-member method I|<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|::X% value) → self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ {
   lowered final self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ #this = value;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(dynamic value) → self::I<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%> /* = self::I|_#new#tearOff::X% */
+static inline-class-member method I|_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|_#new#tearOff::X% value) → self::I<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%> /* = self::I|_#new#tearOff::X% */
   return self::I|<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%>(value);
 static method f(self::I<core::int, core::String> /* = core::int */ i) → void {}
 static method main() → void {
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.modular.expect
index f6aefff..7ab0ec4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.modular.expect
@@ -6,11 +6,11 @@
   constructor • = self::I|;
   tearoff • = self::I|_#new#tearOff;
 }
-static inline-class-member method I|<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(dynamic value) → self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ {
+static inline-class-member method I|<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|::X% value) → self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ {
   lowered final self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ #this = value;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(dynamic value) → self::I<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%> /* = self::I|_#new#tearOff::X% */
+static inline-class-member method I|_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|_#new#tearOff::X% value) → self::I<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%> /* = self::I|_#new#tearOff::X% */
   return self::I|<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%>(value);
 static method f(self::I<core::int, core::String> /* = core::int */ i) → void {}
 static method main() → void {
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.outline.expect
index 6c72a28..f719b03 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.outline.expect
@@ -6,9 +6,9 @@
   constructor • = self::I|;
   tearoff • = self::I|_#new#tearOff;
 }
-static inline-class-member method I|<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(dynamic value) → self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */
+static inline-class-member method I|<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|::X% value) → self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */
   ;
-static inline-class-member method I|_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(dynamic value) → self::I<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%> /* = self::I|_#new#tearOff::X% */
+static inline-class-member method I|_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|_#new#tearOff::X% value) → self::I<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%> /* = self::I|_#new#tearOff::X% */
   return self::I|<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%>(value);
 static method f(self::I<core::int, core::String> /* = core::int */ i) → void
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.transformed.expect
index f6aefff..7ab0ec4 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51146.dart.weak.transformed.expect
@@ -6,11 +6,11 @@
   constructor • = self::I|;
   tearoff • = self::I|_#new#tearOff;
 }
-static inline-class-member method I|<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(dynamic value) → self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ {
+static inline-class-member method I|<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|::X% value) → self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ {
   lowered final self::I<self::I|::X%, self::I|::Y%> /* = self::I|::X% */ #this = value;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(dynamic value) → self::I<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%> /* = self::I|_#new#tearOff::X% */
+static inline-class-member method I|_#new#tearOff<X extends core::Object? = dynamic, Y extends core::Object? = dynamic>(self::I|_#new#tearOff::X% value) → self::I<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%> /* = self::I|_#new#tearOff::X% */
   return self::I|<self::I|_#new#tearOff::X%, self::I|_#new#tearOff::Y%>(value);
 static method f(self::I<core::int, core::String> /* = core::int */ i) → void {}
 static method main() → void {
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.strong.expect
index dce45a1..879c6b9 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.strong.expect
@@ -20,31 +20,31 @@
   static factory • = self::K|;
   static tearoff • = self::K|_#new#tearOff;
 }
-static inline-class-member method I|_(dynamic i) → self::I /* = core::int */ {
+static inline-class-member method I|_(core::int i) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method I|_#_#tearOff(dynamic i) → self::I /* = core::int */
+static inline-class-member method I|_#_#tearOff(core::int i) → self::I /* = core::int */
   return self::I|_(i);
 static inline-class-member method I|() → self::I /* = core::int */
   return 0 as self::I /* = core::int */;
 static inline-class-member method I|_#new#tearOff() → self::I /* = core::int */
   return self::I|();
-static inline-class-member method J|_(dynamic i) → self::J /* = core::int */ {
+static inline-class-member method J|_(core::int i) → self::J /* = core::int */ {
   lowered final self::J /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method J|_#_#tearOff(dynamic i) → self::J /* = core::int */
+static inline-class-member method J|_#_#tearOff(core::int i) → self::J /* = core::int */
   return self::J|_(i);
 static inline-class-member method J|(core::int i) → self::J /* = core::int */
   return self::J|_(i);
 static inline-class-member method J|_#new#tearOff(core::int i) → self::J /* = core::int */
   return self::J|(i);
-static inline-class-member method K|_<T extends core::Object? = dynamic>(dynamic i) → self::K<self::K|_::T%> /* = self::K|_::T% */ {
+static inline-class-member method K|_<T extends core::Object? = dynamic>(self::K|_::T% i) → self::K<self::K|_::T%> /* = self::K|_::T% */ {
   lowered final self::K<self::K|_::T%> /* = self::K|_::T% */ #this = i;
   return #this;
 }
-static inline-class-member method K|_#_#tearOff<T extends core::Object? = dynamic>(dynamic i) → self::K<self::K|_#_#tearOff::T%> /* = self::K|_#_#tearOff::T% */
+static inline-class-member method K|_#_#tearOff<T extends core::Object? = dynamic>(self::K|_#_#tearOff::T% i) → self::K<self::K|_#_#tearOff::T%> /* = self::K|_#_#tearOff::T% */
   return self::K|_<self::K|_#_#tearOff::T%>(i);
 static inline-class-member method K|<T extends core::Object? = dynamic>(self::K|::T% i) → self::K<self::K|::T%> /* = self::K|::T% */
   return self::K|_<self::K|::T%>(i);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.strong.transformed.expect
index dce45a1..879c6b9 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.strong.transformed.expect
@@ -20,31 +20,31 @@
   static factory • = self::K|;
   static tearoff • = self::K|_#new#tearOff;
 }
-static inline-class-member method I|_(dynamic i) → self::I /* = core::int */ {
+static inline-class-member method I|_(core::int i) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method I|_#_#tearOff(dynamic i) → self::I /* = core::int */
+static inline-class-member method I|_#_#tearOff(core::int i) → self::I /* = core::int */
   return self::I|_(i);
 static inline-class-member method I|() → self::I /* = core::int */
   return 0 as self::I /* = core::int */;
 static inline-class-member method I|_#new#tearOff() → self::I /* = core::int */
   return self::I|();
-static inline-class-member method J|_(dynamic i) → self::J /* = core::int */ {
+static inline-class-member method J|_(core::int i) → self::J /* = core::int */ {
   lowered final self::J /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method J|_#_#tearOff(dynamic i) → self::J /* = core::int */
+static inline-class-member method J|_#_#tearOff(core::int i) → self::J /* = core::int */
   return self::J|_(i);
 static inline-class-member method J|(core::int i) → self::J /* = core::int */
   return self::J|_(i);
 static inline-class-member method J|_#new#tearOff(core::int i) → self::J /* = core::int */
   return self::J|(i);
-static inline-class-member method K|_<T extends core::Object? = dynamic>(dynamic i) → self::K<self::K|_::T%> /* = self::K|_::T% */ {
+static inline-class-member method K|_<T extends core::Object? = dynamic>(self::K|_::T% i) → self::K<self::K|_::T%> /* = self::K|_::T% */ {
   lowered final self::K<self::K|_::T%> /* = self::K|_::T% */ #this = i;
   return #this;
 }
-static inline-class-member method K|_#_#tearOff<T extends core::Object? = dynamic>(dynamic i) → self::K<self::K|_#_#tearOff::T%> /* = self::K|_#_#tearOff::T% */
+static inline-class-member method K|_#_#tearOff<T extends core::Object? = dynamic>(self::K|_#_#tearOff::T% i) → self::K<self::K|_#_#tearOff::T%> /* = self::K|_#_#tearOff::T% */
   return self::K|_<self::K|_#_#tearOff::T%>(i);
 static inline-class-member method K|<T extends core::Object? = dynamic>(self::K|::T% i) → self::K<self::K|::T%> /* = self::K|::T% */
   return self::K|_<self::K|::T%>(i);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.expect
index ee18017..fb65f5e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.expect
@@ -20,31 +20,31 @@
   static factory • = self::K|;
   static tearoff • = self::K|_#new#tearOff;
 }
-static inline-class-member method I|_(dynamic i) → self::I /* = core::int */ {
+static inline-class-member method I|_(core::int i) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method I|_#_#tearOff(dynamic i) → self::I /* = core::int */
+static inline-class-member method I|_#_#tearOff(core::int i) → self::I /* = core::int */
   return self::I|_(i);
 static inline-class-member method I|() → self::I /* = core::int */
   return 0 as self::I /* = core::int */;
 static inline-class-member method I|_#new#tearOff() → self::I /* = core::int */
   return self::I|();
-static inline-class-member method J|_(dynamic i) → self::J /* = core::int */ {
+static inline-class-member method J|_(core::int i) → self::J /* = core::int */ {
   lowered final self::J /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method J|_#_#tearOff(dynamic i) → self::J /* = core::int */
+static inline-class-member method J|_#_#tearOff(core::int i) → self::J /* = core::int */
   return self::J|_(i);
 static inline-class-member method J|(core::int i) → self::J /* = core::int */
   return self::J|_(i);
 static inline-class-member method J|_#new#tearOff(core::int i) → self::J /* = core::int */
   return self::J|(i);
-static inline-class-member method K|_<T extends core::Object? = dynamic>(dynamic i) → self::K<self::K|_::T%> /* = self::K|_::T% */ {
+static inline-class-member method K|_<T extends core::Object? = dynamic>(self::K|_::T% i) → self::K<self::K|_::T%> /* = self::K|_::T% */ {
   lowered final self::K<self::K|_::T%> /* = self::K|_::T% */ #this = i;
   return #this;
 }
-static inline-class-member method K|_#_#tearOff<T extends core::Object? = dynamic>(dynamic i) → self::K<self::K|_#_#tearOff::T%> /* = self::K|_#_#tearOff::T% */
+static inline-class-member method K|_#_#tearOff<T extends core::Object? = dynamic>(self::K|_#_#tearOff::T% i) → self::K<self::K|_#_#tearOff::T%> /* = self::K|_#_#tearOff::T% */
   return self::K|_<self::K|_#_#tearOff::T%>(i);
 static inline-class-member method K|<T extends core::Object? = dynamic>(self::K|::T% i) → self::K<self::K|::T%> /* = self::K|::T% */
   return self::K|_<self::K|::T%>(i);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.modular.expect
index ee18017..fb65f5e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.modular.expect
@@ -20,31 +20,31 @@
   static factory • = self::K|;
   static tearoff • = self::K|_#new#tearOff;
 }
-static inline-class-member method I|_(dynamic i) → self::I /* = core::int */ {
+static inline-class-member method I|_(core::int i) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method I|_#_#tearOff(dynamic i) → self::I /* = core::int */
+static inline-class-member method I|_#_#tearOff(core::int i) → self::I /* = core::int */
   return self::I|_(i);
 static inline-class-member method I|() → self::I /* = core::int */
   return 0 as self::I /* = core::int */;
 static inline-class-member method I|_#new#tearOff() → self::I /* = core::int */
   return self::I|();
-static inline-class-member method J|_(dynamic i) → self::J /* = core::int */ {
+static inline-class-member method J|_(core::int i) → self::J /* = core::int */ {
   lowered final self::J /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method J|_#_#tearOff(dynamic i) → self::J /* = core::int */
+static inline-class-member method J|_#_#tearOff(core::int i) → self::J /* = core::int */
   return self::J|_(i);
 static inline-class-member method J|(core::int i) → self::J /* = core::int */
   return self::J|_(i);
 static inline-class-member method J|_#new#tearOff(core::int i) → self::J /* = core::int */
   return self::J|(i);
-static inline-class-member method K|_<T extends core::Object? = dynamic>(dynamic i) → self::K<self::K|_::T%> /* = self::K|_::T% */ {
+static inline-class-member method K|_<T extends core::Object? = dynamic>(self::K|_::T% i) → self::K<self::K|_::T%> /* = self::K|_::T% */ {
   lowered final self::K<self::K|_::T%> /* = self::K|_::T% */ #this = i;
   return #this;
 }
-static inline-class-member method K|_#_#tearOff<T extends core::Object? = dynamic>(dynamic i) → self::K<self::K|_#_#tearOff::T%> /* = self::K|_#_#tearOff::T% */
+static inline-class-member method K|_#_#tearOff<T extends core::Object? = dynamic>(self::K|_#_#tearOff::T% i) → self::K<self::K|_#_#tearOff::T%> /* = self::K|_#_#tearOff::T% */
   return self::K|_<self::K|_#_#tearOff::T%>(i);
 static inline-class-member method K|<T extends core::Object? = dynamic>(self::K|::T% i) → self::K<self::K|::T%> /* = self::K|::T% */
   return self::K|_<self::K|::T%>(i);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.outline.expect
index f31f0ec..a6f7724 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.outline.expect
@@ -20,25 +20,25 @@
   static factory • = self::K|;
   static tearoff • = self::K|_#new#tearOff;
 }
-static inline-class-member method I|_(dynamic i) → self::I /* = core::int */
+static inline-class-member method I|_(core::int i) → self::I /* = core::int */
   ;
-static inline-class-member method I|_#_#tearOff(dynamic i) → self::I /* = core::int */
+static inline-class-member method I|_#_#tearOff(core::int i) → self::I /* = core::int */
   return self::I|_(i);
 static inline-class-member method I|() → self::I /* = core::int */
   ;
 static inline-class-member method I|_#new#tearOff() → self::I /* = core::int */
   return self::I|();
-static inline-class-member method J|_(dynamic i) → self::J /* = core::int */
+static inline-class-member method J|_(core::int i) → self::J /* = core::int */
   ;
-static inline-class-member method J|_#_#tearOff(dynamic i) → self::J /* = core::int */
+static inline-class-member method J|_#_#tearOff(core::int i) → self::J /* = core::int */
   return self::J|_(i);
 static inline-class-member method J|(core::int i) → self::J /* = core::int */
   ;
 static inline-class-member method J|_#new#tearOff(core::int i) → self::J /* = core::int */
   return self::J|(i);
-static inline-class-member method K|_<T extends core::Object? = dynamic>(dynamic i) → self::K<self::K|_::T%> /* = self::K|_::T% */
+static inline-class-member method K|_<T extends core::Object? = dynamic>(self::K|_::T% i) → self::K<self::K|_::T%> /* = self::K|_::T% */
   ;
-static inline-class-member method K|_#_#tearOff<T extends core::Object? = dynamic>(dynamic i) → self::K<self::K|_#_#tearOff::T%> /* = self::K|_#_#tearOff::T% */
+static inline-class-member method K|_#_#tearOff<T extends core::Object? = dynamic>(self::K|_#_#tearOff::T% i) → self::K<self::K|_#_#tearOff::T%> /* = self::K|_#_#tearOff::T% */
   return self::K|_<self::K|_#_#tearOff::T%>(i);
 static inline-class-member method K|<T extends core::Object? = dynamic>(self::K|::T% i) → self::K<self::K|::T%> /* = self::K|::T% */
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.transformed.expect
index ee18017..fb65f5e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51285.dart.weak.transformed.expect
@@ -20,31 +20,31 @@
   static factory • = self::K|;
   static tearoff • = self::K|_#new#tearOff;
 }
-static inline-class-member method I|_(dynamic i) → self::I /* = core::int */ {
+static inline-class-member method I|_(core::int i) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method I|_#_#tearOff(dynamic i) → self::I /* = core::int */
+static inline-class-member method I|_#_#tearOff(core::int i) → self::I /* = core::int */
   return self::I|_(i);
 static inline-class-member method I|() → self::I /* = core::int */
   return 0 as self::I /* = core::int */;
 static inline-class-member method I|_#new#tearOff() → self::I /* = core::int */
   return self::I|();
-static inline-class-member method J|_(dynamic i) → self::J /* = core::int */ {
+static inline-class-member method J|_(core::int i) → self::J /* = core::int */ {
   lowered final self::J /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method J|_#_#tearOff(dynamic i) → self::J /* = core::int */
+static inline-class-member method J|_#_#tearOff(core::int i) → self::J /* = core::int */
   return self::J|_(i);
 static inline-class-member method J|(core::int i) → self::J /* = core::int */
   return self::J|_(i);
 static inline-class-member method J|_#new#tearOff(core::int i) → self::J /* = core::int */
   return self::J|(i);
-static inline-class-member method K|_<T extends core::Object? = dynamic>(dynamic i) → self::K<self::K|_::T%> /* = self::K|_::T% */ {
+static inline-class-member method K|_<T extends core::Object? = dynamic>(self::K|_::T% i) → self::K<self::K|_::T%> /* = self::K|_::T% */ {
   lowered final self::K<self::K|_::T%> /* = self::K|_::T% */ #this = i;
   return #this;
 }
-static inline-class-member method K|_#_#tearOff<T extends core::Object? = dynamic>(dynamic i) → self::K<self::K|_#_#tearOff::T%> /* = self::K|_#_#tearOff::T% */
+static inline-class-member method K|_#_#tearOff<T extends core::Object? = dynamic>(self::K|_#_#tearOff::T% i) → self::K<self::K|_#_#tearOff::T%> /* = self::K|_#_#tearOff::T% */
   return self::K|_<self::K|_#_#tearOff::T%>(i);
 static inline-class-member method K|<T extends core::Object? = dynamic>(self::K|::T% i) → self::K<self::K|::T%> /* = self::K|::T% */
   return self::K|_<self::K|::T%>(i);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.strong.expect
index 396539a..1867734 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.strong.expect
@@ -8,11 +8,11 @@
   constructor • = self::I|;
   tearoff • = self::I|_#new#tearOff;
 }
-static inline-class-member method I|(dynamic _i) → self::I /* = core::int */ {
+static inline-class-member method I|(core::int _i) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = _i;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff(dynamic _i) → self::I /* = core::int */
+static inline-class-member method I|_#new#tearOff(core::int _i) → self::I /* = core::int */
   return self::I|(_i);
 static inline-class-member method I|get#i(lowered final self::I /* = core::int */ #this) → core::int
   return 0;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.strong.transformed.expect
index 396539a..1867734 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.strong.transformed.expect
@@ -8,11 +8,11 @@
   constructor • = self::I|;
   tearoff • = self::I|_#new#tearOff;
 }
-static inline-class-member method I|(dynamic _i) → self::I /* = core::int */ {
+static inline-class-member method I|(core::int _i) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = _i;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff(dynamic _i) → self::I /* = core::int */
+static inline-class-member method I|_#new#tearOff(core::int _i) → self::I /* = core::int */
   return self::I|(_i);
 static inline-class-member method I|get#i(lowered final self::I /* = core::int */ #this) → core::int
   return 0;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.expect
index 396539a..1867734 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.expect
@@ -8,11 +8,11 @@
   constructor • = self::I|;
   tearoff • = self::I|_#new#tearOff;
 }
-static inline-class-member method I|(dynamic _i) → self::I /* = core::int */ {
+static inline-class-member method I|(core::int _i) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = _i;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff(dynamic _i) → self::I /* = core::int */
+static inline-class-member method I|_#new#tearOff(core::int _i) → self::I /* = core::int */
   return self::I|(_i);
 static inline-class-member method I|get#i(lowered final self::I /* = core::int */ #this) → core::int
   return 0;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.modular.expect
index 396539a..1867734 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.modular.expect
@@ -8,11 +8,11 @@
   constructor • = self::I|;
   tearoff • = self::I|_#new#tearOff;
 }
-static inline-class-member method I|(dynamic _i) → self::I /* = core::int */ {
+static inline-class-member method I|(core::int _i) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = _i;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff(dynamic _i) → self::I /* = core::int */
+static inline-class-member method I|_#new#tearOff(core::int _i) → self::I /* = core::int */
   return self::I|(_i);
 static inline-class-member method I|get#i(lowered final self::I /* = core::int */ #this) → core::int
   return 0;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.outline.expect
index 9165748..2dcf3cc 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.outline.expect
@@ -8,9 +8,9 @@
   constructor • = self::I|;
   tearoff • = self::I|_#new#tearOff;
 }
-static inline-class-member method I|(dynamic _i) → self::I /* = core::int */
+static inline-class-member method I|(core::int _i) → self::I /* = core::int */
   ;
-static inline-class-member method I|_#new#tearOff(dynamic _i) → self::I /* = core::int */
+static inline-class-member method I|_#new#tearOff(core::int _i) → self::I /* = core::int */
   return self::I|(_i);
 static inline-class-member method I|get#i(lowered final self::I /* = core::int */ #this) → core::int
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.transformed.expect
index 396539a..1867734 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51299.dart.weak.transformed.expect
@@ -8,11 +8,11 @@
   constructor • = self::I|;
   tearoff • = self::I|_#new#tearOff;
 }
-static inline-class-member method I|(dynamic _i) → self::I /* = core::int */ {
+static inline-class-member method I|(core::int _i) → self::I /* = core::int */ {
   lowered final self::I /* = core::int */ #this = _i;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff(dynamic _i) → self::I /* = core::int */
+static inline-class-member method I|_#new#tearOff(core::int _i) → self::I /* = core::int */
   return self::I|(_i);
 static inline-class-member method I|get#i(lowered final self::I /* = core::int */ #this) → core::int
   return 0;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.strong.expect
index 08e5e31..e022a7a 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.strong.expect
@@ -31,35 +31,35 @@
   constructor • = self::JSNumber|;
   tearoff • = self::JSNumber|_#new#tearOff;
 }
-static inline-class-member method JSAny|(dynamic value) → self::JSAny /* = core::Object */ {
+static inline-class-member method JSAny|(core::Object value) → self::JSAny /* = core::Object */ {
   lowered final self::JSAny /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSAny|_#new#tearOff(dynamic value) → self::JSAny /* = core::Object */
+static inline-class-member method JSAny|_#new#tearOff(core::Object value) → self::JSAny /* = core::Object */
   return self::JSAny|(value);
-static inline-class-member method JSObject|(dynamic value) → self::JSObject /* = core::Object */ {
+static inline-class-member method JSObject|(core::Object value) → self::JSObject /* = core::Object */ {
   lowered final self::JSObject /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSObject|_#new#tearOff(dynamic value) → self::JSObject /* = core::Object */
+static inline-class-member method JSObject|_#new#tearOff(core::Object value) → self::JSObject /* = core::Object */
   return self::JSObject|(value);
-static inline-class-member method JSArray|(dynamic value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ {
+static inline-class-member method JSArray|(core::List<self::JSAny? /* = core::Object? */> value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ {
   lowered final self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ #this = value;
   return #this;
 }
-static inline-class-member method JSArray|_#new#tearOff(dynamic value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
+static inline-class-member method JSArray|_#new#tearOff(core::List<self::JSAny? /* = core::Object? */> value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
   return self::JSArray|(value);
-static inline-class-member method JSExportedDartObject|(dynamic value) → self::JSExportedDartObject /* = core::Object */ {
+static inline-class-member method JSExportedDartObject|(core::Object value) → self::JSExportedDartObject /* = core::Object */ {
   lowered final self::JSExportedDartObject /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSExportedDartObject|_#new#tearOff(dynamic value) → self::JSExportedDartObject /* = core::Object */
+static inline-class-member method JSExportedDartObject|_#new#tearOff(core::Object value) → self::JSExportedDartObject /* = core::Object */
   return self::JSExportedDartObject|(value);
-static inline-class-member method JSNumber|(dynamic value) → self::JSNumber /* = core::double */ {
+static inline-class-member method JSNumber|(core::double value) → self::JSNumber /* = core::double */ {
   lowered final self::JSNumber /* = core::double */ #this = value;
   return #this;
 }
-static inline-class-member method JSNumber|_#new#tearOff(dynamic value) → self::JSNumber /* = core::double */
+static inline-class-member method JSNumber|_#new#tearOff(core::double value) → self::JSNumber /* = core::double */
   return self::JSNumber|(value);
 static extension-member method ObjectToJSExportedDartObject|get#toJS(lowered final core::Object #this) → self::JSExportedDartObject /* = core::Object */
   return self::JSExportedDartObject|(#this);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.strong.transformed.expect
index e29d4e1..2fbb243 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.strong.transformed.expect
@@ -31,35 +31,35 @@
   constructor • = self::JSNumber|;
   tearoff • = self::JSNumber|_#new#tearOff;
 }
-static inline-class-member method JSAny|(dynamic value) → self::JSAny /* = core::Object */ {
+static inline-class-member method JSAny|(core::Object value) → self::JSAny /* = core::Object */ {
   lowered final self::JSAny /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSAny|_#new#tearOff(dynamic value) → self::JSAny /* = core::Object */
+static inline-class-member method JSAny|_#new#tearOff(core::Object value) → self::JSAny /* = core::Object */
   return self::JSAny|(value);
-static inline-class-member method JSObject|(dynamic value) → self::JSObject /* = core::Object */ {
+static inline-class-member method JSObject|(core::Object value) → self::JSObject /* = core::Object */ {
   lowered final self::JSObject /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSObject|_#new#tearOff(dynamic value) → self::JSObject /* = core::Object */
+static inline-class-member method JSObject|_#new#tearOff(core::Object value) → self::JSObject /* = core::Object */
   return self::JSObject|(value);
-static inline-class-member method JSArray|(dynamic value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ {
+static inline-class-member method JSArray|(core::List<self::JSAny? /* = core::Object? */> value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ {
   lowered final self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ #this = value;
   return #this;
 }
-static inline-class-member method JSArray|_#new#tearOff(dynamic value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
+static inline-class-member method JSArray|_#new#tearOff(core::List<self::JSAny? /* = core::Object? */> value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
   return self::JSArray|(value);
-static inline-class-member method JSExportedDartObject|(dynamic value) → self::JSExportedDartObject /* = core::Object */ {
+static inline-class-member method JSExportedDartObject|(core::Object value) → self::JSExportedDartObject /* = core::Object */ {
   lowered final self::JSExportedDartObject /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSExportedDartObject|_#new#tearOff(dynamic value) → self::JSExportedDartObject /* = core::Object */
+static inline-class-member method JSExportedDartObject|_#new#tearOff(core::Object value) → self::JSExportedDartObject /* = core::Object */
   return self::JSExportedDartObject|(value);
-static inline-class-member method JSNumber|(dynamic value) → self::JSNumber /* = core::double */ {
+static inline-class-member method JSNumber|(core::double value) → self::JSNumber /* = core::double */ {
   lowered final self::JSNumber /* = core::double */ #this = value;
   return #this;
 }
-static inline-class-member method JSNumber|_#new#tearOff(dynamic value) → self::JSNumber /* = core::double */
+static inline-class-member method JSNumber|_#new#tearOff(core::double value) → self::JSNumber /* = core::double */
   return self::JSNumber|(value);
 static extension-member method ObjectToJSExportedDartObject|get#toJS(lowered final core::Object #this) → self::JSExportedDartObject /* = core::Object */
   return self::JSExportedDartObject|(#this);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.expect
index 08e5e31..e022a7a 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.expect
@@ -31,35 +31,35 @@
   constructor • = self::JSNumber|;
   tearoff • = self::JSNumber|_#new#tearOff;
 }
-static inline-class-member method JSAny|(dynamic value) → self::JSAny /* = core::Object */ {
+static inline-class-member method JSAny|(core::Object value) → self::JSAny /* = core::Object */ {
   lowered final self::JSAny /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSAny|_#new#tearOff(dynamic value) → self::JSAny /* = core::Object */
+static inline-class-member method JSAny|_#new#tearOff(core::Object value) → self::JSAny /* = core::Object */
   return self::JSAny|(value);
-static inline-class-member method JSObject|(dynamic value) → self::JSObject /* = core::Object */ {
+static inline-class-member method JSObject|(core::Object value) → self::JSObject /* = core::Object */ {
   lowered final self::JSObject /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSObject|_#new#tearOff(dynamic value) → self::JSObject /* = core::Object */
+static inline-class-member method JSObject|_#new#tearOff(core::Object value) → self::JSObject /* = core::Object */
   return self::JSObject|(value);
-static inline-class-member method JSArray|(dynamic value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ {
+static inline-class-member method JSArray|(core::List<self::JSAny? /* = core::Object? */> value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ {
   lowered final self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ #this = value;
   return #this;
 }
-static inline-class-member method JSArray|_#new#tearOff(dynamic value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
+static inline-class-member method JSArray|_#new#tearOff(core::List<self::JSAny? /* = core::Object? */> value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
   return self::JSArray|(value);
-static inline-class-member method JSExportedDartObject|(dynamic value) → self::JSExportedDartObject /* = core::Object */ {
+static inline-class-member method JSExportedDartObject|(core::Object value) → self::JSExportedDartObject /* = core::Object */ {
   lowered final self::JSExportedDartObject /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSExportedDartObject|_#new#tearOff(dynamic value) → self::JSExportedDartObject /* = core::Object */
+static inline-class-member method JSExportedDartObject|_#new#tearOff(core::Object value) → self::JSExportedDartObject /* = core::Object */
   return self::JSExportedDartObject|(value);
-static inline-class-member method JSNumber|(dynamic value) → self::JSNumber /* = core::double */ {
+static inline-class-member method JSNumber|(core::double value) → self::JSNumber /* = core::double */ {
   lowered final self::JSNumber /* = core::double */ #this = value;
   return #this;
 }
-static inline-class-member method JSNumber|_#new#tearOff(dynamic value) → self::JSNumber /* = core::double */
+static inline-class-member method JSNumber|_#new#tearOff(core::double value) → self::JSNumber /* = core::double */
   return self::JSNumber|(value);
 static extension-member method ObjectToJSExportedDartObject|get#toJS(lowered final core::Object #this) → self::JSExportedDartObject /* = core::Object */
   return self::JSExportedDartObject|(#this);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.modular.expect
index 08e5e31..e022a7a 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.modular.expect
@@ -31,35 +31,35 @@
   constructor • = self::JSNumber|;
   tearoff • = self::JSNumber|_#new#tearOff;
 }
-static inline-class-member method JSAny|(dynamic value) → self::JSAny /* = core::Object */ {
+static inline-class-member method JSAny|(core::Object value) → self::JSAny /* = core::Object */ {
   lowered final self::JSAny /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSAny|_#new#tearOff(dynamic value) → self::JSAny /* = core::Object */
+static inline-class-member method JSAny|_#new#tearOff(core::Object value) → self::JSAny /* = core::Object */
   return self::JSAny|(value);
-static inline-class-member method JSObject|(dynamic value) → self::JSObject /* = core::Object */ {
+static inline-class-member method JSObject|(core::Object value) → self::JSObject /* = core::Object */ {
   lowered final self::JSObject /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSObject|_#new#tearOff(dynamic value) → self::JSObject /* = core::Object */
+static inline-class-member method JSObject|_#new#tearOff(core::Object value) → self::JSObject /* = core::Object */
   return self::JSObject|(value);
-static inline-class-member method JSArray|(dynamic value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ {
+static inline-class-member method JSArray|(core::List<self::JSAny? /* = core::Object? */> value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ {
   lowered final self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ #this = value;
   return #this;
 }
-static inline-class-member method JSArray|_#new#tearOff(dynamic value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
+static inline-class-member method JSArray|_#new#tearOff(core::List<self::JSAny? /* = core::Object? */> value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
   return self::JSArray|(value);
-static inline-class-member method JSExportedDartObject|(dynamic value) → self::JSExportedDartObject /* = core::Object */ {
+static inline-class-member method JSExportedDartObject|(core::Object value) → self::JSExportedDartObject /* = core::Object */ {
   lowered final self::JSExportedDartObject /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSExportedDartObject|_#new#tearOff(dynamic value) → self::JSExportedDartObject /* = core::Object */
+static inline-class-member method JSExportedDartObject|_#new#tearOff(core::Object value) → self::JSExportedDartObject /* = core::Object */
   return self::JSExportedDartObject|(value);
-static inline-class-member method JSNumber|(dynamic value) → self::JSNumber /* = core::double */ {
+static inline-class-member method JSNumber|(core::double value) → self::JSNumber /* = core::double */ {
   lowered final self::JSNumber /* = core::double */ #this = value;
   return #this;
 }
-static inline-class-member method JSNumber|_#new#tearOff(dynamic value) → self::JSNumber /* = core::double */
+static inline-class-member method JSNumber|_#new#tearOff(core::double value) → self::JSNumber /* = core::double */
   return self::JSNumber|(value);
 static extension-member method ObjectToJSExportedDartObject|get#toJS(lowered final core::Object #this) → self::JSExportedDartObject /* = core::Object */
   return self::JSExportedDartObject|(#this);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.outline.expect
index 9e8b0cc..65a787e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.outline.expect
@@ -31,25 +31,25 @@
   constructor • = self::JSNumber|;
   tearoff • = self::JSNumber|_#new#tearOff;
 }
-static inline-class-member method JSAny|(dynamic value) → self::JSAny /* = core::Object */
+static inline-class-member method JSAny|(core::Object value) → self::JSAny /* = core::Object */
   ;
-static inline-class-member method JSAny|_#new#tearOff(dynamic value) → self::JSAny /* = core::Object */
+static inline-class-member method JSAny|_#new#tearOff(core::Object value) → self::JSAny /* = core::Object */
   return self::JSAny|(value);
-static inline-class-member method JSObject|(dynamic value) → self::JSObject /* = core::Object */
+static inline-class-member method JSObject|(core::Object value) → self::JSObject /* = core::Object */
   ;
-static inline-class-member method JSObject|_#new#tearOff(dynamic value) → self::JSObject /* = core::Object */
+static inline-class-member method JSObject|_#new#tearOff(core::Object value) → self::JSObject /* = core::Object */
   return self::JSObject|(value);
-static inline-class-member method JSArray|(dynamic value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
+static inline-class-member method JSArray|(core::List<self::JSAny? /* = core::Object? */> value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
   ;
-static inline-class-member method JSArray|_#new#tearOff(dynamic value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
+static inline-class-member method JSArray|_#new#tearOff(core::List<self::JSAny? /* = core::Object? */> value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
   return self::JSArray|(value);
-static inline-class-member method JSExportedDartObject|(dynamic value) → self::JSExportedDartObject /* = core::Object */
+static inline-class-member method JSExportedDartObject|(core::Object value) → self::JSExportedDartObject /* = core::Object */
   ;
-static inline-class-member method JSExportedDartObject|_#new#tearOff(dynamic value) → self::JSExportedDartObject /* = core::Object */
+static inline-class-member method JSExportedDartObject|_#new#tearOff(core::Object value) → self::JSExportedDartObject /* = core::Object */
   return self::JSExportedDartObject|(value);
-static inline-class-member method JSNumber|(dynamic value) → self::JSNumber /* = core::double */
+static inline-class-member method JSNumber|(core::double value) → self::JSNumber /* = core::double */
   ;
-static inline-class-member method JSNumber|_#new#tearOff(dynamic value) → self::JSNumber /* = core::double */
+static inline-class-member method JSNumber|_#new#tearOff(core::double value) → self::JSNumber /* = core::double */
   return self::JSNumber|(value);
 static extension-member method ObjectToJSExportedDartObject|get#toJS(lowered final core::Object #this) → self::JSExportedDartObject /* = core::Object */
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.transformed.expect
index e29d4e1..2fbb243 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue51556.dart.weak.transformed.expect
@@ -31,35 +31,35 @@
   constructor • = self::JSNumber|;
   tearoff • = self::JSNumber|_#new#tearOff;
 }
-static inline-class-member method JSAny|(dynamic value) → self::JSAny /* = core::Object */ {
+static inline-class-member method JSAny|(core::Object value) → self::JSAny /* = core::Object */ {
   lowered final self::JSAny /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSAny|_#new#tearOff(dynamic value) → self::JSAny /* = core::Object */
+static inline-class-member method JSAny|_#new#tearOff(core::Object value) → self::JSAny /* = core::Object */
   return self::JSAny|(value);
-static inline-class-member method JSObject|(dynamic value) → self::JSObject /* = core::Object */ {
+static inline-class-member method JSObject|(core::Object value) → self::JSObject /* = core::Object */ {
   lowered final self::JSObject /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSObject|_#new#tearOff(dynamic value) → self::JSObject /* = core::Object */
+static inline-class-member method JSObject|_#new#tearOff(core::Object value) → self::JSObject /* = core::Object */
   return self::JSObject|(value);
-static inline-class-member method JSArray|(dynamic value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ {
+static inline-class-member method JSArray|(core::List<self::JSAny? /* = core::Object? */> value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ {
   lowered final self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */ #this = value;
   return #this;
 }
-static inline-class-member method JSArray|_#new#tearOff(dynamic value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
+static inline-class-member method JSArray|_#new#tearOff(core::List<self::JSAny? /* = core::Object? */> value) → self::JSArray /* = core::List<self::JSAny? /* = core::Object? */> */
   return self::JSArray|(value);
-static inline-class-member method JSExportedDartObject|(dynamic value) → self::JSExportedDartObject /* = core::Object */ {
+static inline-class-member method JSExportedDartObject|(core::Object value) → self::JSExportedDartObject /* = core::Object */ {
   lowered final self::JSExportedDartObject /* = core::Object */ #this = value;
   return #this;
 }
-static inline-class-member method JSExportedDartObject|_#new#tearOff(dynamic value) → self::JSExportedDartObject /* = core::Object */
+static inline-class-member method JSExportedDartObject|_#new#tearOff(core::Object value) → self::JSExportedDartObject /* = core::Object */
   return self::JSExportedDartObject|(value);
-static inline-class-member method JSNumber|(dynamic value) → self::JSNumber /* = core::double */ {
+static inline-class-member method JSNumber|(core::double value) → self::JSNumber /* = core::double */ {
   lowered final self::JSNumber /* = core::double */ #this = value;
   return #this;
 }
-static inline-class-member method JSNumber|_#new#tearOff(dynamic value) → self::JSNumber /* = core::double */
+static inline-class-member method JSNumber|_#new#tearOff(core::double value) → self::JSNumber /* = core::double */
   return self::JSNumber|(value);
 static extension-member method ObjectToJSExportedDartObject|get#toJS(lowered final core::Object #this) → self::JSExportedDartObject /* = core::Object */
   return self::JSExportedDartObject|(#this);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.strong.expect
index ad1ac13..34c7eec 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.strong.expect
@@ -37,11 +37,11 @@
   constructor • = self::Bar|;
   tearoff • = self::Bar|_#new#tearOff;
 }
-static inline-class-member method Foo|_(dynamic i) → self::Foo /* = core::int */ {
+static inline-class-member method Foo|_(core::int i) → self::Foo /* = core::int */ {
   lowered final self::Foo /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method Foo|_#_#tearOff(dynamic i) → self::Foo /* = core::int */
+static inline-class-member method Foo|_#_#tearOff(core::int i) → self::Foo /* = core::int */
   return self::Foo|_(i);
 static inline-class-member method Foo|(core::int i) → self::Foo /* = core::int */ {
   lowered final self::Foo /* = core::int */ #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.strong.transformed.expect
index ad1ac13..34c7eec 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.strong.transformed.expect
@@ -37,11 +37,11 @@
   constructor • = self::Bar|;
   tearoff • = self::Bar|_#new#tearOff;
 }
-static inline-class-member method Foo|_(dynamic i) → self::Foo /* = core::int */ {
+static inline-class-member method Foo|_(core::int i) → self::Foo /* = core::int */ {
   lowered final self::Foo /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method Foo|_#_#tearOff(dynamic i) → self::Foo /* = core::int */
+static inline-class-member method Foo|_#_#tearOff(core::int i) → self::Foo /* = core::int */
   return self::Foo|_(i);
 static inline-class-member method Foo|(core::int i) → self::Foo /* = core::int */ {
   lowered final self::Foo /* = core::int */ #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.expect
index ad1ac13..34c7eec 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.expect
@@ -37,11 +37,11 @@
   constructor • = self::Bar|;
   tearoff • = self::Bar|_#new#tearOff;
 }
-static inline-class-member method Foo|_(dynamic i) → self::Foo /* = core::int */ {
+static inline-class-member method Foo|_(core::int i) → self::Foo /* = core::int */ {
   lowered final self::Foo /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method Foo|_#_#tearOff(dynamic i) → self::Foo /* = core::int */
+static inline-class-member method Foo|_#_#tearOff(core::int i) → self::Foo /* = core::int */
   return self::Foo|_(i);
 static inline-class-member method Foo|(core::int i) → self::Foo /* = core::int */ {
   lowered final self::Foo /* = core::int */ #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.modular.expect
index ad1ac13..34c7eec 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.modular.expect
@@ -37,11 +37,11 @@
   constructor • = self::Bar|;
   tearoff • = self::Bar|_#new#tearOff;
 }
-static inline-class-member method Foo|_(dynamic i) → self::Foo /* = core::int */ {
+static inline-class-member method Foo|_(core::int i) → self::Foo /* = core::int */ {
   lowered final self::Foo /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method Foo|_#_#tearOff(dynamic i) → self::Foo /* = core::int */
+static inline-class-member method Foo|_#_#tearOff(core::int i) → self::Foo /* = core::int */
   return self::Foo|_(i);
 static inline-class-member method Foo|(core::int i) → self::Foo /* = core::int */ {
   lowered final self::Foo /* = core::int */ #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.outline.expect
index 9ec6bd3..009565f 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.outline.expect
@@ -22,9 +22,9 @@
   constructor • = self::Bar|;
   tearoff • = self::Bar|_#new#tearOff;
 }
-static inline-class-member method Foo|_(dynamic i) → self::Foo /* = core::int */
+static inline-class-member method Foo|_(core::int i) → self::Foo /* = core::int */
   ;
-static inline-class-member method Foo|_#_#tearOff(dynamic i) → self::Foo /* = core::int */
+static inline-class-member method Foo|_#_#tearOff(core::int i) → self::Foo /* = core::int */
   return self::Foo|_(i);
 static inline-class-member method Foo|(core::int i) → self::Foo /* = core::int */
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.transformed.expect
index ad1ac13..34c7eec 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52119.dart.weak.transformed.expect
@@ -37,11 +37,11 @@
   constructor • = self::Bar|;
   tearoff • = self::Bar|_#new#tearOff;
 }
-static inline-class-member method Foo|_(dynamic i) → self::Foo /* = core::int */ {
+static inline-class-member method Foo|_(core::int i) → self::Foo /* = core::int */ {
   lowered final self::Foo /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method Foo|_#_#tearOff(dynamic i) → self::Foo /* = core::int */
+static inline-class-member method Foo|_#_#tearOff(core::int i) → self::Foo /* = core::int */
   return self::Foo|_(i);
 static inline-class-member method Foo|(core::int i) → self::Foo /* = core::int */ {
   lowered final self::Foo /* = core::int */ #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.strong.expect
index b9defbc..78dcc1c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.strong.expect
@@ -10,11 +10,11 @@
   constructor named = self::X|named;
   tearoff named = self::X|_#named#tearOff;
 }
-static inline-class-member method X|_(dynamic obj) → self::X /* = core::int */ {
+static inline-class-member method X|_(core::int obj) → self::X /* = core::int */ {
   lowered final self::X /* = core::int */ #this = obj;
   return #this;
 }
-static inline-class-member method X|_#_#tearOff(dynamic obj) → self::X /* = core::int */
+static inline-class-member method X|_#_#tearOff(core::int obj) → self::X /* = core::int */
   return self::X|_(obj);
 static inline-class-member method X|() → self::X /* = core::int */ {
   lowered final self::X /* = core::int */ #this = 0;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.strong.transformed.expect
index b9defbc..78dcc1c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.strong.transformed.expect
@@ -10,11 +10,11 @@
   constructor named = self::X|named;
   tearoff named = self::X|_#named#tearOff;
 }
-static inline-class-member method X|_(dynamic obj) → self::X /* = core::int */ {
+static inline-class-member method X|_(core::int obj) → self::X /* = core::int */ {
   lowered final self::X /* = core::int */ #this = obj;
   return #this;
 }
-static inline-class-member method X|_#_#tearOff(dynamic obj) → self::X /* = core::int */
+static inline-class-member method X|_#_#tearOff(core::int obj) → self::X /* = core::int */
   return self::X|_(obj);
 static inline-class-member method X|() → self::X /* = core::int */ {
   lowered final self::X /* = core::int */ #this = 0;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.expect
index b9defbc..78dcc1c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.expect
@@ -10,11 +10,11 @@
   constructor named = self::X|named;
   tearoff named = self::X|_#named#tearOff;
 }
-static inline-class-member method X|_(dynamic obj) → self::X /* = core::int */ {
+static inline-class-member method X|_(core::int obj) → self::X /* = core::int */ {
   lowered final self::X /* = core::int */ #this = obj;
   return #this;
 }
-static inline-class-member method X|_#_#tearOff(dynamic obj) → self::X /* = core::int */
+static inline-class-member method X|_#_#tearOff(core::int obj) → self::X /* = core::int */
   return self::X|_(obj);
 static inline-class-member method X|() → self::X /* = core::int */ {
   lowered final self::X /* = core::int */ #this = 0;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.modular.expect
index b9defbc..78dcc1c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.modular.expect
@@ -10,11 +10,11 @@
   constructor named = self::X|named;
   tearoff named = self::X|_#named#tearOff;
 }
-static inline-class-member method X|_(dynamic obj) → self::X /* = core::int */ {
+static inline-class-member method X|_(core::int obj) → self::X /* = core::int */ {
   lowered final self::X /* = core::int */ #this = obj;
   return #this;
 }
-static inline-class-member method X|_#_#tearOff(dynamic obj) → self::X /* = core::int */
+static inline-class-member method X|_#_#tearOff(core::int obj) → self::X /* = core::int */
   return self::X|_(obj);
 static inline-class-member method X|() → self::X /* = core::int */ {
   lowered final self::X /* = core::int */ #this = 0;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.outline.expect
index 82e1518..0f5a22d 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.outline.expect
@@ -10,9 +10,9 @@
   constructor named = self::X|named;
   tearoff named = self::X|_#named#tearOff;
 }
-static inline-class-member method X|_(dynamic obj) → self::X /* = core::int */
+static inline-class-member method X|_(core::int obj) → self::X /* = core::int */
   ;
-static inline-class-member method X|_#_#tearOff(dynamic obj) → self::X /* = core::int */
+static inline-class-member method X|_#_#tearOff(core::int obj) → self::X /* = core::int */
   return self::X|_(obj);
 static inline-class-member method X|() → self::X /* = core::int */
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.transformed.expect
index b9defbc..78dcc1c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52240.dart.weak.transformed.expect
@@ -10,11 +10,11 @@
   constructor named = self::X|named;
   tearoff named = self::X|_#named#tearOff;
 }
-static inline-class-member method X|_(dynamic obj) → self::X /* = core::int */ {
+static inline-class-member method X|_(core::int obj) → self::X /* = core::int */ {
   lowered final self::X /* = core::int */ #this = obj;
   return #this;
 }
-static inline-class-member method X|_#_#tearOff(dynamic obj) → self::X /* = core::int */
+static inline-class-member method X|_#_#tearOff(core::int obj) → self::X /* = core::int */
   return self::X|_(obj);
 static inline-class-member method X|() → self::X /* = core::int */ {
   lowered final self::X /* = core::int */ #this = 0;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.strong.expect
index c012eb6..1bfb512 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.strong.expect
@@ -14,11 +14,11 @@
   constructor • = self::Id|;
   tearoff • = self::Id|_#new#tearOff;
 }
-static inline-class-member method Id|(dynamic id) → self::Id /* = core::int */ {
+static inline-class-member method Id|(core::int id) → self::Id /* = core::int */ {
   lowered final self::Id /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method Id|_#new#tearOff(dynamic id) → self::Id /* = core::int */
+static inline-class-member method Id|_#new#tearOff(core::int id) → self::Id /* = core::int */
   return self::Id|(id);
 static method test() → dynamic {
   self::Id /* = core::int */ c = self::Id|(2);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.strong.transformed.expect
index c012eb6..1bfb512 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.strong.transformed.expect
@@ -14,11 +14,11 @@
   constructor • = self::Id|;
   tearoff • = self::Id|_#new#tearOff;
 }
-static inline-class-member method Id|(dynamic id) → self::Id /* = core::int */ {
+static inline-class-member method Id|(core::int id) → self::Id /* = core::int */ {
   lowered final self::Id /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method Id|_#new#tearOff(dynamic id) → self::Id /* = core::int */
+static inline-class-member method Id|_#new#tearOff(core::int id) → self::Id /* = core::int */
   return self::Id|(id);
 static method test() → dynamic {
   self::Id /* = core::int */ c = self::Id|(2);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.expect
index 1b1a25b..ea0b204 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.expect
@@ -14,11 +14,11 @@
   constructor • = self::Id|;
   tearoff • = self::Id|_#new#tearOff;
 }
-static inline-class-member method Id|(dynamic id) → self::Id /* = core::int */ {
+static inline-class-member method Id|(core::int id) → self::Id /* = core::int */ {
   lowered final self::Id /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method Id|_#new#tearOff(dynamic id) → self::Id /* = core::int */
+static inline-class-member method Id|_#new#tearOff(core::int id) → self::Id /* = core::int */
   return self::Id|(id);
 static method test() → dynamic {
   self::Id /* = core::int */ c = self::Id|(2);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.modular.expect
index 1b1a25b..ea0b204 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.modular.expect
@@ -14,11 +14,11 @@
   constructor • = self::Id|;
   tearoff • = self::Id|_#new#tearOff;
 }
-static inline-class-member method Id|(dynamic id) → self::Id /* = core::int */ {
+static inline-class-member method Id|(core::int id) → self::Id /* = core::int */ {
   lowered final self::Id /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method Id|_#new#tearOff(dynamic id) → self::Id /* = core::int */
+static inline-class-member method Id|_#new#tearOff(core::int id) → self::Id /* = core::int */
   return self::Id|(id);
 static method test() → dynamic {
   self::Id /* = core::int */ c = self::Id|(2);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.outline.expect
index d62cbf2..a8cd570 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.outline.expect
@@ -6,9 +6,9 @@
   constructor • = self::Id|;
   tearoff • = self::Id|_#new#tearOff;
 }
-static inline-class-member method Id|(dynamic id) → self::Id /* = core::int */
+static inline-class-member method Id|(core::int id) → self::Id /* = core::int */
   ;
-static inline-class-member method Id|_#new#tearOff(dynamic id) → self::Id /* = core::int */
+static inline-class-member method Id|_#new#tearOff(core::int id) → self::Id /* = core::int */
   return self::Id|(id);
 static method test() → dynamic
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.transformed.expect
index 1b1a25b..ea0b204 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52284.dart.weak.transformed.expect
@@ -14,11 +14,11 @@
   constructor • = self::Id|;
   tearoff • = self::Id|_#new#tearOff;
 }
-static inline-class-member method Id|(dynamic id) → self::Id /* = core::int */ {
+static inline-class-member method Id|(core::int id) → self::Id /* = core::int */ {
   lowered final self::Id /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method Id|_#new#tearOff(dynamic id) → self::Id /* = core::int */
+static inline-class-member method Id|_#new#tearOff(core::int id) → self::Id /* = core::int */
   return self::Id|(id);
 static method test() → dynamic {
   self::Id /* = core::int */ c = self::Id|(2);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.strong.expect
index 6fce022..975baed 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.strong.expect
@@ -8,11 +8,11 @@
   static redirecting-factory f = self::IC1|f;
   static tearoff f = self::IC1|_#f#tearOff;
 }
-static inline-class-member method IC1|(dynamic id) → self::IC1 /* = core::int */ {
+static inline-class-member method IC1|(core::int id) → self::IC1 /* = core::int */ {
   lowered final self::IC1 /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method IC1|_#new#tearOff(dynamic id) → self::IC1 /* = core::int */
+static inline-class-member method IC1|_#new#tearOff(core::int id) → self::IC1 /* = core::int */
   return self::IC1|(id);
 static inline-class-member method IC1|f(core::int id) → self::IC1 /* = core::int */ /* redirection-target: self::IC1| */
   return self::IC1|(id);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.strong.transformed.expect
index 6fce022..975baed 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.strong.transformed.expect
@@ -8,11 +8,11 @@
   static redirecting-factory f = self::IC1|f;
   static tearoff f = self::IC1|_#f#tearOff;
 }
-static inline-class-member method IC1|(dynamic id) → self::IC1 /* = core::int */ {
+static inline-class-member method IC1|(core::int id) → self::IC1 /* = core::int */ {
   lowered final self::IC1 /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method IC1|_#new#tearOff(dynamic id) → self::IC1 /* = core::int */
+static inline-class-member method IC1|_#new#tearOff(core::int id) → self::IC1 /* = core::int */
   return self::IC1|(id);
 static inline-class-member method IC1|f(core::int id) → self::IC1 /* = core::int */ /* redirection-target: self::IC1| */
   return self::IC1|(id);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.expect
index 6fce022..975baed 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.expect
@@ -8,11 +8,11 @@
   static redirecting-factory f = self::IC1|f;
   static tearoff f = self::IC1|_#f#tearOff;
 }
-static inline-class-member method IC1|(dynamic id) → self::IC1 /* = core::int */ {
+static inline-class-member method IC1|(core::int id) → self::IC1 /* = core::int */ {
   lowered final self::IC1 /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method IC1|_#new#tearOff(dynamic id) → self::IC1 /* = core::int */
+static inline-class-member method IC1|_#new#tearOff(core::int id) → self::IC1 /* = core::int */
   return self::IC1|(id);
 static inline-class-member method IC1|f(core::int id) → self::IC1 /* = core::int */ /* redirection-target: self::IC1| */
   return self::IC1|(id);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.modular.expect
index 6fce022..975baed 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.modular.expect
@@ -8,11 +8,11 @@
   static redirecting-factory f = self::IC1|f;
   static tearoff f = self::IC1|_#f#tearOff;
 }
-static inline-class-member method IC1|(dynamic id) → self::IC1 /* = core::int */ {
+static inline-class-member method IC1|(core::int id) → self::IC1 /* = core::int */ {
   lowered final self::IC1 /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method IC1|_#new#tearOff(dynamic id) → self::IC1 /* = core::int */
+static inline-class-member method IC1|_#new#tearOff(core::int id) → self::IC1 /* = core::int */
   return self::IC1|(id);
 static inline-class-member method IC1|f(core::int id) → self::IC1 /* = core::int */ /* redirection-target: self::IC1| */
   return self::IC1|(id);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.outline.expect
index e831b51..4c5ebd6 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.outline.expect
@@ -8,9 +8,9 @@
   static redirecting-factory f = self::IC1|f;
   static tearoff f = self::IC1|_#f#tearOff;
 }
-static inline-class-member method IC1|(dynamic id) → self::IC1 /* = core::int */
+static inline-class-member method IC1|(core::int id) → self::IC1 /* = core::int */
   ;
-static inline-class-member method IC1|_#new#tearOff(dynamic id) → self::IC1 /* = core::int */
+static inline-class-member method IC1|_#new#tearOff(core::int id) → self::IC1 /* = core::int */
   return self::IC1|(id);
 static inline-class-member method IC1|f(core::int id) → self::IC1 /* = core::int */ /* redirection-target: self::IC1| */
   return self::IC1|(id);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.transformed.expect
index 6fce022..975baed 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52525.dart.weak.transformed.expect
@@ -8,11 +8,11 @@
   static redirecting-factory f = self::IC1|f;
   static tearoff f = self::IC1|_#f#tearOff;
 }
-static inline-class-member method IC1|(dynamic id) → self::IC1 /* = core::int */ {
+static inline-class-member method IC1|(core::int id) → self::IC1 /* = core::int */ {
   lowered final self::IC1 /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method IC1|_#new#tearOff(dynamic id) → self::IC1 /* = core::int */
+static inline-class-member method IC1|_#new#tearOff(core::int id) → self::IC1 /* = core::int */
   return self::IC1|(id);
 static inline-class-member method IC1|f(core::int id) → self::IC1 /* = core::int */ /* redirection-target: self::IC1| */
   return self::IC1|(id);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.strong.expect
index 2c461c5..687f8ce 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.strong.expect
@@ -15,17 +15,17 @@
   constructor • = self::FooBaz|;
   tearoff • = self::FooBaz|_#new#tearOff;
 }
-static inline-class-member method FooBar|(dynamic i) → self::FooBar /* = core::int */ {
+static inline-class-member method FooBar|(core::int i) → self::FooBar /* = core::int */ {
   lowered final self::FooBar /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method FooBar|_#new#tearOff(dynamic i) → self::FooBar /* = core::int */
+static inline-class-member method FooBar|_#new#tearOff(core::int i) → self::FooBar /* = core::int */
   return self::FooBar|(i);
-static inline-class-member method FooBaz|(dynamic i) → self::FooBaz /* = core::int */ {
+static inline-class-member method FooBaz|(core::int i) → self::FooBaz /* = core::int */ {
   lowered final self::FooBaz /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method FooBaz|_#new#tearOff(dynamic i) → self::FooBaz /* = core::int */
+static inline-class-member method FooBaz|_#new#tearOff(core::int i) → self::FooBaz /* = core::int */
   return self::FooBaz|(i);
 static method main() → void {
   final self::FooBar /* = core::int */ a = self::FooBar|(0);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.strong.transformed.expect
index ba73a59..8336669 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.strong.transformed.expect
@@ -15,17 +15,17 @@
   constructor • = self::FooBaz|;
   tearoff • = self::FooBaz|_#new#tearOff;
 }
-static inline-class-member method FooBar|(dynamic i) → self::FooBar /* = core::int */ {
+static inline-class-member method FooBar|(core::int i) → self::FooBar /* = core::int */ {
   lowered final self::FooBar /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method FooBar|_#new#tearOff(dynamic i) → self::FooBar /* = core::int */
+static inline-class-member method FooBar|_#new#tearOff(core::int i) → self::FooBar /* = core::int */
   return self::FooBar|(i);
-static inline-class-member method FooBaz|(dynamic i) → self::FooBaz /* = core::int */ {
+static inline-class-member method FooBaz|(core::int i) → self::FooBaz /* = core::int */ {
   lowered final self::FooBaz /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method FooBaz|_#new#tearOff(dynamic i) → self::FooBaz /* = core::int */
+static inline-class-member method FooBaz|_#new#tearOff(core::int i) → self::FooBaz /* = core::int */
   return self::FooBaz|(i);
 static method main() → void {
   final self::FooBar /* = core::int */ a = self::FooBar|(0);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.expect
index 2c461c5..687f8ce 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.expect
@@ -15,17 +15,17 @@
   constructor • = self::FooBaz|;
   tearoff • = self::FooBaz|_#new#tearOff;
 }
-static inline-class-member method FooBar|(dynamic i) → self::FooBar /* = core::int */ {
+static inline-class-member method FooBar|(core::int i) → self::FooBar /* = core::int */ {
   lowered final self::FooBar /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method FooBar|_#new#tearOff(dynamic i) → self::FooBar /* = core::int */
+static inline-class-member method FooBar|_#new#tearOff(core::int i) → self::FooBar /* = core::int */
   return self::FooBar|(i);
-static inline-class-member method FooBaz|(dynamic i) → self::FooBaz /* = core::int */ {
+static inline-class-member method FooBaz|(core::int i) → self::FooBaz /* = core::int */ {
   lowered final self::FooBaz /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method FooBaz|_#new#tearOff(dynamic i) → self::FooBaz /* = core::int */
+static inline-class-member method FooBaz|_#new#tearOff(core::int i) → self::FooBaz /* = core::int */
   return self::FooBaz|(i);
 static method main() → void {
   final self::FooBar /* = core::int */ a = self::FooBar|(0);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.modular.expect
index 2c461c5..687f8ce 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.modular.expect
@@ -15,17 +15,17 @@
   constructor • = self::FooBaz|;
   tearoff • = self::FooBaz|_#new#tearOff;
 }
-static inline-class-member method FooBar|(dynamic i) → self::FooBar /* = core::int */ {
+static inline-class-member method FooBar|(core::int i) → self::FooBar /* = core::int */ {
   lowered final self::FooBar /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method FooBar|_#new#tearOff(dynamic i) → self::FooBar /* = core::int */
+static inline-class-member method FooBar|_#new#tearOff(core::int i) → self::FooBar /* = core::int */
   return self::FooBar|(i);
-static inline-class-member method FooBaz|(dynamic i) → self::FooBaz /* = core::int */ {
+static inline-class-member method FooBaz|(core::int i) → self::FooBaz /* = core::int */ {
   lowered final self::FooBaz /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method FooBaz|_#new#tearOff(dynamic i) → self::FooBaz /* = core::int */
+static inline-class-member method FooBaz|_#new#tearOff(core::int i) → self::FooBaz /* = core::int */
   return self::FooBaz|(i);
 static method main() → void {
   final self::FooBar /* = core::int */ a = self::FooBar|(0);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.outline.expect
index 1ccf2a1..a5e9aed 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.outline.expect
@@ -14,13 +14,13 @@
   constructor • = self::FooBaz|;
   tearoff • = self::FooBaz|_#new#tearOff;
 }
-static inline-class-member method FooBar|(dynamic i) → self::FooBar /* = core::int */
+static inline-class-member method FooBar|(core::int i) → self::FooBar /* = core::int */
   ;
-static inline-class-member method FooBar|_#new#tearOff(dynamic i) → self::FooBar /* = core::int */
+static inline-class-member method FooBar|_#new#tearOff(core::int i) → self::FooBar /* = core::int */
   return self::FooBar|(i);
-static inline-class-member method FooBaz|(dynamic i) → self::FooBaz /* = core::int */
+static inline-class-member method FooBaz|(core::int i) → self::FooBaz /* = core::int */
   ;
-static inline-class-member method FooBaz|_#new#tearOff(dynamic i) → self::FooBaz /* = core::int */
+static inline-class-member method FooBaz|_#new#tearOff(core::int i) → self::FooBaz /* = core::int */
   return self::FooBaz|(i);
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.transformed.expect
index ba73a59..8336669 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue52667.dart.weak.transformed.expect
@@ -15,17 +15,17 @@
   constructor • = self::FooBaz|;
   tearoff • = self::FooBaz|_#new#tearOff;
 }
-static inline-class-member method FooBar|(dynamic i) → self::FooBar /* = core::int */ {
+static inline-class-member method FooBar|(core::int i) → self::FooBar /* = core::int */ {
   lowered final self::FooBar /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method FooBar|_#new#tearOff(dynamic i) → self::FooBar /* = core::int */
+static inline-class-member method FooBar|_#new#tearOff(core::int i) → self::FooBar /* = core::int */
   return self::FooBar|(i);
-static inline-class-member method FooBaz|(dynamic i) → self::FooBaz /* = core::int */ {
+static inline-class-member method FooBaz|(core::int i) → self::FooBaz /* = core::int */ {
   lowered final self::FooBaz /* = core::int */ #this = i;
   return #this;
 }
-static inline-class-member method FooBaz|_#new#tearOff(dynamic i) → self::FooBaz /* = core::int */
+static inline-class-member method FooBaz|_#new#tearOff(core::int i) → self::FooBaz /* = core::int */
   return self::FooBaz|(i);
 static method main() → void {
   final self::FooBar /* = core::int */ a = self::FooBar|(0);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.strong.expect
index e7025bd..59fb617 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.strong.expect
@@ -25,11 +25,11 @@
   constructor • = self::V|;
   tearoff • = self::V|_#new#tearOff;
 }
-static inline-class-member method V|<T extends self::V<self::V|::T> /* = self::V|::T */ = dynamic>(dynamic id) → self::V<self::V|::T> /* = self::V|::T */ {
+static inline-class-member method V|<T extends self::V<self::V|::T> /* = self::V|::T */ = dynamic>(self::V|::T id) → self::V<self::V|::T> /* = self::V|::T */ {
   lowered final self::V<self::V|::T> /* = self::V|::T */ #this = id;
   return #this;
 }
-static inline-class-member method V|_#new#tearOff<T extends self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */ = dynamic>(dynamic id) → self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */
+static inline-class-member method V|_#new#tearOff<T extends self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */ = dynamic>(self::V|_#new#tearOff::T id) → self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */
   return self::V|<self::V|_#new#tearOff::T>(id);
 static method test(self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */ v) → dynamic {
   core::List<self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */> l = <self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */>[v];
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.strong.transformed.expect
index 358ff34..9da68d6 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.strong.transformed.expect
@@ -25,11 +25,11 @@
   constructor • = self::V|;
   tearoff • = self::V|_#new#tearOff;
 }
-static inline-class-member method V|<T extends self::V<self::V|::T> /* = self::V|::T */ = dynamic>(dynamic id) → self::V<self::V|::T> /* = self::V|::T */ {
+static inline-class-member method V|<T extends self::V<self::V|::T> /* = self::V|::T */ = dynamic>(self::V|::T id) → self::V<self::V|::T> /* = self::V|::T */ {
   lowered final self::V<self::V|::T> /* = self::V|::T */ #this = id;
   return #this;
 }
-static inline-class-member method V|_#new#tearOff<T extends self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */ = dynamic>(dynamic id) → self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */
+static inline-class-member method V|_#new#tearOff<T extends self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */ = dynamic>(self::V|_#new#tearOff::T id) → self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */
   return self::V|<self::V|_#new#tearOff::T>(id);
 static method test(self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */ v) → dynamic {
   core::List<self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */> l = core::_GrowableList::_literal1<self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */>(v);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.expect
index e7025bd..59fb617 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.expect
@@ -25,11 +25,11 @@
   constructor • = self::V|;
   tearoff • = self::V|_#new#tearOff;
 }
-static inline-class-member method V|<T extends self::V<self::V|::T> /* = self::V|::T */ = dynamic>(dynamic id) → self::V<self::V|::T> /* = self::V|::T */ {
+static inline-class-member method V|<T extends self::V<self::V|::T> /* = self::V|::T */ = dynamic>(self::V|::T id) → self::V<self::V|::T> /* = self::V|::T */ {
   lowered final self::V<self::V|::T> /* = self::V|::T */ #this = id;
   return #this;
 }
-static inline-class-member method V|_#new#tearOff<T extends self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */ = dynamic>(dynamic id) → self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */
+static inline-class-member method V|_#new#tearOff<T extends self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */ = dynamic>(self::V|_#new#tearOff::T id) → self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */
   return self::V|<self::V|_#new#tearOff::T>(id);
 static method test(self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */ v) → dynamic {
   core::List<self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */> l = <self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */>[v];
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.modular.expect
index e7025bd..59fb617 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.modular.expect
@@ -25,11 +25,11 @@
   constructor • = self::V|;
   tearoff • = self::V|_#new#tearOff;
 }
-static inline-class-member method V|<T extends self::V<self::V|::T> /* = self::V|::T */ = dynamic>(dynamic id) → self::V<self::V|::T> /* = self::V|::T */ {
+static inline-class-member method V|<T extends self::V<self::V|::T> /* = self::V|::T */ = dynamic>(self::V|::T id) → self::V<self::V|::T> /* = self::V|::T */ {
   lowered final self::V<self::V|::T> /* = self::V|::T */ #this = id;
   return #this;
 }
-static inline-class-member method V|_#new#tearOff<T extends self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */ = dynamic>(dynamic id) → self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */
+static inline-class-member method V|_#new#tearOff<T extends self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */ = dynamic>(self::V|_#new#tearOff::T id) → self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */
   return self::V|<self::V|_#new#tearOff::T>(id);
 static method test(self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */ v) → dynamic {
   core::List<self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */> l = <self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */>[v];
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.outline.expect
index 1758c31..d40d939 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.outline.expect
@@ -16,9 +16,9 @@
   constructor • = self::V|;
   tearoff • = self::V|_#new#tearOff;
 }
-static inline-class-member method V|<T extends self::V<self::V|::T> /* = self::V|::T */ = dynamic>(dynamic id) → self::V<self::V|::T> /* = self::V|::T */
+static inline-class-member method V|<T extends self::V<self::V|::T> /* = self::V|::T */ = dynamic>(self::V|::T id) → self::V<self::V|::T> /* = self::V|::T */
   ;
-static inline-class-member method V|_#new#tearOff<T extends self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */ = dynamic>(dynamic id) → self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */
+static inline-class-member method V|_#new#tearOff<T extends self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */ = dynamic>(self::V|_#new#tearOff::T id) → self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */
   return self::V|<self::V|_#new#tearOff::T>(id);
 static method test(self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */ v) → dynamic
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.transformed.expect
index 358ff34..9da68d6 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53123.dart.weak.transformed.expect
@@ -25,11 +25,11 @@
   constructor • = self::V|;
   tearoff • = self::V|_#new#tearOff;
 }
-static inline-class-member method V|<T extends self::V<self::V|::T> /* = self::V|::T */ = dynamic>(dynamic id) → self::V<self::V|::T> /* = self::V|::T */ {
+static inline-class-member method V|<T extends self::V<self::V|::T> /* = self::V|::T */ = dynamic>(self::V|::T id) → self::V<self::V|::T> /* = self::V|::T */ {
   lowered final self::V<self::V|::T> /* = self::V|::T */ #this = id;
   return #this;
 }
-static inline-class-member method V|_#new#tearOff<T extends self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */ = dynamic>(dynamic id) → self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */
+static inline-class-member method V|_#new#tearOff<T extends self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */ = dynamic>(self::V|_#new#tearOff::T id) → self::V<self::V|_#new#tearOff::T> /* = self::V|_#new#tearOff::T */
   return self::V|<self::V|_#new#tearOff::T>(id);
 static method test(self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */ v) → dynamic {
   core::List<self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */> l = core::_GrowableList::_literal1<self::V<self::V<dynamic> /* = dynamic */> /* = dynamic */>(v);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.strong.expect
index f98f6a5..a4a36e5 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.strong.expect
@@ -22,11 +22,11 @@
   static factory f2 = self::ET1|f2;
   static tearoff f2 = self::ET1|_#f2#tearOff;
 }
-static inline-class-member method ET1|c0(dynamic id) → self::ET1 /* = core::int */ {
+static inline-class-member method ET1|c0(core::int id) → self::ET1 /* = core::int */ {
   lowered final self::ET1 /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method ET1|_#c0#tearOff(dynamic id) → self::ET1 /* = core::int */
+static inline-class-member method ET1|_#c0#tearOff(core::int id) → self::ET1 /* = core::int */
   return self::ET1|c0(id);
 static inline-class-member method ET1|c1() → self::ET1 /* = core::int */ {
   lowered final self::ET1 /* = core::int */ #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.strong.transformed.expect
index f98f6a5..a4a36e5 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.strong.transformed.expect
@@ -22,11 +22,11 @@
   static factory f2 = self::ET1|f2;
   static tearoff f2 = self::ET1|_#f2#tearOff;
 }
-static inline-class-member method ET1|c0(dynamic id) → self::ET1 /* = core::int */ {
+static inline-class-member method ET1|c0(core::int id) → self::ET1 /* = core::int */ {
   lowered final self::ET1 /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method ET1|_#c0#tearOff(dynamic id) → self::ET1 /* = core::int */
+static inline-class-member method ET1|_#c0#tearOff(core::int id) → self::ET1 /* = core::int */
   return self::ET1|c0(id);
 static inline-class-member method ET1|c1() → self::ET1 /* = core::int */ {
   lowered final self::ET1 /* = core::int */ #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.expect
index f98f6a5..a4a36e5 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.expect
@@ -22,11 +22,11 @@
   static factory f2 = self::ET1|f2;
   static tearoff f2 = self::ET1|_#f2#tearOff;
 }
-static inline-class-member method ET1|c0(dynamic id) → self::ET1 /* = core::int */ {
+static inline-class-member method ET1|c0(core::int id) → self::ET1 /* = core::int */ {
   lowered final self::ET1 /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method ET1|_#c0#tearOff(dynamic id) → self::ET1 /* = core::int */
+static inline-class-member method ET1|_#c0#tearOff(core::int id) → self::ET1 /* = core::int */
   return self::ET1|c0(id);
 static inline-class-member method ET1|c1() → self::ET1 /* = core::int */ {
   lowered final self::ET1 /* = core::int */ #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.modular.expect
index f98f6a5..a4a36e5 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.modular.expect
@@ -22,11 +22,11 @@
   static factory f2 = self::ET1|f2;
   static tearoff f2 = self::ET1|_#f2#tearOff;
 }
-static inline-class-member method ET1|c0(dynamic id) → self::ET1 /* = core::int */ {
+static inline-class-member method ET1|c0(core::int id) → self::ET1 /* = core::int */ {
   lowered final self::ET1 /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method ET1|_#c0#tearOff(dynamic id) → self::ET1 /* = core::int */
+static inline-class-member method ET1|_#c0#tearOff(core::int id) → self::ET1 /* = core::int */
   return self::ET1|c0(id);
 static inline-class-member method ET1|c1() → self::ET1 /* = core::int */ {
   lowered final self::ET1 /* = core::int */ #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.outline.expect
index 2ae0984..ca7679c 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.outline.expect
@@ -22,9 +22,9 @@
   static factory f2 = self::ET1|f2;
   static tearoff f2 = self::ET1|_#f2#tearOff;
 }
-static inline-class-member method ET1|c0(dynamic id) → self::ET1 /* = core::int */
+static inline-class-member method ET1|c0(core::int id) → self::ET1 /* = core::int */
   ;
-static inline-class-member method ET1|_#c0#tearOff(dynamic id) → self::ET1 /* = core::int */
+static inline-class-member method ET1|_#c0#tearOff(core::int id) → self::ET1 /* = core::int */
   return self::ET1|c0(id);
 static inline-class-member method ET1|c1() → self::ET1 /* = core::int */
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.transformed.expect
index f98f6a5..a4a36e5 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53210.dart.weak.transformed.expect
@@ -22,11 +22,11 @@
   static factory f2 = self::ET1|f2;
   static tearoff f2 = self::ET1|_#f2#tearOff;
 }
-static inline-class-member method ET1|c0(dynamic id) → self::ET1 /* = core::int */ {
+static inline-class-member method ET1|c0(core::int id) → self::ET1 /* = core::int */ {
   lowered final self::ET1 /* = core::int */ #this = id;
   return #this;
 }
-static inline-class-member method ET1|_#c0#tearOff(dynamic id) → self::ET1 /* = core::int */
+static inline-class-member method ET1|_#c0#tearOff(core::int id) → self::ET1 /* = core::int */
   return self::ET1|c0(id);
 static inline-class-member method ET1|c1() → self::ET1 /* = core::int */ {
   lowered final self::ET1 /* = core::int */ #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart
new file mode 100644
index 0000000..7bc1e29
--- /dev/null
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart
@@ -0,0 +1,32 @@
+// Copyright (c) 2023, 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.
+
+extension type ET1(int id) {}
+
+extension type ET2<T>(T id) {}
+
+extension type ET3.new(int id) {}
+
+extension type ET4<T>.new(T id) {}
+
+extension type ET5.n(int id) {}
+
+extension type ET6<T>.n(T id) {}
+
+main() {
+  ET1.new.expectStaticType<Exactly<ET1 Function(int)>>();
+  ET2<String>.new.expectStaticType<Exactly<ET2<String> Function(String)>>();
+  ET3.new.expectStaticType<Exactly<ET3 Function(int)>>();
+  ET4<String>.new.expectStaticType<Exactly<ET4<String> Function(String)>>();
+  ET5.n.expectStaticType<Exactly<ET5 Function(int)>>();
+  ET6<String>.n.expectStaticType<Exactly<ET6<String> Function(String)>>();
+}
+
+extension StaticType<T> on T {
+  T expectStaticType<R extends Exactly<T>>() {
+    return this;
+  }
+}
+
+typedef Exactly<T> = T Function(T);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.strong.expect
new file mode 100644
index 0000000..36be6ec
--- /dev/null
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.strong.expect
@@ -0,0 +1,94 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+typedef Exactly<invariant T extends core::Object? = dynamic> = (T%) → T%;
+extension StaticType<T extends core::Object? = dynamic> on T% {
+  method expectStaticType = self::StaticType|expectStaticType;
+  tearoff expectStaticType = self::StaticType|get#expectStaticType;
+}
+extension type ET1(core::int id) {
+  constructor • = self::ET1|;
+  tearoff • = self::ET1|_#new#tearOff;
+}
+extension type ET2<T extends core::Object? = dynamic>(T% id) {
+  constructor • = self::ET2|;
+  tearoff • = self::ET2|_#new#tearOff;
+}
+extension type ET3(core::int id) {
+  constructor • = self::ET3|;
+  tearoff • = self::ET3|_#new#tearOff;
+}
+extension type ET4<T extends core::Object? = dynamic>(T% id) {
+  constructor • = self::ET4|;
+  tearoff • = self::ET4|_#new#tearOff;
+}
+extension type ET5(core::int id) {
+  constructor n = self::ET5|n;
+  tearoff n = self::ET5|_#n#tearOff;
+}
+extension type ET6<T extends core::Object? = dynamic>(T% id) {
+  constructor n = self::ET6|n;
+  tearoff n = self::ET6|_#n#tearOff;
+}
+static inline-class-member method ET1|(core::int id) → self::ET1 /* = core::int */ {
+  lowered final self::ET1 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET1|_#new#tearOff(core::int id) → self::ET1 /* = core::int */
+  return self::ET1|(id);
+static inline-class-member method ET2|<T extends core::Object? = dynamic>(self::ET2|::T% id) → self::ET2<self::ET2|::T%> /* = self::ET2|::T% */ {
+  lowered final self::ET2<self::ET2|::T%> /* = self::ET2|::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET2|_#new#tearOff<T extends core::Object? = dynamic>(self::ET2|_#new#tearOff::T% id) → self::ET2<self::ET2|_#new#tearOff::T%> /* = self::ET2|_#new#tearOff::T% */
+  return self::ET2|<self::ET2|_#new#tearOff::T%>(id);
+static inline-class-member method ET3|(core::int id) → self::ET3 /* = core::int */ {
+  lowered final self::ET3 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET3|_#new#tearOff(core::int id) → self::ET3 /* = core::int */
+  return self::ET3|(id);
+static inline-class-member method ET4|<T extends core::Object? = dynamic>(self::ET4|::T% id) → self::ET4<self::ET4|::T%> /* = self::ET4|::T% */ {
+  lowered final self::ET4<self::ET4|::T%> /* = self::ET4|::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET4|_#new#tearOff<T extends core::Object? = dynamic>(self::ET4|_#new#tearOff::T% id) → self::ET4<self::ET4|_#new#tearOff::T%> /* = self::ET4|_#new#tearOff::T% */
+  return self::ET4|<self::ET4|_#new#tearOff::T%>(id);
+static inline-class-member method ET5|n(core::int id) → self::ET5 /* = core::int */ {
+  lowered final self::ET5 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET5|_#n#tearOff(core::int id) → self::ET5 /* = core::int */
+  return self::ET5|n(id);
+static inline-class-member method ET6|n<T extends core::Object? = dynamic>(self::ET6|n::T% id) → self::ET6<self::ET6|n::T%> /* = self::ET6|n::T% */ {
+  lowered final self::ET6<self::ET6|n::T%> /* = self::ET6|n::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET6|_#n#tearOff<T extends core::Object? = dynamic>(self::ET6|_#n#tearOff::T% id) → self::ET6<self::ET6|_#n#tearOff::T%> /* = self::ET6|_#n#tearOff::T% */
+  return self::ET6|n<self::ET6|_#n#tearOff::T%>(id);
+static method main() → dynamic {
+  self::StaticType|expectStaticType<(core::int) → self::ET1 /* = core::int */, ((core::int) → self::ET1 /* = core::int */) → (core::int) → self::ET1 /* = core::int */>(#C1);
+  self::StaticType|expectStaticType<(core::String) → self::ET2<core::String> /* = core::String */, ((core::String) → self::ET2<core::String> /* = core::String */) → (core::String) → self::ET2<core::String> /* = core::String */>(#C3);
+  self::StaticType|expectStaticType<(core::int) → self::ET3 /* = core::int */, ((core::int) → self::ET3 /* = core::int */) → (core::int) → self::ET3 /* = core::int */>(#C4);
+  self::StaticType|expectStaticType<(core::String) → self::ET4<core::String> /* = core::String */, ((core::String) → self::ET4<core::String> /* = core::String */) → (core::String) → self::ET4<core::String> /* = core::String */>(#C6);
+  self::StaticType|expectStaticType<(core::int) → self::ET5 /* = core::int */, ((core::int) → self::ET5 /* = core::int */) → (core::int) → self::ET5 /* = core::int */>(#C7);
+  self::StaticType|expectStaticType<(core::String) → self::ET6<core::String> /* = core::String */, ((core::String) → self::ET6<core::String> /* = core::String */) → (core::String) → self::ET6<core::String> /* = core::String */>(#C9);
+}
+static extension-member method StaticType|expectStaticType<T extends core::Object? = dynamic, R extends (self::StaticType|expectStaticType::T%) → self::StaticType|expectStaticType::T% = (dynamic) → dynamic>(lowered final self::StaticType|expectStaticType::T% #this) → self::StaticType|expectStaticType::T% {
+  return #this;
+}
+static extension-member method StaticType|get#expectStaticType<T extends core::Object? = dynamic>(lowered final self::StaticType|get#expectStaticType::T% #this) → <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T%
+  return <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T% => self::StaticType|expectStaticType<self::StaticType|get#expectStaticType::T%, R>(#this);
+
+constants  {
+  #C1 = static-tearoff self::ET1|_#new#tearOff
+  #C2 = static-tearoff self::ET2|_#new#tearOff
+  #C3 = instantiation #C2 <core::String>
+  #C4 = static-tearoff self::ET3|_#new#tearOff
+  #C5 = static-tearoff self::ET4|_#new#tearOff
+  #C6 = instantiation #C5 <core::String>
+  #C7 = static-tearoff self::ET5|_#n#tearOff
+  #C8 = static-tearoff self::ET6|_#n#tearOff
+  #C9 = instantiation #C8 <core::String>
+}
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.strong.transformed.expect
new file mode 100644
index 0000000..36be6ec
--- /dev/null
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.strong.transformed.expect
@@ -0,0 +1,94 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+typedef Exactly<invariant T extends core::Object? = dynamic> = (T%) → T%;
+extension StaticType<T extends core::Object? = dynamic> on T% {
+  method expectStaticType = self::StaticType|expectStaticType;
+  tearoff expectStaticType = self::StaticType|get#expectStaticType;
+}
+extension type ET1(core::int id) {
+  constructor • = self::ET1|;
+  tearoff • = self::ET1|_#new#tearOff;
+}
+extension type ET2<T extends core::Object? = dynamic>(T% id) {
+  constructor • = self::ET2|;
+  tearoff • = self::ET2|_#new#tearOff;
+}
+extension type ET3(core::int id) {
+  constructor • = self::ET3|;
+  tearoff • = self::ET3|_#new#tearOff;
+}
+extension type ET4<T extends core::Object? = dynamic>(T% id) {
+  constructor • = self::ET4|;
+  tearoff • = self::ET4|_#new#tearOff;
+}
+extension type ET5(core::int id) {
+  constructor n = self::ET5|n;
+  tearoff n = self::ET5|_#n#tearOff;
+}
+extension type ET6<T extends core::Object? = dynamic>(T% id) {
+  constructor n = self::ET6|n;
+  tearoff n = self::ET6|_#n#tearOff;
+}
+static inline-class-member method ET1|(core::int id) → self::ET1 /* = core::int */ {
+  lowered final self::ET1 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET1|_#new#tearOff(core::int id) → self::ET1 /* = core::int */
+  return self::ET1|(id);
+static inline-class-member method ET2|<T extends core::Object? = dynamic>(self::ET2|::T% id) → self::ET2<self::ET2|::T%> /* = self::ET2|::T% */ {
+  lowered final self::ET2<self::ET2|::T%> /* = self::ET2|::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET2|_#new#tearOff<T extends core::Object? = dynamic>(self::ET2|_#new#tearOff::T% id) → self::ET2<self::ET2|_#new#tearOff::T%> /* = self::ET2|_#new#tearOff::T% */
+  return self::ET2|<self::ET2|_#new#tearOff::T%>(id);
+static inline-class-member method ET3|(core::int id) → self::ET3 /* = core::int */ {
+  lowered final self::ET3 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET3|_#new#tearOff(core::int id) → self::ET3 /* = core::int */
+  return self::ET3|(id);
+static inline-class-member method ET4|<T extends core::Object? = dynamic>(self::ET4|::T% id) → self::ET4<self::ET4|::T%> /* = self::ET4|::T% */ {
+  lowered final self::ET4<self::ET4|::T%> /* = self::ET4|::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET4|_#new#tearOff<T extends core::Object? = dynamic>(self::ET4|_#new#tearOff::T% id) → self::ET4<self::ET4|_#new#tearOff::T%> /* = self::ET4|_#new#tearOff::T% */
+  return self::ET4|<self::ET4|_#new#tearOff::T%>(id);
+static inline-class-member method ET5|n(core::int id) → self::ET5 /* = core::int */ {
+  lowered final self::ET5 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET5|_#n#tearOff(core::int id) → self::ET5 /* = core::int */
+  return self::ET5|n(id);
+static inline-class-member method ET6|n<T extends core::Object? = dynamic>(self::ET6|n::T% id) → self::ET6<self::ET6|n::T%> /* = self::ET6|n::T% */ {
+  lowered final self::ET6<self::ET6|n::T%> /* = self::ET6|n::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET6|_#n#tearOff<T extends core::Object? = dynamic>(self::ET6|_#n#tearOff::T% id) → self::ET6<self::ET6|_#n#tearOff::T%> /* = self::ET6|_#n#tearOff::T% */
+  return self::ET6|n<self::ET6|_#n#tearOff::T%>(id);
+static method main() → dynamic {
+  self::StaticType|expectStaticType<(core::int) → self::ET1 /* = core::int */, ((core::int) → self::ET1 /* = core::int */) → (core::int) → self::ET1 /* = core::int */>(#C1);
+  self::StaticType|expectStaticType<(core::String) → self::ET2<core::String> /* = core::String */, ((core::String) → self::ET2<core::String> /* = core::String */) → (core::String) → self::ET2<core::String> /* = core::String */>(#C3);
+  self::StaticType|expectStaticType<(core::int) → self::ET3 /* = core::int */, ((core::int) → self::ET3 /* = core::int */) → (core::int) → self::ET3 /* = core::int */>(#C4);
+  self::StaticType|expectStaticType<(core::String) → self::ET4<core::String> /* = core::String */, ((core::String) → self::ET4<core::String> /* = core::String */) → (core::String) → self::ET4<core::String> /* = core::String */>(#C6);
+  self::StaticType|expectStaticType<(core::int) → self::ET5 /* = core::int */, ((core::int) → self::ET5 /* = core::int */) → (core::int) → self::ET5 /* = core::int */>(#C7);
+  self::StaticType|expectStaticType<(core::String) → self::ET6<core::String> /* = core::String */, ((core::String) → self::ET6<core::String> /* = core::String */) → (core::String) → self::ET6<core::String> /* = core::String */>(#C9);
+}
+static extension-member method StaticType|expectStaticType<T extends core::Object? = dynamic, R extends (self::StaticType|expectStaticType::T%) → self::StaticType|expectStaticType::T% = (dynamic) → dynamic>(lowered final self::StaticType|expectStaticType::T% #this) → self::StaticType|expectStaticType::T% {
+  return #this;
+}
+static extension-member method StaticType|get#expectStaticType<T extends core::Object? = dynamic>(lowered final self::StaticType|get#expectStaticType::T% #this) → <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T%
+  return <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T% => self::StaticType|expectStaticType<self::StaticType|get#expectStaticType::T%, R>(#this);
+
+constants  {
+  #C1 = static-tearoff self::ET1|_#new#tearOff
+  #C2 = static-tearoff self::ET2|_#new#tearOff
+  #C3 = instantiation #C2 <core::String>
+  #C4 = static-tearoff self::ET3|_#new#tearOff
+  #C5 = static-tearoff self::ET4|_#new#tearOff
+  #C6 = instantiation #C5 <core::String>
+  #C7 = static-tearoff self::ET5|_#n#tearOff
+  #C8 = static-tearoff self::ET6|_#n#tearOff
+  #C9 = instantiation #C8 <core::String>
+}
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.textual_outline.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.textual_outline.expect
new file mode 100644
index 0000000..8be6056
--- /dev/null
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.textual_outline.expect
@@ -0,0 +1,6 @@
+extension type ET1(int id) {} extension type ET2<T>(T id) {} extension type ET3.new(int id) {} extension type ET4<T>.new(T id) {} extension type ET5.n(int id) {} extension type ET6<T>.n(T id) {}
+main() {}
+extension StaticType<T> on T {
+  T expectStaticType<R extends Exactly<T>>() {}
+}
+typedef Exactly<T> = T Function(T);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..b84ae89
--- /dev/null
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.textual_outline_modelled.expect
@@ -0,0 +1,8 @@
+---- unknown chunk starts ----
+extension type ET1(int id) {} extension type ET2<T>(T id) {} extension type ET3.new(int id) {} extension type ET4<T>.new(T id) {} extension type ET5.n(int id) {} extension type ET6<T>.n(T id) {}
+---- unknown chunk ends ----
+extension StaticType<T> on T {
+  T expectStaticType<R extends Exactly<T>>() {}
+}
+main() {}
+typedef Exactly<T> = T Function(T);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.weak.expect
new file mode 100644
index 0000000..2fb28c1
--- /dev/null
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.weak.expect
@@ -0,0 +1,94 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+typedef Exactly<invariant T extends core::Object? = dynamic> = (T%) → T%;
+extension StaticType<T extends core::Object? = dynamic> on T% {
+  method expectStaticType = self::StaticType|expectStaticType;
+  tearoff expectStaticType = self::StaticType|get#expectStaticType;
+}
+extension type ET1(core::int id) {
+  constructor • = self::ET1|;
+  tearoff • = self::ET1|_#new#tearOff;
+}
+extension type ET2<T extends core::Object? = dynamic>(T% id) {
+  constructor • = self::ET2|;
+  tearoff • = self::ET2|_#new#tearOff;
+}
+extension type ET3(core::int id) {
+  constructor • = self::ET3|;
+  tearoff • = self::ET3|_#new#tearOff;
+}
+extension type ET4<T extends core::Object? = dynamic>(T% id) {
+  constructor • = self::ET4|;
+  tearoff • = self::ET4|_#new#tearOff;
+}
+extension type ET5(core::int id) {
+  constructor n = self::ET5|n;
+  tearoff n = self::ET5|_#n#tearOff;
+}
+extension type ET6<T extends core::Object? = dynamic>(T% id) {
+  constructor n = self::ET6|n;
+  tearoff n = self::ET6|_#n#tearOff;
+}
+static inline-class-member method ET1|(core::int id) → self::ET1 /* = core::int */ {
+  lowered final self::ET1 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET1|_#new#tearOff(core::int id) → self::ET1 /* = core::int */
+  return self::ET1|(id);
+static inline-class-member method ET2|<T extends core::Object? = dynamic>(self::ET2|::T% id) → self::ET2<self::ET2|::T%> /* = self::ET2|::T% */ {
+  lowered final self::ET2<self::ET2|::T%> /* = self::ET2|::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET2|_#new#tearOff<T extends core::Object? = dynamic>(self::ET2|_#new#tearOff::T% id) → self::ET2<self::ET2|_#new#tearOff::T%> /* = self::ET2|_#new#tearOff::T% */
+  return self::ET2|<self::ET2|_#new#tearOff::T%>(id);
+static inline-class-member method ET3|(core::int id) → self::ET3 /* = core::int */ {
+  lowered final self::ET3 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET3|_#new#tearOff(core::int id) → self::ET3 /* = core::int */
+  return self::ET3|(id);
+static inline-class-member method ET4|<T extends core::Object? = dynamic>(self::ET4|::T% id) → self::ET4<self::ET4|::T%> /* = self::ET4|::T% */ {
+  lowered final self::ET4<self::ET4|::T%> /* = self::ET4|::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET4|_#new#tearOff<T extends core::Object? = dynamic>(self::ET4|_#new#tearOff::T% id) → self::ET4<self::ET4|_#new#tearOff::T%> /* = self::ET4|_#new#tearOff::T% */
+  return self::ET4|<self::ET4|_#new#tearOff::T%>(id);
+static inline-class-member method ET5|n(core::int id) → self::ET5 /* = core::int */ {
+  lowered final self::ET5 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET5|_#n#tearOff(core::int id) → self::ET5 /* = core::int */
+  return self::ET5|n(id);
+static inline-class-member method ET6|n<T extends core::Object? = dynamic>(self::ET6|n::T% id) → self::ET6<self::ET6|n::T%> /* = self::ET6|n::T% */ {
+  lowered final self::ET6<self::ET6|n::T%> /* = self::ET6|n::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET6|_#n#tearOff<T extends core::Object? = dynamic>(self::ET6|_#n#tearOff::T% id) → self::ET6<self::ET6|_#n#tearOff::T%> /* = self::ET6|_#n#tearOff::T% */
+  return self::ET6|n<self::ET6|_#n#tearOff::T%>(id);
+static method main() → dynamic {
+  self::StaticType|expectStaticType<(core::int) → self::ET1 /* = core::int */, ((core::int) → self::ET1 /* = core::int */) → (core::int) → self::ET1 /* = core::int */>(#C1);
+  self::StaticType|expectStaticType<(core::String) → self::ET2<core::String> /* = core::String */, ((core::String) → self::ET2<core::String> /* = core::String */) → (core::String) → self::ET2<core::String> /* = core::String */>(#C3);
+  self::StaticType|expectStaticType<(core::int) → self::ET3 /* = core::int */, ((core::int) → self::ET3 /* = core::int */) → (core::int) → self::ET3 /* = core::int */>(#C4);
+  self::StaticType|expectStaticType<(core::String) → self::ET4<core::String> /* = core::String */, ((core::String) → self::ET4<core::String> /* = core::String */) → (core::String) → self::ET4<core::String> /* = core::String */>(#C6);
+  self::StaticType|expectStaticType<(core::int) → self::ET5 /* = core::int */, ((core::int) → self::ET5 /* = core::int */) → (core::int) → self::ET5 /* = core::int */>(#C7);
+  self::StaticType|expectStaticType<(core::String) → self::ET6<core::String> /* = core::String */, ((core::String) → self::ET6<core::String> /* = core::String */) → (core::String) → self::ET6<core::String> /* = core::String */>(#C9);
+}
+static extension-member method StaticType|expectStaticType<T extends core::Object? = dynamic, R extends (self::StaticType|expectStaticType::T%) → self::StaticType|expectStaticType::T% = (dynamic) → dynamic>(lowered final self::StaticType|expectStaticType::T% #this) → self::StaticType|expectStaticType::T% {
+  return #this;
+}
+static extension-member method StaticType|get#expectStaticType<T extends core::Object? = dynamic>(lowered final self::StaticType|get#expectStaticType::T% #this) → <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T%
+  return <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T% => self::StaticType|expectStaticType<self::StaticType|get#expectStaticType::T%, R>(#this);
+
+constants  {
+  #C1 = static-tearoff self::ET1|_#new#tearOff
+  #C2 = static-tearoff self::ET2|_#new#tearOff
+  #C3 = instantiation #C2 <core::String*>
+  #C4 = static-tearoff self::ET3|_#new#tearOff
+  #C5 = static-tearoff self::ET4|_#new#tearOff
+  #C6 = instantiation #C5 <core::String*>
+  #C7 = static-tearoff self::ET5|_#n#tearOff
+  #C8 = static-tearoff self::ET6|_#n#tearOff
+  #C9 = instantiation #C8 <core::String*>
+}
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.weak.modular.expect
new file mode 100644
index 0000000..2fb28c1
--- /dev/null
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.weak.modular.expect
@@ -0,0 +1,94 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+typedef Exactly<invariant T extends core::Object? = dynamic> = (T%) → T%;
+extension StaticType<T extends core::Object? = dynamic> on T% {
+  method expectStaticType = self::StaticType|expectStaticType;
+  tearoff expectStaticType = self::StaticType|get#expectStaticType;
+}
+extension type ET1(core::int id) {
+  constructor • = self::ET1|;
+  tearoff • = self::ET1|_#new#tearOff;
+}
+extension type ET2<T extends core::Object? = dynamic>(T% id) {
+  constructor • = self::ET2|;
+  tearoff • = self::ET2|_#new#tearOff;
+}
+extension type ET3(core::int id) {
+  constructor • = self::ET3|;
+  tearoff • = self::ET3|_#new#tearOff;
+}
+extension type ET4<T extends core::Object? = dynamic>(T% id) {
+  constructor • = self::ET4|;
+  tearoff • = self::ET4|_#new#tearOff;
+}
+extension type ET5(core::int id) {
+  constructor n = self::ET5|n;
+  tearoff n = self::ET5|_#n#tearOff;
+}
+extension type ET6<T extends core::Object? = dynamic>(T% id) {
+  constructor n = self::ET6|n;
+  tearoff n = self::ET6|_#n#tearOff;
+}
+static inline-class-member method ET1|(core::int id) → self::ET1 /* = core::int */ {
+  lowered final self::ET1 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET1|_#new#tearOff(core::int id) → self::ET1 /* = core::int */
+  return self::ET1|(id);
+static inline-class-member method ET2|<T extends core::Object? = dynamic>(self::ET2|::T% id) → self::ET2<self::ET2|::T%> /* = self::ET2|::T% */ {
+  lowered final self::ET2<self::ET2|::T%> /* = self::ET2|::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET2|_#new#tearOff<T extends core::Object? = dynamic>(self::ET2|_#new#tearOff::T% id) → self::ET2<self::ET2|_#new#tearOff::T%> /* = self::ET2|_#new#tearOff::T% */
+  return self::ET2|<self::ET2|_#new#tearOff::T%>(id);
+static inline-class-member method ET3|(core::int id) → self::ET3 /* = core::int */ {
+  lowered final self::ET3 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET3|_#new#tearOff(core::int id) → self::ET3 /* = core::int */
+  return self::ET3|(id);
+static inline-class-member method ET4|<T extends core::Object? = dynamic>(self::ET4|::T% id) → self::ET4<self::ET4|::T%> /* = self::ET4|::T% */ {
+  lowered final self::ET4<self::ET4|::T%> /* = self::ET4|::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET4|_#new#tearOff<T extends core::Object? = dynamic>(self::ET4|_#new#tearOff::T% id) → self::ET4<self::ET4|_#new#tearOff::T%> /* = self::ET4|_#new#tearOff::T% */
+  return self::ET4|<self::ET4|_#new#tearOff::T%>(id);
+static inline-class-member method ET5|n(core::int id) → self::ET5 /* = core::int */ {
+  lowered final self::ET5 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET5|_#n#tearOff(core::int id) → self::ET5 /* = core::int */
+  return self::ET5|n(id);
+static inline-class-member method ET6|n<T extends core::Object? = dynamic>(self::ET6|n::T% id) → self::ET6<self::ET6|n::T%> /* = self::ET6|n::T% */ {
+  lowered final self::ET6<self::ET6|n::T%> /* = self::ET6|n::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET6|_#n#tearOff<T extends core::Object? = dynamic>(self::ET6|_#n#tearOff::T% id) → self::ET6<self::ET6|_#n#tearOff::T%> /* = self::ET6|_#n#tearOff::T% */
+  return self::ET6|n<self::ET6|_#n#tearOff::T%>(id);
+static method main() → dynamic {
+  self::StaticType|expectStaticType<(core::int) → self::ET1 /* = core::int */, ((core::int) → self::ET1 /* = core::int */) → (core::int) → self::ET1 /* = core::int */>(#C1);
+  self::StaticType|expectStaticType<(core::String) → self::ET2<core::String> /* = core::String */, ((core::String) → self::ET2<core::String> /* = core::String */) → (core::String) → self::ET2<core::String> /* = core::String */>(#C3);
+  self::StaticType|expectStaticType<(core::int) → self::ET3 /* = core::int */, ((core::int) → self::ET3 /* = core::int */) → (core::int) → self::ET3 /* = core::int */>(#C4);
+  self::StaticType|expectStaticType<(core::String) → self::ET4<core::String> /* = core::String */, ((core::String) → self::ET4<core::String> /* = core::String */) → (core::String) → self::ET4<core::String> /* = core::String */>(#C6);
+  self::StaticType|expectStaticType<(core::int) → self::ET5 /* = core::int */, ((core::int) → self::ET5 /* = core::int */) → (core::int) → self::ET5 /* = core::int */>(#C7);
+  self::StaticType|expectStaticType<(core::String) → self::ET6<core::String> /* = core::String */, ((core::String) → self::ET6<core::String> /* = core::String */) → (core::String) → self::ET6<core::String> /* = core::String */>(#C9);
+}
+static extension-member method StaticType|expectStaticType<T extends core::Object? = dynamic, R extends (self::StaticType|expectStaticType::T%) → self::StaticType|expectStaticType::T% = (dynamic) → dynamic>(lowered final self::StaticType|expectStaticType::T% #this) → self::StaticType|expectStaticType::T% {
+  return #this;
+}
+static extension-member method StaticType|get#expectStaticType<T extends core::Object? = dynamic>(lowered final self::StaticType|get#expectStaticType::T% #this) → <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T%
+  return <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T% => self::StaticType|expectStaticType<self::StaticType|get#expectStaticType::T%, R>(#this);
+
+constants  {
+  #C1 = static-tearoff self::ET1|_#new#tearOff
+  #C2 = static-tearoff self::ET2|_#new#tearOff
+  #C3 = instantiation #C2 <core::String*>
+  #C4 = static-tearoff self::ET3|_#new#tearOff
+  #C5 = static-tearoff self::ET4|_#new#tearOff
+  #C6 = instantiation #C5 <core::String*>
+  #C7 = static-tearoff self::ET5|_#n#tearOff
+  #C8 = static-tearoff self::ET6|_#n#tearOff
+  #C9 = instantiation #C8 <core::String*>
+}
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.weak.outline.expect
new file mode 100644
index 0000000..14d468d
--- /dev/null
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.weak.outline.expect
@@ -0,0 +1,63 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+typedef Exactly<invariant T extends core::Object? = dynamic> = (T%) → T%;
+extension StaticType<T extends core::Object? = dynamic> on T% {
+  method expectStaticType = self::StaticType|expectStaticType;
+  tearoff expectStaticType = self::StaticType|get#expectStaticType;
+}
+extension type ET1(core::int id) {
+  constructor • = self::ET1|;
+  tearoff • = self::ET1|_#new#tearOff;
+}
+extension type ET2<T extends core::Object? = dynamic>(T% id) {
+  constructor • = self::ET2|;
+  tearoff • = self::ET2|_#new#tearOff;
+}
+extension type ET3(core::int id) {
+  constructor • = self::ET3|;
+  tearoff • = self::ET3|_#new#tearOff;
+}
+extension type ET4<T extends core::Object? = dynamic>(T% id) {
+  constructor • = self::ET4|;
+  tearoff • = self::ET4|_#new#tearOff;
+}
+extension type ET5(core::int id) {
+  constructor n = self::ET5|n;
+  tearoff n = self::ET5|_#n#tearOff;
+}
+extension type ET6<T extends core::Object? = dynamic>(T% id) {
+  constructor n = self::ET6|n;
+  tearoff n = self::ET6|_#n#tearOff;
+}
+static inline-class-member method ET1|(core::int id) → self::ET1 /* = core::int */
+  ;
+static inline-class-member method ET1|_#new#tearOff(core::int id) → self::ET1 /* = core::int */
+  return self::ET1|(id);
+static inline-class-member method ET2|<T extends core::Object? = dynamic>(self::ET2|::T% id) → self::ET2<self::ET2|::T%> /* = self::ET2|::T% */
+  ;
+static inline-class-member method ET2|_#new#tearOff<T extends core::Object? = dynamic>(self::ET2|_#new#tearOff::T% id) → self::ET2<self::ET2|_#new#tearOff::T%> /* = self::ET2|_#new#tearOff::T% */
+  return self::ET2|<self::ET2|_#new#tearOff::T%>(id);
+static inline-class-member method ET3|(core::int id) → self::ET3 /* = core::int */
+  ;
+static inline-class-member method ET3|_#new#tearOff(core::int id) → self::ET3 /* = core::int */
+  return self::ET3|(id);
+static inline-class-member method ET4|<T extends core::Object? = dynamic>(self::ET4|::T% id) → self::ET4<self::ET4|::T%> /* = self::ET4|::T% */
+  ;
+static inline-class-member method ET4|_#new#tearOff<T extends core::Object? = dynamic>(self::ET4|_#new#tearOff::T% id) → self::ET4<self::ET4|_#new#tearOff::T%> /* = self::ET4|_#new#tearOff::T% */
+  return self::ET4|<self::ET4|_#new#tearOff::T%>(id);
+static inline-class-member method ET5|n(core::int id) → self::ET5 /* = core::int */
+  ;
+static inline-class-member method ET5|_#n#tearOff(core::int id) → self::ET5 /* = core::int */
+  return self::ET5|n(id);
+static inline-class-member method ET6|n<T extends core::Object? = dynamic>(self::ET6|n::T% id) → self::ET6<self::ET6|n::T%> /* = self::ET6|n::T% */
+  ;
+static inline-class-member method ET6|_#n#tearOff<T extends core::Object? = dynamic>(self::ET6|_#n#tearOff::T% id) → self::ET6<self::ET6|_#n#tearOff::T%> /* = self::ET6|_#n#tearOff::T% */
+  return self::ET6|n<self::ET6|_#n#tearOff::T%>(id);
+static method main() → dynamic
+  ;
+static extension-member method StaticType|expectStaticType<T extends core::Object? = dynamic, R extends (self::StaticType|expectStaticType::T%) → self::StaticType|expectStaticType::T% = (dynamic) → dynamic>(lowered final self::StaticType|expectStaticType::T% #this) → self::StaticType|expectStaticType::T%
+  ;
+static extension-member method StaticType|get#expectStaticType<T extends core::Object? = dynamic>(lowered final self::StaticType|get#expectStaticType::T% #this) → <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T%
+  return <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T% => self::StaticType|expectStaticType<self::StaticType|get#expectStaticType::T%, R>(#this);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.weak.transformed.expect
new file mode 100644
index 0000000..2fb28c1
--- /dev/null
+++ b/pkg/front_end/testcases/inline_class/extension_types/issue53211.dart.weak.transformed.expect
@@ -0,0 +1,94 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+typedef Exactly<invariant T extends core::Object? = dynamic> = (T%) → T%;
+extension StaticType<T extends core::Object? = dynamic> on T% {
+  method expectStaticType = self::StaticType|expectStaticType;
+  tearoff expectStaticType = self::StaticType|get#expectStaticType;
+}
+extension type ET1(core::int id) {
+  constructor • = self::ET1|;
+  tearoff • = self::ET1|_#new#tearOff;
+}
+extension type ET2<T extends core::Object? = dynamic>(T% id) {
+  constructor • = self::ET2|;
+  tearoff • = self::ET2|_#new#tearOff;
+}
+extension type ET3(core::int id) {
+  constructor • = self::ET3|;
+  tearoff • = self::ET3|_#new#tearOff;
+}
+extension type ET4<T extends core::Object? = dynamic>(T% id) {
+  constructor • = self::ET4|;
+  tearoff • = self::ET4|_#new#tearOff;
+}
+extension type ET5(core::int id) {
+  constructor n = self::ET5|n;
+  tearoff n = self::ET5|_#n#tearOff;
+}
+extension type ET6<T extends core::Object? = dynamic>(T% id) {
+  constructor n = self::ET6|n;
+  tearoff n = self::ET6|_#n#tearOff;
+}
+static inline-class-member method ET1|(core::int id) → self::ET1 /* = core::int */ {
+  lowered final self::ET1 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET1|_#new#tearOff(core::int id) → self::ET1 /* = core::int */
+  return self::ET1|(id);
+static inline-class-member method ET2|<T extends core::Object? = dynamic>(self::ET2|::T% id) → self::ET2<self::ET2|::T%> /* = self::ET2|::T% */ {
+  lowered final self::ET2<self::ET2|::T%> /* = self::ET2|::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET2|_#new#tearOff<T extends core::Object? = dynamic>(self::ET2|_#new#tearOff::T% id) → self::ET2<self::ET2|_#new#tearOff::T%> /* = self::ET2|_#new#tearOff::T% */
+  return self::ET2|<self::ET2|_#new#tearOff::T%>(id);
+static inline-class-member method ET3|(core::int id) → self::ET3 /* = core::int */ {
+  lowered final self::ET3 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET3|_#new#tearOff(core::int id) → self::ET3 /* = core::int */
+  return self::ET3|(id);
+static inline-class-member method ET4|<T extends core::Object? = dynamic>(self::ET4|::T% id) → self::ET4<self::ET4|::T%> /* = self::ET4|::T% */ {
+  lowered final self::ET4<self::ET4|::T%> /* = self::ET4|::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET4|_#new#tearOff<T extends core::Object? = dynamic>(self::ET4|_#new#tearOff::T% id) → self::ET4<self::ET4|_#new#tearOff::T%> /* = self::ET4|_#new#tearOff::T% */
+  return self::ET4|<self::ET4|_#new#tearOff::T%>(id);
+static inline-class-member method ET5|n(core::int id) → self::ET5 /* = core::int */ {
+  lowered final self::ET5 /* = core::int */ #this = id;
+  return #this;
+}
+static inline-class-member method ET5|_#n#tearOff(core::int id) → self::ET5 /* = core::int */
+  return self::ET5|n(id);
+static inline-class-member method ET6|n<T extends core::Object? = dynamic>(self::ET6|n::T% id) → self::ET6<self::ET6|n::T%> /* = self::ET6|n::T% */ {
+  lowered final self::ET6<self::ET6|n::T%> /* = self::ET6|n::T% */ #this = id;
+  return #this;
+}
+static inline-class-member method ET6|_#n#tearOff<T extends core::Object? = dynamic>(self::ET6|_#n#tearOff::T% id) → self::ET6<self::ET6|_#n#tearOff::T%> /* = self::ET6|_#n#tearOff::T% */
+  return self::ET6|n<self::ET6|_#n#tearOff::T%>(id);
+static method main() → dynamic {
+  self::StaticType|expectStaticType<(core::int) → self::ET1 /* = core::int */, ((core::int) → self::ET1 /* = core::int */) → (core::int) → self::ET1 /* = core::int */>(#C1);
+  self::StaticType|expectStaticType<(core::String) → self::ET2<core::String> /* = core::String */, ((core::String) → self::ET2<core::String> /* = core::String */) → (core::String) → self::ET2<core::String> /* = core::String */>(#C3);
+  self::StaticType|expectStaticType<(core::int) → self::ET3 /* = core::int */, ((core::int) → self::ET3 /* = core::int */) → (core::int) → self::ET3 /* = core::int */>(#C4);
+  self::StaticType|expectStaticType<(core::String) → self::ET4<core::String> /* = core::String */, ((core::String) → self::ET4<core::String> /* = core::String */) → (core::String) → self::ET4<core::String> /* = core::String */>(#C6);
+  self::StaticType|expectStaticType<(core::int) → self::ET5 /* = core::int */, ((core::int) → self::ET5 /* = core::int */) → (core::int) → self::ET5 /* = core::int */>(#C7);
+  self::StaticType|expectStaticType<(core::String) → self::ET6<core::String> /* = core::String */, ((core::String) → self::ET6<core::String> /* = core::String */) → (core::String) → self::ET6<core::String> /* = core::String */>(#C9);
+}
+static extension-member method StaticType|expectStaticType<T extends core::Object? = dynamic, R extends (self::StaticType|expectStaticType::T%) → self::StaticType|expectStaticType::T% = (dynamic) → dynamic>(lowered final self::StaticType|expectStaticType::T% #this) → self::StaticType|expectStaticType::T% {
+  return #this;
+}
+static extension-member method StaticType|get#expectStaticType<T extends core::Object? = dynamic>(lowered final self::StaticType|get#expectStaticType::T% #this) → <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T%
+  return <R extends (self::StaticType|get#expectStaticType::T%) → self::StaticType|get#expectStaticType::T% = (dynamic) → dynamic>() → self::StaticType|get#expectStaticType::T% => self::StaticType|expectStaticType<self::StaticType|get#expectStaticType::T%, R>(#this);
+
+constants  {
+  #C1 = static-tearoff self::ET1|_#new#tearOff
+  #C2 = static-tearoff self::ET2|_#new#tearOff
+  #C3 = instantiation #C2 <core::String*>
+  #C4 = static-tearoff self::ET3|_#new#tearOff
+  #C5 = static-tearoff self::ET4|_#new#tearOff
+  #C6 = instantiation #C5 <core::String*>
+  #C7 = static-tearoff self::ET5|_#n#tearOff
+  #C8 = static-tearoff self::ET6|_#n#tearOff
+  #C9 = instantiation #C8 <core::String*>
+}
diff --git a/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.strong.expect
index e905037..e623a74 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.strong.expect
@@ -15,11 +15,11 @@
   constructor name1 = self::A|name1;
   tearoff name1 = self::A|_#name1#tearOff;
 }
-static inline-class-member method A|_(dynamic value) → self::A /* = core::int */ {
+static inline-class-member method A|_(core::int value) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = value;
   return #this;
 }
-static inline-class-member method A|_#_#tearOff(dynamic value) → self::A /* = core::int */
+static inline-class-member method A|_#_#tearOff(core::int value) → self::A /* = core::int */
   return self::A|_(value);
 static inline-class-member method A|name1(core::int value) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = value;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.strong.transformed.expect
index e905037..e623a74 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.strong.transformed.expect
@@ -15,11 +15,11 @@
   constructor name1 = self::A|name1;
   tearoff name1 = self::A|_#name1#tearOff;
 }
-static inline-class-member method A|_(dynamic value) → self::A /* = core::int */ {
+static inline-class-member method A|_(core::int value) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = value;
   return #this;
 }
-static inline-class-member method A|_#_#tearOff(dynamic value) → self::A /* = core::int */
+static inline-class-member method A|_#_#tearOff(core::int value) → self::A /* = core::int */
   return self::A|_(value);
 static inline-class-member method A|name1(core::int value) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = value;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.expect
index e905037..e623a74 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.expect
@@ -15,11 +15,11 @@
   constructor name1 = self::A|name1;
   tearoff name1 = self::A|_#name1#tearOff;
 }
-static inline-class-member method A|_(dynamic value) → self::A /* = core::int */ {
+static inline-class-member method A|_(core::int value) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = value;
   return #this;
 }
-static inline-class-member method A|_#_#tearOff(dynamic value) → self::A /* = core::int */
+static inline-class-member method A|_#_#tearOff(core::int value) → self::A /* = core::int */
   return self::A|_(value);
 static inline-class-member method A|name1(core::int value) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = value;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.modular.expect
index e905037..e623a74 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.modular.expect
@@ -15,11 +15,11 @@
   constructor name1 = self::A|name1;
   tearoff name1 = self::A|_#name1#tearOff;
 }
-static inline-class-member method A|_(dynamic value) → self::A /* = core::int */ {
+static inline-class-member method A|_(core::int value) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = value;
   return #this;
 }
-static inline-class-member method A|_#_#tearOff(dynamic value) → self::A /* = core::int */
+static inline-class-member method A|_#_#tearOff(core::int value) → self::A /* = core::int */
   return self::A|_(value);
 static inline-class-member method A|name1(core::int value) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = value;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.outline.expect
index f9c5fe2..10d648d 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.outline.expect
@@ -8,9 +8,9 @@
   constructor name1 = self::A|name1;
   tearoff name1 = self::A|_#name1#tearOff;
 }
-static inline-class-member method A|_(dynamic value) → self::A /* = core::int */
+static inline-class-member method A|_(core::int value) → self::A /* = core::int */
   ;
-static inline-class-member method A|_#_#tearOff(dynamic value) → self::A /* = core::int */
+static inline-class-member method A|_#_#tearOff(core::int value) → self::A /* = core::int */
   return self::A|_(value);
 static inline-class-member method A|name1(core::int value) → self::A /* = core::int */
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.transformed.expect
index e905037..e623a74 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/member_not_found.dart.weak.transformed.expect
@@ -15,11 +15,11 @@
   constructor name1 = self::A|name1;
   tearoff name1 = self::A|_#name1#tearOff;
 }
-static inline-class-member method A|_(dynamic value) → self::A /* = core::int */ {
+static inline-class-member method A|_(core::int value) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = value;
   return #this;
 }
-static inline-class-member method A|_#_#tearOff(dynamic value) → self::A /* = core::int */
+static inline-class-member method A|_#_#tearOff(core::int value) → self::A /* = core::int */
   return self::A|_(value);
 static inline-class-member method A|name1(core::int value) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = value;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.strong.expect
index 9199444..7556efe 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.strong.expect
@@ -60,11 +60,11 @@
 static extension-member method _extension#0|get#setter(lowered final core::Object #this) → core::int
   return 42;
 static extension-member method _extension#0|set#getter(lowered final core::Object #this, core::int value) → void {}
-static inline-class-member method InlineClass|(dynamic it) → self::InlineClass /* = core::int */ {
+static inline-class-member method InlineClass|(core::int it) → self::InlineClass /* = core::int */ {
   lowered final self::InlineClass /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method InlineClass|_#new#tearOff(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|_#new#tearOff(core::int it) → self::InlineClass /* = core::int */
   return self::InlineClass|(it);
 static inline-class-member method InlineClass|test(lowered final self::InlineClass /* = core::int */ #this) → dynamic {
   core::int a = self::InlineClass|+(#this, 2);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.strong.transformed.expect
index 75dc287..73d2d1d 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.strong.transformed.expect
@@ -60,11 +60,11 @@
 static extension-member method _extension#0|get#setter(lowered final core::Object #this) → core::int
   return 42;
 static extension-member method _extension#0|set#getter(lowered final core::Object #this, core::int value) → void {}
-static inline-class-member method InlineClass|(dynamic it) → self::InlineClass /* = core::int */ {
+static inline-class-member method InlineClass|(core::int it) → self::InlineClass /* = core::int */ {
   lowered final self::InlineClass /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method InlineClass|_#new#tearOff(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|_#new#tearOff(core::int it) → self::InlineClass /* = core::int */
   return self::InlineClass|(it);
 static inline-class-member method InlineClass|test(lowered final self::InlineClass /* = core::int */ #this) → dynamic {
   core::int a = self::InlineClass|+(#this, 2);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.expect
index 9199444..7556efe 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.expect
@@ -60,11 +60,11 @@
 static extension-member method _extension#0|get#setter(lowered final core::Object #this) → core::int
   return 42;
 static extension-member method _extension#0|set#getter(lowered final core::Object #this, core::int value) → void {}
-static inline-class-member method InlineClass|(dynamic it) → self::InlineClass /* = core::int */ {
+static inline-class-member method InlineClass|(core::int it) → self::InlineClass /* = core::int */ {
   lowered final self::InlineClass /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method InlineClass|_#new#tearOff(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|_#new#tearOff(core::int it) → self::InlineClass /* = core::int */
   return self::InlineClass|(it);
 static inline-class-member method InlineClass|test(lowered final self::InlineClass /* = core::int */ #this) → dynamic {
   core::int a = self::InlineClass|+(#this, 2);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.modular.expect
index 9199444..7556efe 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.modular.expect
@@ -60,11 +60,11 @@
 static extension-member method _extension#0|get#setter(lowered final core::Object #this) → core::int
   return 42;
 static extension-member method _extension#0|set#getter(lowered final core::Object #this, core::int value) → void {}
-static inline-class-member method InlineClass|(dynamic it) → self::InlineClass /* = core::int */ {
+static inline-class-member method InlineClass|(core::int it) → self::InlineClass /* = core::int */ {
   lowered final self::InlineClass /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method InlineClass|_#new#tearOff(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|_#new#tearOff(core::int it) → self::InlineClass /* = core::int */
   return self::InlineClass|(it);
 static inline-class-member method InlineClass|test(lowered final self::InlineClass /* = core::int */ #this) → dynamic {
   core::int a = self::InlineClass|+(#this, 2);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.outline.expect
index 7c841cf..a79ca5a 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.outline.expect
@@ -28,9 +28,9 @@
   ;
 static extension-member method _extension#0|set#getter(lowered final core::Object #this, core::int value) → void
   ;
-static inline-class-member method InlineClass|(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|(core::int it) → self::InlineClass /* = core::int */
   ;
-static inline-class-member method InlineClass|_#new#tearOff(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|_#new#tearOff(core::int it) → self::InlineClass /* = core::int */
   return self::InlineClass|(it);
 static inline-class-member method InlineClass|test(lowered final self::InlineClass /* = core::int */ #this) → dynamic
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.transformed.expect
index 75dc287..73d2d1d 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/method_access.dart.weak.transformed.expect
@@ -60,11 +60,11 @@
 static extension-member method _extension#0|get#setter(lowered final core::Object #this) → core::int
   return 42;
 static extension-member method _extension#0|set#getter(lowered final core::Object #this, core::int value) → void {}
-static inline-class-member method InlineClass|(dynamic it) → self::InlineClass /* = core::int */ {
+static inline-class-member method InlineClass|(core::int it) → self::InlineClass /* = core::int */ {
   lowered final self::InlineClass /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method InlineClass|_#new#tearOff(dynamic it) → self::InlineClass /* = core::int */
+static inline-class-member method InlineClass|_#new#tearOff(core::int it) → self::InlineClass /* = core::int */
   return self::InlineClass|(it);
 static inline-class-member method InlineClass|test(lowered final self::InlineClass /* = core::int */ #this) → dynamic {
   core::int a = self::InlineClass|+(#this, 2);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.strong.expect
index 4595a81..e47ee55 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.strong.expect
@@ -97,75 +97,75 @@
   constructor • = self::ET_CovariantAlias2|;
   tearoff • = self::ET_CovariantAlias2|_#new#tearOff;
 }
-static inline-class-member method ET_Contravariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ {
+static inline-class-member method ET_Contravariant|<T extends core::Object? = dynamic>((self::ET_Contravariant|::T%) → void f) → self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ {
   lowered final self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Contravariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Contravariant<self::ET_Contravariant|_#new#tearOff::T%> /* = (self::ET_Contravariant|_#new#tearOff::T%) → void */
+static inline-class-member method ET_Contravariant|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_Contravariant|_#new#tearOff::T%) → void f) → self::ET_Contravariant<self::ET_Contravariant|_#new#tearOff::T%> /* = (self::ET_Contravariant|_#new#tearOff::T%) → void */
   return self::ET_Contravariant|<self::ET_Contravariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Invariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ {
+static inline-class-member method ET_Invariant|<T extends core::Object? = dynamic>(<S extends self::ET_Invariant|::T% = dynamic>() → void f) → self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ {
   lowered final self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Invariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Invariant<self::ET_Invariant|_#new#tearOff::T%> /* = <S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void */
+static inline-class-member method ET_Invariant|_#new#tearOff<T extends core::Object? = dynamic>(<S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void f) → self::ET_Invariant<self::ET_Invariant|_#new#tearOff::T%> /* = <S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void */
   return self::ET_Invariant|<self::ET_Invariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Covariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ {
+static inline-class-member method ET_Covariant|<T extends core::Object? = dynamic>(() → self::ET_Covariant|::T% f) → self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ {
   lowered final self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Covariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Covariant<self::ET_Covariant|_#new#tearOff::T%> /* = () → self::ET_Covariant|_#new#tearOff::T% */
+static inline-class-member method ET_Covariant|_#new#tearOff<T extends core::Object? = dynamic>(() → self::ET_Covariant|_#new#tearOff::T% f) → self::ET_Covariant<self::ET_Covariant|_#new#tearOff::T%> /* = () → self::ET_Covariant|_#new#tearOff::T% */
   return self::ET_Covariant|<self::ET_Covariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Bivariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ {
+static inline-class-member method ET_Bivariant|<T extends core::Object? = dynamic>((self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% f) → self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ {
   lowered final self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Bivariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Bivariant<self::ET_Bivariant|_#new#tearOff::T%> /* = (self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% */
+static inline-class-member method ET_Bivariant|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% f) → self::ET_Bivariant<self::ET_Bivariant|_#new#tearOff::T%> /* = (self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% */
   return self::ET_Bivariant|<self::ET_Bivariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias|<T extends core::Object? = dynamic>((self::ET_ContravariantAlias|::T%) → void f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ {
   lowered final self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|_#new#tearOff::T%> /* = (self::ET_ContravariantAlias|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_ContravariantAlias|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|_#new#tearOff::T%> /* = (self::ET_ContravariantAlias|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias|<self::ET_ContravariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_InvariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ {
+static inline-class-member method ET_InvariantAlias|<T extends core::Object? = dynamic>(<S extends self::ET_InvariantAlias|::T% = dynamic>() → void f) → self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ {
   lowered final self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_InvariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_InvariantAlias<self::ET_InvariantAlias|_#new#tearOff::T%> /* = <S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void */
+static inline-class-member method ET_InvariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(<S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void f) → self::ET_InvariantAlias<self::ET_InvariantAlias|_#new#tearOff::T%> /* = <S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void */
   return self::ET_InvariantAlias|<self::ET_InvariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ {
+static inline-class-member method ET_CovariantAlias|<T extends core::Object? = dynamic>(() → self::ET_CovariantAlias|::T% f) → self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ {
   lowered final self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias<self::ET_CovariantAlias|_#new#tearOff::T%> /* = () → self::ET_CovariantAlias|_#new#tearOff::T% */
+static inline-class-member method ET_CovariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(() → self::ET_CovariantAlias|_#new#tearOff::T% f) → self::ET_CovariantAlias<self::ET_CovariantAlias|_#new#tearOff::T%> /* = () → self::ET_CovariantAlias|_#new#tearOff::T% */
   return self::ET_CovariantAlias|<self::ET_CovariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_BivariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ {
+static inline-class-member method ET_BivariantAlias|<T extends core::Object? = dynamic>((self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% f) → self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ {
   lowered final self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_BivariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_BivariantAlias<self::ET_BivariantAlias|_#new#tearOff::T%> /* = (self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% */
+static inline-class-member method ET_BivariantAlias|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% f) → self::ET_BivariantAlias<self::ET_BivariantAlias|_#new#tearOff::T%> /* = (self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% */
   return self::ET_BivariantAlias|<self::ET_BivariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias1|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias1|<T extends core::Object? = dynamic>(() → (self::ET_ContravariantAlias1|::T%) → void f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ {
   lowered final self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|_#new#tearOff::T%> /* = () → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(() → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|_#new#tearOff::T%> /* = () → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias1|<self::ET_ContravariantAlias1|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias2|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias2|<T extends core::Object? = dynamic>((() → self::ET_ContravariantAlias2|::T%) → void f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ {
   lowered final self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|_#new#tearOff::T%> /* = (() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>((() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|_#new#tearOff::T%> /* = (() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias2|<self::ET_ContravariantAlias2|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias1|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ {
+static inline-class-member method ET_CovariantAlias1|<T extends core::Object? = dynamic>(() → () → self::ET_CovariantAlias1|::T% f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ {
   lowered final self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|_#new#tearOff::T%> /* = () → () → self::ET_CovariantAlias1|_#new#tearOff::T% */
+static inline-class-member method ET_CovariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(() → () → self::ET_CovariantAlias1|_#new#tearOff::T% f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|_#new#tearOff::T%> /* = () → () → self::ET_CovariantAlias1|_#new#tearOff::T% */
   return self::ET_CovariantAlias1|<self::ET_CovariantAlias1|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias2|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ {
+static inline-class-member method ET_CovariantAlias2|<T extends core::Object? = dynamic>(((self::ET_CovariantAlias2|::T%) → void) → void f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ {
   lowered final self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|_#new#tearOff::T%> /* = ((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void */
+static inline-class-member method ET_CovariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|_#new#tearOff::T%> /* = ((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void */
   return self::ET_CovariantAlias2|<self::ET_CovariantAlias2|_#new#tearOff::T%>(f);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.strong.transformed.expect
index 4595a81..e47ee55 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.strong.transformed.expect
@@ -97,75 +97,75 @@
   constructor • = self::ET_CovariantAlias2|;
   tearoff • = self::ET_CovariantAlias2|_#new#tearOff;
 }
-static inline-class-member method ET_Contravariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ {
+static inline-class-member method ET_Contravariant|<T extends core::Object? = dynamic>((self::ET_Contravariant|::T%) → void f) → self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ {
   lowered final self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Contravariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Contravariant<self::ET_Contravariant|_#new#tearOff::T%> /* = (self::ET_Contravariant|_#new#tearOff::T%) → void */
+static inline-class-member method ET_Contravariant|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_Contravariant|_#new#tearOff::T%) → void f) → self::ET_Contravariant<self::ET_Contravariant|_#new#tearOff::T%> /* = (self::ET_Contravariant|_#new#tearOff::T%) → void */
   return self::ET_Contravariant|<self::ET_Contravariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Invariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ {
+static inline-class-member method ET_Invariant|<T extends core::Object? = dynamic>(<S extends self::ET_Invariant|::T% = dynamic>() → void f) → self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ {
   lowered final self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Invariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Invariant<self::ET_Invariant|_#new#tearOff::T%> /* = <S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void */
+static inline-class-member method ET_Invariant|_#new#tearOff<T extends core::Object? = dynamic>(<S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void f) → self::ET_Invariant<self::ET_Invariant|_#new#tearOff::T%> /* = <S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void */
   return self::ET_Invariant|<self::ET_Invariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Covariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ {
+static inline-class-member method ET_Covariant|<T extends core::Object? = dynamic>(() → self::ET_Covariant|::T% f) → self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ {
   lowered final self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Covariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Covariant<self::ET_Covariant|_#new#tearOff::T%> /* = () → self::ET_Covariant|_#new#tearOff::T% */
+static inline-class-member method ET_Covariant|_#new#tearOff<T extends core::Object? = dynamic>(() → self::ET_Covariant|_#new#tearOff::T% f) → self::ET_Covariant<self::ET_Covariant|_#new#tearOff::T%> /* = () → self::ET_Covariant|_#new#tearOff::T% */
   return self::ET_Covariant|<self::ET_Covariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Bivariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ {
+static inline-class-member method ET_Bivariant|<T extends core::Object? = dynamic>((self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% f) → self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ {
   lowered final self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Bivariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Bivariant<self::ET_Bivariant|_#new#tearOff::T%> /* = (self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% */
+static inline-class-member method ET_Bivariant|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% f) → self::ET_Bivariant<self::ET_Bivariant|_#new#tearOff::T%> /* = (self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% */
   return self::ET_Bivariant|<self::ET_Bivariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias|<T extends core::Object? = dynamic>((self::ET_ContravariantAlias|::T%) → void f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ {
   lowered final self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|_#new#tearOff::T%> /* = (self::ET_ContravariantAlias|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_ContravariantAlias|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|_#new#tearOff::T%> /* = (self::ET_ContravariantAlias|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias|<self::ET_ContravariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_InvariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ {
+static inline-class-member method ET_InvariantAlias|<T extends core::Object? = dynamic>(<S extends self::ET_InvariantAlias|::T% = dynamic>() → void f) → self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ {
   lowered final self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_InvariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_InvariantAlias<self::ET_InvariantAlias|_#new#tearOff::T%> /* = <S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void */
+static inline-class-member method ET_InvariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(<S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void f) → self::ET_InvariantAlias<self::ET_InvariantAlias|_#new#tearOff::T%> /* = <S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void */
   return self::ET_InvariantAlias|<self::ET_InvariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ {
+static inline-class-member method ET_CovariantAlias|<T extends core::Object? = dynamic>(() → self::ET_CovariantAlias|::T% f) → self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ {
   lowered final self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias<self::ET_CovariantAlias|_#new#tearOff::T%> /* = () → self::ET_CovariantAlias|_#new#tearOff::T% */
+static inline-class-member method ET_CovariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(() → self::ET_CovariantAlias|_#new#tearOff::T% f) → self::ET_CovariantAlias<self::ET_CovariantAlias|_#new#tearOff::T%> /* = () → self::ET_CovariantAlias|_#new#tearOff::T% */
   return self::ET_CovariantAlias|<self::ET_CovariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_BivariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ {
+static inline-class-member method ET_BivariantAlias|<T extends core::Object? = dynamic>((self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% f) → self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ {
   lowered final self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_BivariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_BivariantAlias<self::ET_BivariantAlias|_#new#tearOff::T%> /* = (self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% */
+static inline-class-member method ET_BivariantAlias|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% f) → self::ET_BivariantAlias<self::ET_BivariantAlias|_#new#tearOff::T%> /* = (self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% */
   return self::ET_BivariantAlias|<self::ET_BivariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias1|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias1|<T extends core::Object? = dynamic>(() → (self::ET_ContravariantAlias1|::T%) → void f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ {
   lowered final self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|_#new#tearOff::T%> /* = () → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(() → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|_#new#tearOff::T%> /* = () → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias1|<self::ET_ContravariantAlias1|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias2|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias2|<T extends core::Object? = dynamic>((() → self::ET_ContravariantAlias2|::T%) → void f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ {
   lowered final self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|_#new#tearOff::T%> /* = (() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>((() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|_#new#tearOff::T%> /* = (() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias2|<self::ET_ContravariantAlias2|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias1|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ {
+static inline-class-member method ET_CovariantAlias1|<T extends core::Object? = dynamic>(() → () → self::ET_CovariantAlias1|::T% f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ {
   lowered final self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|_#new#tearOff::T%> /* = () → () → self::ET_CovariantAlias1|_#new#tearOff::T% */
+static inline-class-member method ET_CovariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(() → () → self::ET_CovariantAlias1|_#new#tearOff::T% f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|_#new#tearOff::T%> /* = () → () → self::ET_CovariantAlias1|_#new#tearOff::T% */
   return self::ET_CovariantAlias1|<self::ET_CovariantAlias1|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias2|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ {
+static inline-class-member method ET_CovariantAlias2|<T extends core::Object? = dynamic>(((self::ET_CovariantAlias2|::T%) → void) → void f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ {
   lowered final self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|_#new#tearOff::T%> /* = ((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void */
+static inline-class-member method ET_CovariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|_#new#tearOff::T%> /* = ((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void */
   return self::ET_CovariantAlias2|<self::ET_CovariantAlias2|_#new#tearOff::T%>(f);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.expect
index 4595a81..e47ee55 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.expect
@@ -97,75 +97,75 @@
   constructor • = self::ET_CovariantAlias2|;
   tearoff • = self::ET_CovariantAlias2|_#new#tearOff;
 }
-static inline-class-member method ET_Contravariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ {
+static inline-class-member method ET_Contravariant|<T extends core::Object? = dynamic>((self::ET_Contravariant|::T%) → void f) → self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ {
   lowered final self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Contravariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Contravariant<self::ET_Contravariant|_#new#tearOff::T%> /* = (self::ET_Contravariant|_#new#tearOff::T%) → void */
+static inline-class-member method ET_Contravariant|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_Contravariant|_#new#tearOff::T%) → void f) → self::ET_Contravariant<self::ET_Contravariant|_#new#tearOff::T%> /* = (self::ET_Contravariant|_#new#tearOff::T%) → void */
   return self::ET_Contravariant|<self::ET_Contravariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Invariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ {
+static inline-class-member method ET_Invariant|<T extends core::Object? = dynamic>(<S extends self::ET_Invariant|::T% = dynamic>() → void f) → self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ {
   lowered final self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Invariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Invariant<self::ET_Invariant|_#new#tearOff::T%> /* = <S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void */
+static inline-class-member method ET_Invariant|_#new#tearOff<T extends core::Object? = dynamic>(<S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void f) → self::ET_Invariant<self::ET_Invariant|_#new#tearOff::T%> /* = <S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void */
   return self::ET_Invariant|<self::ET_Invariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Covariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ {
+static inline-class-member method ET_Covariant|<T extends core::Object? = dynamic>(() → self::ET_Covariant|::T% f) → self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ {
   lowered final self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Covariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Covariant<self::ET_Covariant|_#new#tearOff::T%> /* = () → self::ET_Covariant|_#new#tearOff::T% */
+static inline-class-member method ET_Covariant|_#new#tearOff<T extends core::Object? = dynamic>(() → self::ET_Covariant|_#new#tearOff::T% f) → self::ET_Covariant<self::ET_Covariant|_#new#tearOff::T%> /* = () → self::ET_Covariant|_#new#tearOff::T% */
   return self::ET_Covariant|<self::ET_Covariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Bivariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ {
+static inline-class-member method ET_Bivariant|<T extends core::Object? = dynamic>((self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% f) → self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ {
   lowered final self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Bivariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Bivariant<self::ET_Bivariant|_#new#tearOff::T%> /* = (self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% */
+static inline-class-member method ET_Bivariant|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% f) → self::ET_Bivariant<self::ET_Bivariant|_#new#tearOff::T%> /* = (self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% */
   return self::ET_Bivariant|<self::ET_Bivariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias|<T extends core::Object? = dynamic>((self::ET_ContravariantAlias|::T%) → void f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ {
   lowered final self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|_#new#tearOff::T%> /* = (self::ET_ContravariantAlias|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_ContravariantAlias|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|_#new#tearOff::T%> /* = (self::ET_ContravariantAlias|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias|<self::ET_ContravariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_InvariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ {
+static inline-class-member method ET_InvariantAlias|<T extends core::Object? = dynamic>(<S extends self::ET_InvariantAlias|::T% = dynamic>() → void f) → self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ {
   lowered final self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_InvariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_InvariantAlias<self::ET_InvariantAlias|_#new#tearOff::T%> /* = <S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void */
+static inline-class-member method ET_InvariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(<S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void f) → self::ET_InvariantAlias<self::ET_InvariantAlias|_#new#tearOff::T%> /* = <S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void */
   return self::ET_InvariantAlias|<self::ET_InvariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ {
+static inline-class-member method ET_CovariantAlias|<T extends core::Object? = dynamic>(() → self::ET_CovariantAlias|::T% f) → self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ {
   lowered final self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias<self::ET_CovariantAlias|_#new#tearOff::T%> /* = () → self::ET_CovariantAlias|_#new#tearOff::T% */
+static inline-class-member method ET_CovariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(() → self::ET_CovariantAlias|_#new#tearOff::T% f) → self::ET_CovariantAlias<self::ET_CovariantAlias|_#new#tearOff::T%> /* = () → self::ET_CovariantAlias|_#new#tearOff::T% */
   return self::ET_CovariantAlias|<self::ET_CovariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_BivariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ {
+static inline-class-member method ET_BivariantAlias|<T extends core::Object? = dynamic>((self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% f) → self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ {
   lowered final self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_BivariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_BivariantAlias<self::ET_BivariantAlias|_#new#tearOff::T%> /* = (self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% */
+static inline-class-member method ET_BivariantAlias|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% f) → self::ET_BivariantAlias<self::ET_BivariantAlias|_#new#tearOff::T%> /* = (self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% */
   return self::ET_BivariantAlias|<self::ET_BivariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias1|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias1|<T extends core::Object? = dynamic>(() → (self::ET_ContravariantAlias1|::T%) → void f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ {
   lowered final self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|_#new#tearOff::T%> /* = () → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(() → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|_#new#tearOff::T%> /* = () → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias1|<self::ET_ContravariantAlias1|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias2|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias2|<T extends core::Object? = dynamic>((() → self::ET_ContravariantAlias2|::T%) → void f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ {
   lowered final self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|_#new#tearOff::T%> /* = (() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>((() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|_#new#tearOff::T%> /* = (() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias2|<self::ET_ContravariantAlias2|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias1|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ {
+static inline-class-member method ET_CovariantAlias1|<T extends core::Object? = dynamic>(() → () → self::ET_CovariantAlias1|::T% f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ {
   lowered final self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|_#new#tearOff::T%> /* = () → () → self::ET_CovariantAlias1|_#new#tearOff::T% */
+static inline-class-member method ET_CovariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(() → () → self::ET_CovariantAlias1|_#new#tearOff::T% f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|_#new#tearOff::T%> /* = () → () → self::ET_CovariantAlias1|_#new#tearOff::T% */
   return self::ET_CovariantAlias1|<self::ET_CovariantAlias1|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias2|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ {
+static inline-class-member method ET_CovariantAlias2|<T extends core::Object? = dynamic>(((self::ET_CovariantAlias2|::T%) → void) → void f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ {
   lowered final self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|_#new#tearOff::T%> /* = ((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void */
+static inline-class-member method ET_CovariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|_#new#tearOff::T%> /* = ((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void */
   return self::ET_CovariantAlias2|<self::ET_CovariantAlias2|_#new#tearOff::T%>(f);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.modular.expect
index 4595a81..e47ee55 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.modular.expect
@@ -97,75 +97,75 @@
   constructor • = self::ET_CovariantAlias2|;
   tearoff • = self::ET_CovariantAlias2|_#new#tearOff;
 }
-static inline-class-member method ET_Contravariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ {
+static inline-class-member method ET_Contravariant|<T extends core::Object? = dynamic>((self::ET_Contravariant|::T%) → void f) → self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ {
   lowered final self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Contravariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Contravariant<self::ET_Contravariant|_#new#tearOff::T%> /* = (self::ET_Contravariant|_#new#tearOff::T%) → void */
+static inline-class-member method ET_Contravariant|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_Contravariant|_#new#tearOff::T%) → void f) → self::ET_Contravariant<self::ET_Contravariant|_#new#tearOff::T%> /* = (self::ET_Contravariant|_#new#tearOff::T%) → void */
   return self::ET_Contravariant|<self::ET_Contravariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Invariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ {
+static inline-class-member method ET_Invariant|<T extends core::Object? = dynamic>(<S extends self::ET_Invariant|::T% = dynamic>() → void f) → self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ {
   lowered final self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Invariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Invariant<self::ET_Invariant|_#new#tearOff::T%> /* = <S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void */
+static inline-class-member method ET_Invariant|_#new#tearOff<T extends core::Object? = dynamic>(<S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void f) → self::ET_Invariant<self::ET_Invariant|_#new#tearOff::T%> /* = <S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void */
   return self::ET_Invariant|<self::ET_Invariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Covariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ {
+static inline-class-member method ET_Covariant|<T extends core::Object? = dynamic>(() → self::ET_Covariant|::T% f) → self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ {
   lowered final self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Covariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Covariant<self::ET_Covariant|_#new#tearOff::T%> /* = () → self::ET_Covariant|_#new#tearOff::T% */
+static inline-class-member method ET_Covariant|_#new#tearOff<T extends core::Object? = dynamic>(() → self::ET_Covariant|_#new#tearOff::T% f) → self::ET_Covariant<self::ET_Covariant|_#new#tearOff::T%> /* = () → self::ET_Covariant|_#new#tearOff::T% */
   return self::ET_Covariant|<self::ET_Covariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Bivariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ {
+static inline-class-member method ET_Bivariant|<T extends core::Object? = dynamic>((self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% f) → self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ {
   lowered final self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Bivariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Bivariant<self::ET_Bivariant|_#new#tearOff::T%> /* = (self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% */
+static inline-class-member method ET_Bivariant|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% f) → self::ET_Bivariant<self::ET_Bivariant|_#new#tearOff::T%> /* = (self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% */
   return self::ET_Bivariant|<self::ET_Bivariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias|<T extends core::Object? = dynamic>((self::ET_ContravariantAlias|::T%) → void f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ {
   lowered final self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|_#new#tearOff::T%> /* = (self::ET_ContravariantAlias|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_ContravariantAlias|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|_#new#tearOff::T%> /* = (self::ET_ContravariantAlias|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias|<self::ET_ContravariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_InvariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ {
+static inline-class-member method ET_InvariantAlias|<T extends core::Object? = dynamic>(<S extends self::ET_InvariantAlias|::T% = dynamic>() → void f) → self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ {
   lowered final self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_InvariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_InvariantAlias<self::ET_InvariantAlias|_#new#tearOff::T%> /* = <S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void */
+static inline-class-member method ET_InvariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(<S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void f) → self::ET_InvariantAlias<self::ET_InvariantAlias|_#new#tearOff::T%> /* = <S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void */
   return self::ET_InvariantAlias|<self::ET_InvariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ {
+static inline-class-member method ET_CovariantAlias|<T extends core::Object? = dynamic>(() → self::ET_CovariantAlias|::T% f) → self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ {
   lowered final self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias<self::ET_CovariantAlias|_#new#tearOff::T%> /* = () → self::ET_CovariantAlias|_#new#tearOff::T% */
+static inline-class-member method ET_CovariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(() → self::ET_CovariantAlias|_#new#tearOff::T% f) → self::ET_CovariantAlias<self::ET_CovariantAlias|_#new#tearOff::T%> /* = () → self::ET_CovariantAlias|_#new#tearOff::T% */
   return self::ET_CovariantAlias|<self::ET_CovariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_BivariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ {
+static inline-class-member method ET_BivariantAlias|<T extends core::Object? = dynamic>((self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% f) → self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ {
   lowered final self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_BivariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_BivariantAlias<self::ET_BivariantAlias|_#new#tearOff::T%> /* = (self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% */
+static inline-class-member method ET_BivariantAlias|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% f) → self::ET_BivariantAlias<self::ET_BivariantAlias|_#new#tearOff::T%> /* = (self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% */
   return self::ET_BivariantAlias|<self::ET_BivariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias1|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias1|<T extends core::Object? = dynamic>(() → (self::ET_ContravariantAlias1|::T%) → void f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ {
   lowered final self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|_#new#tearOff::T%> /* = () → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(() → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|_#new#tearOff::T%> /* = () → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias1|<self::ET_ContravariantAlias1|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias2|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias2|<T extends core::Object? = dynamic>((() → self::ET_ContravariantAlias2|::T%) → void f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ {
   lowered final self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|_#new#tearOff::T%> /* = (() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>((() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|_#new#tearOff::T%> /* = (() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias2|<self::ET_ContravariantAlias2|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias1|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ {
+static inline-class-member method ET_CovariantAlias1|<T extends core::Object? = dynamic>(() → () → self::ET_CovariantAlias1|::T% f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ {
   lowered final self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|_#new#tearOff::T%> /* = () → () → self::ET_CovariantAlias1|_#new#tearOff::T% */
+static inline-class-member method ET_CovariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(() → () → self::ET_CovariantAlias1|_#new#tearOff::T% f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|_#new#tearOff::T%> /* = () → () → self::ET_CovariantAlias1|_#new#tearOff::T% */
   return self::ET_CovariantAlias1|<self::ET_CovariantAlias1|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias2|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ {
+static inline-class-member method ET_CovariantAlias2|<T extends core::Object? = dynamic>(((self::ET_CovariantAlias2|::T%) → void) → void f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ {
   lowered final self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|_#new#tearOff::T%> /* = ((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void */
+static inline-class-member method ET_CovariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|_#new#tearOff::T%> /* = ((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void */
   return self::ET_CovariantAlias2|<self::ET_CovariantAlias2|_#new#tearOff::T%>(f);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.outline.expect
index c997b9e..2dfb766 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.outline.expect
@@ -97,51 +97,51 @@
   constructor • = self::ET_CovariantAlias2|;
   tearoff • = self::ET_CovariantAlias2|_#new#tearOff;
 }
-static inline-class-member method ET_Contravariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */
+static inline-class-member method ET_Contravariant|<T extends core::Object? = dynamic>((self::ET_Contravariant|::T%) → void f) → self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */
   ;
-static inline-class-member method ET_Contravariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Contravariant<self::ET_Contravariant|_#new#tearOff::T%> /* = (self::ET_Contravariant|_#new#tearOff::T%) → void */
+static inline-class-member method ET_Contravariant|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_Contravariant|_#new#tearOff::T%) → void f) → self::ET_Contravariant<self::ET_Contravariant|_#new#tearOff::T%> /* = (self::ET_Contravariant|_#new#tearOff::T%) → void */
   return self::ET_Contravariant|<self::ET_Contravariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Invariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */
+static inline-class-member method ET_Invariant|<T extends core::Object? = dynamic>(<S extends self::ET_Invariant|::T% = dynamic>() → void f) → self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */
   ;
-static inline-class-member method ET_Invariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Invariant<self::ET_Invariant|_#new#tearOff::T%> /* = <S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void */
+static inline-class-member method ET_Invariant|_#new#tearOff<T extends core::Object? = dynamic>(<S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void f) → self::ET_Invariant<self::ET_Invariant|_#new#tearOff::T%> /* = <S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void */
   return self::ET_Invariant|<self::ET_Invariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Covariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */
+static inline-class-member method ET_Covariant|<T extends core::Object? = dynamic>(() → self::ET_Covariant|::T% f) → self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */
   ;
-static inline-class-member method ET_Covariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Covariant<self::ET_Covariant|_#new#tearOff::T%> /* = () → self::ET_Covariant|_#new#tearOff::T% */
+static inline-class-member method ET_Covariant|_#new#tearOff<T extends core::Object? = dynamic>(() → self::ET_Covariant|_#new#tearOff::T% f) → self::ET_Covariant<self::ET_Covariant|_#new#tearOff::T%> /* = () → self::ET_Covariant|_#new#tearOff::T% */
   return self::ET_Covariant|<self::ET_Covariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Bivariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */
+static inline-class-member method ET_Bivariant|<T extends core::Object? = dynamic>((self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% f) → self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */
   ;
-static inline-class-member method ET_Bivariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Bivariant<self::ET_Bivariant|_#new#tearOff::T%> /* = (self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% */
+static inline-class-member method ET_Bivariant|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% f) → self::ET_Bivariant<self::ET_Bivariant|_#new#tearOff::T%> /* = (self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% */
   return self::ET_Bivariant|<self::ET_Bivariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */
+static inline-class-member method ET_ContravariantAlias|<T extends core::Object? = dynamic>((self::ET_ContravariantAlias|::T%) → void f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */
   ;
-static inline-class-member method ET_ContravariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|_#new#tearOff::T%> /* = (self::ET_ContravariantAlias|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_ContravariantAlias|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|_#new#tearOff::T%> /* = (self::ET_ContravariantAlias|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias|<self::ET_ContravariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_InvariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */
+static inline-class-member method ET_InvariantAlias|<T extends core::Object? = dynamic>(<S extends self::ET_InvariantAlias|::T% = dynamic>() → void f) → self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */
   ;
-static inline-class-member method ET_InvariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_InvariantAlias<self::ET_InvariantAlias|_#new#tearOff::T%> /* = <S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void */
+static inline-class-member method ET_InvariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(<S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void f) → self::ET_InvariantAlias<self::ET_InvariantAlias|_#new#tearOff::T%> /* = <S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void */
   return self::ET_InvariantAlias|<self::ET_InvariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */
+static inline-class-member method ET_CovariantAlias|<T extends core::Object? = dynamic>(() → self::ET_CovariantAlias|::T% f) → self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */
   ;
-static inline-class-member method ET_CovariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias<self::ET_CovariantAlias|_#new#tearOff::T%> /* = () → self::ET_CovariantAlias|_#new#tearOff::T% */
+static inline-class-member method ET_CovariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(() → self::ET_CovariantAlias|_#new#tearOff::T% f) → self::ET_CovariantAlias<self::ET_CovariantAlias|_#new#tearOff::T%> /* = () → self::ET_CovariantAlias|_#new#tearOff::T% */
   return self::ET_CovariantAlias|<self::ET_CovariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_BivariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */
+static inline-class-member method ET_BivariantAlias|<T extends core::Object? = dynamic>((self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% f) → self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */
   ;
-static inline-class-member method ET_BivariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_BivariantAlias<self::ET_BivariantAlias|_#new#tearOff::T%> /* = (self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% */
+static inline-class-member method ET_BivariantAlias|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% f) → self::ET_BivariantAlias<self::ET_BivariantAlias|_#new#tearOff::T%> /* = (self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% */
   return self::ET_BivariantAlias|<self::ET_BivariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias1|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */
+static inline-class-member method ET_ContravariantAlias1|<T extends core::Object? = dynamic>(() → (self::ET_ContravariantAlias1|::T%) → void f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */
   ;
-static inline-class-member method ET_ContravariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|_#new#tearOff::T%> /* = () → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(() → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|_#new#tearOff::T%> /* = () → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias1|<self::ET_ContravariantAlias1|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias2|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */
+static inline-class-member method ET_ContravariantAlias2|<T extends core::Object? = dynamic>((() → self::ET_ContravariantAlias2|::T%) → void f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */
   ;
-static inline-class-member method ET_ContravariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|_#new#tearOff::T%> /* = (() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>((() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|_#new#tearOff::T%> /* = (() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias2|<self::ET_ContravariantAlias2|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias1|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */
+static inline-class-member method ET_CovariantAlias1|<T extends core::Object? = dynamic>(() → () → self::ET_CovariantAlias1|::T% f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */
   ;
-static inline-class-member method ET_CovariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|_#new#tearOff::T%> /* = () → () → self::ET_CovariantAlias1|_#new#tearOff::T% */
+static inline-class-member method ET_CovariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(() → () → self::ET_CovariantAlias1|_#new#tearOff::T% f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|_#new#tearOff::T%> /* = () → () → self::ET_CovariantAlias1|_#new#tearOff::T% */
   return self::ET_CovariantAlias1|<self::ET_CovariantAlias1|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias2|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */
+static inline-class-member method ET_CovariantAlias2|<T extends core::Object? = dynamic>(((self::ET_CovariantAlias2|::T%) → void) → void f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */
   ;
-static inline-class-member method ET_CovariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|_#new#tearOff::T%> /* = ((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void */
+static inline-class-member method ET_CovariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|_#new#tearOff::T%> /* = ((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void */
   return self::ET_CovariantAlias2|<self::ET_CovariantAlias2|_#new#tearOff::T%>(f);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.transformed.expect
index 4595a81..e47ee55 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/non_covariant_type_parameter.dart.weak.transformed.expect
@@ -97,75 +97,75 @@
   constructor • = self::ET_CovariantAlias2|;
   tearoff • = self::ET_CovariantAlias2|_#new#tearOff;
 }
-static inline-class-member method ET_Contravariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ {
+static inline-class-member method ET_Contravariant|<T extends core::Object? = dynamic>((self::ET_Contravariant|::T%) → void f) → self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ {
   lowered final self::ET_Contravariant<self::ET_Contravariant|::T%> /* = (self::ET_Contravariant|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Contravariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Contravariant<self::ET_Contravariant|_#new#tearOff::T%> /* = (self::ET_Contravariant|_#new#tearOff::T%) → void */
+static inline-class-member method ET_Contravariant|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_Contravariant|_#new#tearOff::T%) → void f) → self::ET_Contravariant<self::ET_Contravariant|_#new#tearOff::T%> /* = (self::ET_Contravariant|_#new#tearOff::T%) → void */
   return self::ET_Contravariant|<self::ET_Contravariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Invariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ {
+static inline-class-member method ET_Invariant|<T extends core::Object? = dynamic>(<S extends self::ET_Invariant|::T% = dynamic>() → void f) → self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ {
   lowered final self::ET_Invariant<self::ET_Invariant|::T%> /* = <S extends self::ET_Invariant|::T% = dynamic>() → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Invariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Invariant<self::ET_Invariant|_#new#tearOff::T%> /* = <S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void */
+static inline-class-member method ET_Invariant|_#new#tearOff<T extends core::Object? = dynamic>(<S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void f) → self::ET_Invariant<self::ET_Invariant|_#new#tearOff::T%> /* = <S extends self::ET_Invariant|_#new#tearOff::T% = dynamic>() → void */
   return self::ET_Invariant|<self::ET_Invariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Covariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ {
+static inline-class-member method ET_Covariant|<T extends core::Object? = dynamic>(() → self::ET_Covariant|::T% f) → self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ {
   lowered final self::ET_Covariant<self::ET_Covariant|::T%> /* = () → self::ET_Covariant|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Covariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Covariant<self::ET_Covariant|_#new#tearOff::T%> /* = () → self::ET_Covariant|_#new#tearOff::T% */
+static inline-class-member method ET_Covariant|_#new#tearOff<T extends core::Object? = dynamic>(() → self::ET_Covariant|_#new#tearOff::T% f) → self::ET_Covariant<self::ET_Covariant|_#new#tearOff::T%> /* = () → self::ET_Covariant|_#new#tearOff::T% */
   return self::ET_Covariant|<self::ET_Covariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_Bivariant|<T extends core::Object? = dynamic>(dynamic f) → self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ {
+static inline-class-member method ET_Bivariant|<T extends core::Object? = dynamic>((self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% f) → self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ {
   lowered final self::ET_Bivariant<self::ET_Bivariant|::T%> /* = (self::ET_Bivariant|::T%) → self::ET_Bivariant|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_Bivariant|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_Bivariant<self::ET_Bivariant|_#new#tearOff::T%> /* = (self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% */
+static inline-class-member method ET_Bivariant|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% f) → self::ET_Bivariant<self::ET_Bivariant|_#new#tearOff::T%> /* = (self::ET_Bivariant|_#new#tearOff::T%) → self::ET_Bivariant|_#new#tearOff::T% */
   return self::ET_Bivariant|<self::ET_Bivariant|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias|<T extends core::Object? = dynamic>((self::ET_ContravariantAlias|::T%) → void f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ {
   lowered final self::ET_ContravariantAlias<self::ET_ContravariantAlias|::T%> /* = (self::ET_ContravariantAlias|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|_#new#tearOff::T%> /* = (self::ET_ContravariantAlias|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_ContravariantAlias|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias<self::ET_ContravariantAlias|_#new#tearOff::T%> /* = (self::ET_ContravariantAlias|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias|<self::ET_ContravariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_InvariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ {
+static inline-class-member method ET_InvariantAlias|<T extends core::Object? = dynamic>(<S extends self::ET_InvariantAlias|::T% = dynamic>() → void f) → self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ {
   lowered final self::ET_InvariantAlias<self::ET_InvariantAlias|::T%> /* = <S extends self::ET_InvariantAlias|::T% = dynamic>() → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_InvariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_InvariantAlias<self::ET_InvariantAlias|_#new#tearOff::T%> /* = <S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void */
+static inline-class-member method ET_InvariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(<S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void f) → self::ET_InvariantAlias<self::ET_InvariantAlias|_#new#tearOff::T%> /* = <S extends self::ET_InvariantAlias|_#new#tearOff::T% = dynamic>() → void */
   return self::ET_InvariantAlias|<self::ET_InvariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ {
+static inline-class-member method ET_CovariantAlias|<T extends core::Object? = dynamic>(() → self::ET_CovariantAlias|::T% f) → self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ {
   lowered final self::ET_CovariantAlias<self::ET_CovariantAlias|::T%> /* = () → self::ET_CovariantAlias|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias<self::ET_CovariantAlias|_#new#tearOff::T%> /* = () → self::ET_CovariantAlias|_#new#tearOff::T% */
+static inline-class-member method ET_CovariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(() → self::ET_CovariantAlias|_#new#tearOff::T% f) → self::ET_CovariantAlias<self::ET_CovariantAlias|_#new#tearOff::T%> /* = () → self::ET_CovariantAlias|_#new#tearOff::T% */
   return self::ET_CovariantAlias|<self::ET_CovariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_BivariantAlias|<T extends core::Object? = dynamic>(dynamic f) → self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ {
+static inline-class-member method ET_BivariantAlias|<T extends core::Object? = dynamic>((self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% f) → self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ {
   lowered final self::ET_BivariantAlias<self::ET_BivariantAlias|::T%> /* = (self::ET_BivariantAlias|::T%) → self::ET_BivariantAlias|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_BivariantAlias|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_BivariantAlias<self::ET_BivariantAlias|_#new#tearOff::T%> /* = (self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% */
+static inline-class-member method ET_BivariantAlias|_#new#tearOff<T extends core::Object? = dynamic>((self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% f) → self::ET_BivariantAlias<self::ET_BivariantAlias|_#new#tearOff::T%> /* = (self::ET_BivariantAlias|_#new#tearOff::T%) → self::ET_BivariantAlias|_#new#tearOff::T% */
   return self::ET_BivariantAlias|<self::ET_BivariantAlias|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias1|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias1|<T extends core::Object? = dynamic>(() → (self::ET_ContravariantAlias1|::T%) → void f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ {
   lowered final self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|::T%> /* = () → (self::ET_ContravariantAlias1|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|_#new#tearOff::T%> /* = () → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(() → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias1<self::ET_ContravariantAlias1|_#new#tearOff::T%> /* = () → (self::ET_ContravariantAlias1|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias1|<self::ET_ContravariantAlias1|_#new#tearOff::T%>(f);
-static inline-class-member method ET_ContravariantAlias2|<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ {
+static inline-class-member method ET_ContravariantAlias2|<T extends core::Object? = dynamic>((() → self::ET_ContravariantAlias2|::T%) → void f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ {
   lowered final self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|::T%> /* = (() → self::ET_ContravariantAlias2|::T%) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_ContravariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|_#new#tearOff::T%> /* = (() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void */
+static inline-class-member method ET_ContravariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>((() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void f) → self::ET_ContravariantAlias2<self::ET_ContravariantAlias2|_#new#tearOff::T%> /* = (() → self::ET_ContravariantAlias2|_#new#tearOff::T%) → void */
   return self::ET_ContravariantAlias2|<self::ET_ContravariantAlias2|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias1|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ {
+static inline-class-member method ET_CovariantAlias1|<T extends core::Object? = dynamic>(() → () → self::ET_CovariantAlias1|::T% f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ {
   lowered final self::ET_CovariantAlias1<self::ET_CovariantAlias1|::T%> /* = () → () → self::ET_CovariantAlias1|::T% */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|_#new#tearOff::T%> /* = () → () → self::ET_CovariantAlias1|_#new#tearOff::T% */
+static inline-class-member method ET_CovariantAlias1|_#new#tearOff<T extends core::Object? = dynamic>(() → () → self::ET_CovariantAlias1|_#new#tearOff::T% f) → self::ET_CovariantAlias1<self::ET_CovariantAlias1|_#new#tearOff::T%> /* = () → () → self::ET_CovariantAlias1|_#new#tearOff::T% */
   return self::ET_CovariantAlias1|<self::ET_CovariantAlias1|_#new#tearOff::T%>(f);
-static inline-class-member method ET_CovariantAlias2|<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ {
+static inline-class-member method ET_CovariantAlias2|<T extends core::Object? = dynamic>(((self::ET_CovariantAlias2|::T%) → void) → void f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ {
   lowered final self::ET_CovariantAlias2<self::ET_CovariantAlias2|::T%> /* = ((self::ET_CovariantAlias2|::T%) → void) → void */ #this = f;
   return #this;
 }
-static inline-class-member method ET_CovariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(dynamic f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|_#new#tearOff::T%> /* = ((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void */
+static inline-class-member method ET_CovariantAlias2|_#new#tearOff<T extends core::Object? = dynamic>(((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void f) → self::ET_CovariantAlias2<self::ET_CovariantAlias2|_#new#tearOff::T%> /* = ((self::ET_CovariantAlias2|_#new#tearOff::T%) → void) → void */
   return self::ET_CovariantAlias2|<self::ET_CovariantAlias2|_#new#tearOff::T%>(f);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.strong.expect
index 1004d92..b0e594b 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.strong.expect
@@ -28,11 +28,11 @@
   constructor _ = self::GenericClass|_;
   tearoff _ = self::GenericClass|_#_#tearOff;
 }
-static inline-class-member method Class|_(dynamic it) → self::Class /* = core::int */ {
+static inline-class-member method Class|_(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class|_#_#tearOff(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|_#_#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|_(it);
 static inline-class-member method Class|instanceMethod(lowered final self::Class /* = core::int */ #this) → void {
   self::Class /* = core::int */ local = #this;
@@ -66,11 +66,11 @@
 }
 static inline-class-member method Class|genericStaticMethod<S extends core::Object? = dynamic>(self::Class|genericStaticMethod::S% s) → self::Class|genericStaticMethod::S%
   return s;
-static inline-class-member method GenericClass|_<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ {
+static inline-class-member method GenericClass|_<T extends core::Object? = dynamic>(self::GenericClass|_::T% it) → self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ {
   lowered final self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericClass|_#_#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_#_#tearOff::T%> /* = self::GenericClass|_#_#tearOff::T% */
+static inline-class-member method GenericClass|_#_#tearOff<T extends core::Object? = dynamic>(self::GenericClass|_#_#tearOff::T% it) → self::GenericClass<self::GenericClass|_#_#tearOff::T%> /* = self::GenericClass|_#_#tearOff::T% */
   return self::GenericClass|_<self::GenericClass|_#_#tearOff::T%>(it);
 static inline-class-member method GenericClass|instanceMethod<T extends core::Object? = dynamic>(lowered final self::GenericClass<self::GenericClass|instanceMethod::T%> /* = self::GenericClass|instanceMethod::T% */ #this) → void {
   self::GenericClass<self::GenericClass|instanceMethod::T%> /* = self::GenericClass|instanceMethod::T% */ local = #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.strong.transformed.expect
index 1004d92..b0e594b 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.strong.transformed.expect
@@ -28,11 +28,11 @@
   constructor _ = self::GenericClass|_;
   tearoff _ = self::GenericClass|_#_#tearOff;
 }
-static inline-class-member method Class|_(dynamic it) → self::Class /* = core::int */ {
+static inline-class-member method Class|_(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class|_#_#tearOff(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|_#_#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|_(it);
 static inline-class-member method Class|instanceMethod(lowered final self::Class /* = core::int */ #this) → void {
   self::Class /* = core::int */ local = #this;
@@ -66,11 +66,11 @@
 }
 static inline-class-member method Class|genericStaticMethod<S extends core::Object? = dynamic>(self::Class|genericStaticMethod::S% s) → self::Class|genericStaticMethod::S%
   return s;
-static inline-class-member method GenericClass|_<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ {
+static inline-class-member method GenericClass|_<T extends core::Object? = dynamic>(self::GenericClass|_::T% it) → self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ {
   lowered final self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericClass|_#_#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_#_#tearOff::T%> /* = self::GenericClass|_#_#tearOff::T% */
+static inline-class-member method GenericClass|_#_#tearOff<T extends core::Object? = dynamic>(self::GenericClass|_#_#tearOff::T% it) → self::GenericClass<self::GenericClass|_#_#tearOff::T%> /* = self::GenericClass|_#_#tearOff::T% */
   return self::GenericClass|_<self::GenericClass|_#_#tearOff::T%>(it);
 static inline-class-member method GenericClass|instanceMethod<T extends core::Object? = dynamic>(lowered final self::GenericClass<self::GenericClass|instanceMethod::T%> /* = self::GenericClass|instanceMethod::T% */ #this) → void {
   self::GenericClass<self::GenericClass|instanceMethod::T%> /* = self::GenericClass|instanceMethod::T% */ local = #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.expect
index 1004d92..b0e594b 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.expect
@@ -28,11 +28,11 @@
   constructor _ = self::GenericClass|_;
   tearoff _ = self::GenericClass|_#_#tearOff;
 }
-static inline-class-member method Class|_(dynamic it) → self::Class /* = core::int */ {
+static inline-class-member method Class|_(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class|_#_#tearOff(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|_#_#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|_(it);
 static inline-class-member method Class|instanceMethod(lowered final self::Class /* = core::int */ #this) → void {
   self::Class /* = core::int */ local = #this;
@@ -66,11 +66,11 @@
 }
 static inline-class-member method Class|genericStaticMethod<S extends core::Object? = dynamic>(self::Class|genericStaticMethod::S% s) → self::Class|genericStaticMethod::S%
   return s;
-static inline-class-member method GenericClass|_<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ {
+static inline-class-member method GenericClass|_<T extends core::Object? = dynamic>(self::GenericClass|_::T% it) → self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ {
   lowered final self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericClass|_#_#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_#_#tearOff::T%> /* = self::GenericClass|_#_#tearOff::T% */
+static inline-class-member method GenericClass|_#_#tearOff<T extends core::Object? = dynamic>(self::GenericClass|_#_#tearOff::T% it) → self::GenericClass<self::GenericClass|_#_#tearOff::T%> /* = self::GenericClass|_#_#tearOff::T% */
   return self::GenericClass|_<self::GenericClass|_#_#tearOff::T%>(it);
 static inline-class-member method GenericClass|instanceMethod<T extends core::Object? = dynamic>(lowered final self::GenericClass<self::GenericClass|instanceMethod::T%> /* = self::GenericClass|instanceMethod::T% */ #this) → void {
   self::GenericClass<self::GenericClass|instanceMethod::T%> /* = self::GenericClass|instanceMethod::T% */ local = #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.modular.expect
index 1004d92..b0e594b 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.modular.expect
@@ -28,11 +28,11 @@
   constructor _ = self::GenericClass|_;
   tearoff _ = self::GenericClass|_#_#tearOff;
 }
-static inline-class-member method Class|_(dynamic it) → self::Class /* = core::int */ {
+static inline-class-member method Class|_(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class|_#_#tearOff(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|_#_#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|_(it);
 static inline-class-member method Class|instanceMethod(lowered final self::Class /* = core::int */ #this) → void {
   self::Class /* = core::int */ local = #this;
@@ -66,11 +66,11 @@
 }
 static inline-class-member method Class|genericStaticMethod<S extends core::Object? = dynamic>(self::Class|genericStaticMethod::S% s) → self::Class|genericStaticMethod::S%
   return s;
-static inline-class-member method GenericClass|_<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ {
+static inline-class-member method GenericClass|_<T extends core::Object? = dynamic>(self::GenericClass|_::T% it) → self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ {
   lowered final self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericClass|_#_#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_#_#tearOff::T%> /* = self::GenericClass|_#_#tearOff::T% */
+static inline-class-member method GenericClass|_#_#tearOff<T extends core::Object? = dynamic>(self::GenericClass|_#_#tearOff::T% it) → self::GenericClass<self::GenericClass|_#_#tearOff::T%> /* = self::GenericClass|_#_#tearOff::T% */
   return self::GenericClass|_<self::GenericClass|_#_#tearOff::T%>(it);
 static inline-class-member method GenericClass|instanceMethod<T extends core::Object? = dynamic>(lowered final self::GenericClass<self::GenericClass|instanceMethod::T%> /* = self::GenericClass|instanceMethod::T% */ #this) → void {
   self::GenericClass<self::GenericClass|instanceMethod::T%> /* = self::GenericClass|instanceMethod::T% */ local = #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.outline.expect
index 42bf35b..322ec45 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.outline.expect
@@ -28,9 +28,9 @@
   constructor _ = self::GenericClass|_;
   tearoff _ = self::GenericClass|_#_#tearOff;
 }
-static inline-class-member method Class|_(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|_(core::int it) → self::Class /* = core::int */
   ;
-static inline-class-member method Class|_#_#tearOff(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|_#_#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|_(it);
 static inline-class-member method Class|instanceMethod(lowered final self::Class /* = core::int */ #this) → void
   ;
@@ -50,9 +50,9 @@
   ;
 static inline-class-member method Class|genericStaticMethod<S extends core::Object? = dynamic>(self::Class|genericStaticMethod::S% s) → self::Class|genericStaticMethod::S%
   ;
-static inline-class-member method GenericClass|_<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */
+static inline-class-member method GenericClass|_<T extends core::Object? = dynamic>(self::GenericClass|_::T% it) → self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */
   ;
-static inline-class-member method GenericClass|_#_#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_#_#tearOff::T%> /* = self::GenericClass|_#_#tearOff::T% */
+static inline-class-member method GenericClass|_#_#tearOff<T extends core::Object? = dynamic>(self::GenericClass|_#_#tearOff::T% it) → self::GenericClass<self::GenericClass|_#_#tearOff::T%> /* = self::GenericClass|_#_#tearOff::T% */
   return self::GenericClass|_<self::GenericClass|_#_#tearOff::T%>(it);
 static inline-class-member method GenericClass|instanceMethod<T extends core::Object? = dynamic>(lowered final self::GenericClass<self::GenericClass|instanceMethod::T%> /* = self::GenericClass|instanceMethod::T% */ #this) → void
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.transformed.expect
index 1004d92..b0e594b 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/procedures.dart.weak.transformed.expect
@@ -28,11 +28,11 @@
   constructor _ = self::GenericClass|_;
   tearoff _ = self::GenericClass|_#_#tearOff;
 }
-static inline-class-member method Class|_(dynamic it) → self::Class /* = core::int */ {
+static inline-class-member method Class|_(core::int it) → self::Class /* = core::int */ {
   lowered final self::Class /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Class|_#_#tearOff(dynamic it) → self::Class /* = core::int */
+static inline-class-member method Class|_#_#tearOff(core::int it) → self::Class /* = core::int */
   return self::Class|_(it);
 static inline-class-member method Class|instanceMethod(lowered final self::Class /* = core::int */ #this) → void {
   self::Class /* = core::int */ local = #this;
@@ -66,11 +66,11 @@
 }
 static inline-class-member method Class|genericStaticMethod<S extends core::Object? = dynamic>(self::Class|genericStaticMethod::S% s) → self::Class|genericStaticMethod::S%
   return s;
-static inline-class-member method GenericClass|_<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ {
+static inline-class-member method GenericClass|_<T extends core::Object? = dynamic>(self::GenericClass|_::T% it) → self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ {
   lowered final self::GenericClass<self::GenericClass|_::T%> /* = self::GenericClass|_::T% */ #this = it;
   return #this;
 }
-static inline-class-member method GenericClass|_#_#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::GenericClass<self::GenericClass|_#_#tearOff::T%> /* = self::GenericClass|_#_#tearOff::T% */
+static inline-class-member method GenericClass|_#_#tearOff<T extends core::Object? = dynamic>(self::GenericClass|_#_#tearOff::T% it) → self::GenericClass<self::GenericClass|_#_#tearOff::T%> /* = self::GenericClass|_#_#tearOff::T% */
   return self::GenericClass|_<self::GenericClass|_#_#tearOff::T%>(it);
 static inline-class-member method GenericClass|instanceMethod<T extends core::Object? = dynamic>(lowered final self::GenericClass<self::GenericClass|instanceMethod::T%> /* = self::GenericClass|instanceMethod::T% */ #this) → void {
   self::GenericClass<self::GenericClass|instanceMethod::T%> /* = self::GenericClass|instanceMethod::T% */ local = #this;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/representation.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/representation.dart.strong.expect
index 03d2343..efb482e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/representation.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/representation.dart.strong.expect
@@ -50,13 +50,13 @@
 }
 static inline-class-member method Missing|_#new#tearOff() → self::Missing /* = invalid-type */
   return self::Missing|();
-static inline-class-member method Multiple|(dynamic instanceField1, dynamic instanceField2) → self::Multiple /* = core::bool */ {
+static inline-class-member method Multiple|(core::bool instanceField1, core::int instanceField2) → self::Multiple /* = core::bool */ {
   lowered final self::Multiple /* = core::bool */ #this = instanceField2;
   return #this;
 }
-static inline-class-member method Multiple|_#new#tearOff(dynamic instanceField1, dynamic instanceField2) → self::Multiple /* = core::bool */
+static inline-class-member method Multiple|_#new#tearOff(core::bool instanceField1, core::int instanceField2) → self::Multiple /* = core::bool */
   return self::Multiple|(instanceField1, instanceField2);
-static inline-class-member method Duplicate|(dynamic instanceField, dynamic instanceField) → self::Duplicate /* = core::bool */ {
+static inline-class-member method Duplicate|(core::int instanceField, core::int instanceField) → self::Duplicate /* = core::bool */ {
   lowered final self::Duplicate /* = core::bool */ #this;
   final dynamic #t1 = invalid-expression "pkg/front_end/testcases/inline_class/extension_types/representation.dart:9:31: Error: Can't use 'instanceField' because it is declared more than once.
 extension type Duplicate(bool instanceField, int instanceField) {} // Error
@@ -66,5 +66,5 @@
                                                  ^^^^^^^^^^^^^";
   return #this;
 }
-static inline-class-member method Duplicate|_#new#tearOff(dynamic instanceField, dynamic instanceField) → self::Duplicate /* = core::bool */
+static inline-class-member method Duplicate|_#new#tearOff(core::int instanceField, core::int instanceField) → self::Duplicate /* = core::bool */
   return self::Duplicate|(instanceField, instanceField);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/representation.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/representation.dart.strong.transformed.expect
index 03d2343..efb482e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/representation.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/representation.dart.strong.transformed.expect
@@ -50,13 +50,13 @@
 }
 static inline-class-member method Missing|_#new#tearOff() → self::Missing /* = invalid-type */
   return self::Missing|();
-static inline-class-member method Multiple|(dynamic instanceField1, dynamic instanceField2) → self::Multiple /* = core::bool */ {
+static inline-class-member method Multiple|(core::bool instanceField1, core::int instanceField2) → self::Multiple /* = core::bool */ {
   lowered final self::Multiple /* = core::bool */ #this = instanceField2;
   return #this;
 }
-static inline-class-member method Multiple|_#new#tearOff(dynamic instanceField1, dynamic instanceField2) → self::Multiple /* = core::bool */
+static inline-class-member method Multiple|_#new#tearOff(core::bool instanceField1, core::int instanceField2) → self::Multiple /* = core::bool */
   return self::Multiple|(instanceField1, instanceField2);
-static inline-class-member method Duplicate|(dynamic instanceField, dynamic instanceField) → self::Duplicate /* = core::bool */ {
+static inline-class-member method Duplicate|(core::int instanceField, core::int instanceField) → self::Duplicate /* = core::bool */ {
   lowered final self::Duplicate /* = core::bool */ #this;
   final dynamic #t1 = invalid-expression "pkg/front_end/testcases/inline_class/extension_types/representation.dart:9:31: Error: Can't use 'instanceField' because it is declared more than once.
 extension type Duplicate(bool instanceField, int instanceField) {} // Error
@@ -66,5 +66,5 @@
                                                  ^^^^^^^^^^^^^";
   return #this;
 }
-static inline-class-member method Duplicate|_#new#tearOff(dynamic instanceField, dynamic instanceField) → self::Duplicate /* = core::bool */
+static inline-class-member method Duplicate|_#new#tearOff(core::int instanceField, core::int instanceField) → self::Duplicate /* = core::bool */
   return self::Duplicate|(instanceField, instanceField);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.expect
index 03d2343..efb482e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.expect
@@ -50,13 +50,13 @@
 }
 static inline-class-member method Missing|_#new#tearOff() → self::Missing /* = invalid-type */
   return self::Missing|();
-static inline-class-member method Multiple|(dynamic instanceField1, dynamic instanceField2) → self::Multiple /* = core::bool */ {
+static inline-class-member method Multiple|(core::bool instanceField1, core::int instanceField2) → self::Multiple /* = core::bool */ {
   lowered final self::Multiple /* = core::bool */ #this = instanceField2;
   return #this;
 }
-static inline-class-member method Multiple|_#new#tearOff(dynamic instanceField1, dynamic instanceField2) → self::Multiple /* = core::bool */
+static inline-class-member method Multiple|_#new#tearOff(core::bool instanceField1, core::int instanceField2) → self::Multiple /* = core::bool */
   return self::Multiple|(instanceField1, instanceField2);
-static inline-class-member method Duplicate|(dynamic instanceField, dynamic instanceField) → self::Duplicate /* = core::bool */ {
+static inline-class-member method Duplicate|(core::int instanceField, core::int instanceField) → self::Duplicate /* = core::bool */ {
   lowered final self::Duplicate /* = core::bool */ #this;
   final dynamic #t1 = invalid-expression "pkg/front_end/testcases/inline_class/extension_types/representation.dart:9:31: Error: Can't use 'instanceField' because it is declared more than once.
 extension type Duplicate(bool instanceField, int instanceField) {} // Error
@@ -66,5 +66,5 @@
                                                  ^^^^^^^^^^^^^";
   return #this;
 }
-static inline-class-member method Duplicate|_#new#tearOff(dynamic instanceField, dynamic instanceField) → self::Duplicate /* = core::bool */
+static inline-class-member method Duplicate|_#new#tearOff(core::int instanceField, core::int instanceField) → self::Duplicate /* = core::bool */
   return self::Duplicate|(instanceField, instanceField);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.modular.expect
index 03d2343..efb482e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.modular.expect
@@ -50,13 +50,13 @@
 }
 static inline-class-member method Missing|_#new#tearOff() → self::Missing /* = invalid-type */
   return self::Missing|();
-static inline-class-member method Multiple|(dynamic instanceField1, dynamic instanceField2) → self::Multiple /* = core::bool */ {
+static inline-class-member method Multiple|(core::bool instanceField1, core::int instanceField2) → self::Multiple /* = core::bool */ {
   lowered final self::Multiple /* = core::bool */ #this = instanceField2;
   return #this;
 }
-static inline-class-member method Multiple|_#new#tearOff(dynamic instanceField1, dynamic instanceField2) → self::Multiple /* = core::bool */
+static inline-class-member method Multiple|_#new#tearOff(core::bool instanceField1, core::int instanceField2) → self::Multiple /* = core::bool */
   return self::Multiple|(instanceField1, instanceField2);
-static inline-class-member method Duplicate|(dynamic instanceField, dynamic instanceField) → self::Duplicate /* = core::bool */ {
+static inline-class-member method Duplicate|(core::int instanceField, core::int instanceField) → self::Duplicate /* = core::bool */ {
   lowered final self::Duplicate /* = core::bool */ #this;
   final dynamic #t1 = invalid-expression "pkg/front_end/testcases/inline_class/extension_types/representation.dart:9:31: Error: Can't use 'instanceField' because it is declared more than once.
 extension type Duplicate(bool instanceField, int instanceField) {} // Error
@@ -66,5 +66,5 @@
                                                  ^^^^^^^^^^^^^";
   return #this;
 }
-static inline-class-member method Duplicate|_#new#tearOff(dynamic instanceField, dynamic instanceField) → self::Duplicate /* = core::bool */
+static inline-class-member method Duplicate|_#new#tearOff(core::int instanceField, core::int instanceField) → self::Duplicate /* = core::bool */
   return self::Duplicate|(instanceField, instanceField);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.outline.expect
index 1b312e1..670ab1d 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.outline.expect
@@ -35,11 +35,11 @@
   ;
 static inline-class-member method Missing|_#new#tearOff() → self::Missing /* = invalid-type */
   return self::Missing|();
-static inline-class-member method Multiple|(dynamic instanceField1, dynamic instanceField2) → self::Multiple /* = core::bool */
+static inline-class-member method Multiple|(core::bool instanceField1, core::int instanceField2) → self::Multiple /* = core::bool */
   ;
-static inline-class-member method Multiple|_#new#tearOff(dynamic instanceField1, dynamic instanceField2) → self::Multiple /* = core::bool */
+static inline-class-member method Multiple|_#new#tearOff(core::bool instanceField1, core::int instanceField2) → self::Multiple /* = core::bool */
   return self::Multiple|(instanceField1, instanceField2);
-static inline-class-member method Duplicate|(dynamic instanceField, dynamic instanceField) → self::Duplicate /* = core::bool */
+static inline-class-member method Duplicate|(core::int instanceField, core::int instanceField) → self::Duplicate /* = core::bool */
   ;
-static inline-class-member method Duplicate|_#new#tearOff(dynamic instanceField, dynamic instanceField) → self::Duplicate /* = core::bool */
+static inline-class-member method Duplicate|_#new#tearOff(core::int instanceField, core::int instanceField) → self::Duplicate /* = core::bool */
   return self::Duplicate|(instanceField, instanceField);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.transformed.expect
index 03d2343..efb482e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/representation.dart.weak.transformed.expect
@@ -50,13 +50,13 @@
 }
 static inline-class-member method Missing|_#new#tearOff() → self::Missing /* = invalid-type */
   return self::Missing|();
-static inline-class-member method Multiple|(dynamic instanceField1, dynamic instanceField2) → self::Multiple /* = core::bool */ {
+static inline-class-member method Multiple|(core::bool instanceField1, core::int instanceField2) → self::Multiple /* = core::bool */ {
   lowered final self::Multiple /* = core::bool */ #this = instanceField2;
   return #this;
 }
-static inline-class-member method Multiple|_#new#tearOff(dynamic instanceField1, dynamic instanceField2) → self::Multiple /* = core::bool */
+static inline-class-member method Multiple|_#new#tearOff(core::bool instanceField1, core::int instanceField2) → self::Multiple /* = core::bool */
   return self::Multiple|(instanceField1, instanceField2);
-static inline-class-member method Duplicate|(dynamic instanceField, dynamic instanceField) → self::Duplicate /* = core::bool */ {
+static inline-class-member method Duplicate|(core::int instanceField, core::int instanceField) → self::Duplicate /* = core::bool */ {
   lowered final self::Duplicate /* = core::bool */ #this;
   final dynamic #t1 = invalid-expression "pkg/front_end/testcases/inline_class/extension_types/representation.dart:9:31: Error: Can't use 'instanceField' because it is declared more than once.
 extension type Duplicate(bool instanceField, int instanceField) {} // Error
@@ -66,5 +66,5 @@
                                                  ^^^^^^^^^^^^^";
   return #this;
 }
-static inline-class-member method Duplicate|_#new#tearOff(dynamic instanceField, dynamic instanceField) → self::Duplicate /* = core::bool */
+static inline-class-member method Duplicate|_#new#tearOff(core::int instanceField, core::int instanceField) → self::Duplicate /* = core::bool */
   return self::Duplicate|(instanceField, instanceField);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.strong.expect
index 9dc182e..a9197a1 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.strong.expect
@@ -82,125 +82,125 @@
   constructor • = self::Lc|;
   tearoff • = self::Lc|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
-static inline-class-member method Ba|(dynamic it) → self::Ba /* = core::int */ {
+static inline-class-member method Ba|(self::A /* = core::int */ it) → self::Ba /* = core::int */ {
   lowered final self::Ba /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Ba|_#new#tearOff(dynamic it) → self::Ba /* = core::int */
+static inline-class-member method Ba|_#new#tearOff(self::A /* = core::int */ it) → self::Ba /* = core::int */
   return self::Ba|(it);
-static inline-class-member method Bb|(dynamic it) → self::Bb /* = core::int? */ {
+static inline-class-member method Bb|(self::A? /* = core::int? */ it) → self::Bb /* = core::int? */ {
   lowered final self::Bb /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method Bb|_#new#tearOff(dynamic it) → self::Bb /* = core::int? */
+static inline-class-member method Bb|_#new#tearOff(self::A? /* = core::int? */ it) → self::Bb /* = core::int? */
   return self::Bb|(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = self::C|::T% */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(self::C|::T% it) → self::C<self::C|::T%> /* = self::C|::T% */ {
   lowered final self::C<self::C|::T%> /* = self::C|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = self::C|_#new#tearOff::T% */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(self::C|_#new#tearOff::T% it) → self::C<self::C|_#new#tearOff::T%> /* = self::C|_#new#tearOff::T% */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method Da|<T extends core::Object? = dynamic>(dynamic it) → self::Da<self::Da|::T%> /* = self::Da|::T% */ {
+static inline-class-member method Da|<T extends core::Object? = dynamic>(self::C<self::Da|::T%> /* = self::Da|::T% */ it) → self::Da<self::Da|::T%> /* = self::Da|::T% */ {
   lowered final self::Da<self::Da|::T%> /* = self::Da|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method Da|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Da<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */
+static inline-class-member method Da|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */ it) → self::Da<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */
   return self::Da|<self::Da|_#new#tearOff::T%>(it);
-static inline-class-member method Db|<T extends core::Object? = dynamic>(dynamic it) → self::Db<self::Db|::T%> /* = self::Db|::T? */ {
+static inline-class-member method Db|<T extends core::Object? = dynamic>(self::C<self::Db|::T?> /* = self::Db|::T? */ it) → self::Db<self::Db|::T%> /* = self::Db|::T? */ {
   lowered final self::Db<self::Db|::T%> /* = self::Db|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Db|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Db<self::Db|_#new#tearOff::T%> /* = self::Db|_#new#tearOff::T? */
+static inline-class-member method Db|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Db|_#new#tearOff::T?> /* = self::Db|_#new#tearOff::T? */ it) → self::Db<self::Db|_#new#tearOff::T%> /* = self::Db|_#new#tearOff::T? */
   return self::Db|<self::Db|_#new#tearOff::T%>(it);
-static inline-class-member method Dc|<T extends core::Object? = dynamic>(dynamic it) → self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ {
+static inline-class-member method Dc|<T extends core::Object? = dynamic>(self::C<self::Dc|::T%>? /* = self::Dc|::T? */ it) → self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ {
   lowered final self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Dc|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Dc<self::Dc|_#new#tearOff::T%> /* = self::Dc|_#new#tearOff::T? */
+static inline-class-member method Dc|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Dc|_#new#tearOff::T%>? /* = self::Dc|_#new#tearOff::T? */ it) → self::Dc<self::Dc|_#new#tearOff::T%> /* = self::Dc|_#new#tearOff::T? */
   return self::Dc|<self::Dc|_#new#tearOff::T%>(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int? */ {
+static inline-class-member method E|(core::int? it) → self::E /* = core::int? */ {
   lowered final self::E /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int? */
+static inline-class-member method E|_#new#tearOff(core::int? it) → self::E /* = core::int? */
   return self::E|(it);
-static inline-class-member method Fa|(dynamic it) → self::Fa /* = core::int? */ {
+static inline-class-member method Fa|(self::E /* = core::int? */ it) → self::Fa /* = core::int? */ {
   lowered final self::Fa /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method Fa|_#new#tearOff(dynamic it) → self::Fa /* = core::int? */
+static inline-class-member method Fa|_#new#tearOff(self::E /* = core::int? */ it) → self::Fa /* = core::int? */
   return self::Fa|(it);
-static inline-class-member method Fb|_#new#tearOff(dynamic it) → self::Fb /* = core::int? */
+static inline-class-member method Fb|_#new#tearOff(self::E? /* = core::int? */ it) → self::Fb /* = core::int? */
   return self::Fb|(it);
-static inline-class-member method Fb|(dynamic it) → self::Fb /* = core::int? */ {
+static inline-class-member method Fb|(self::E? /* = core::int? */ it) → self::Fb /* = core::int? */ {
   lowered final self::Fb /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method G|<T extends core::Object? = dynamic>(dynamic it) → self::G<self::G|::T%> /* = self::G|::T? */ {
+static inline-class-member method G|<T extends core::Object? = dynamic>(self::G|::T? it) → self::G<self::G|::T%> /* = self::G|::T? */ {
   lowered final self::G<self::G|::T%> /* = self::G|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T? */
+static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(self::G|_#new#tearOff::T? it) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T? */
   return self::G|<self::G|_#new#tearOff::T%>(it);
-static inline-class-member method Ha|<T extends core::Object? = dynamic>(dynamic it) → self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ {
+static inline-class-member method Ha|<T extends core::Object? = dynamic>(self::G<self::Ha|::T%> /* = self::Ha|::T? */ it) → self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ {
   lowered final self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Ha|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Ha<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */
+static inline-class-member method Ha|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */ it) → self::Ha<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */
   return self::Ha|<self::Ha|_#new#tearOff::T%>(it);
-static inline-class-member method Hb|<T extends core::Object? = dynamic>(dynamic it) → self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ {
+static inline-class-member method Hb|<T extends core::Object? = dynamic>(self::G<self::Hb|::T?> /* = self::Hb|::T? */ it) → self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ {
   lowered final self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Hb|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Hb<self::Hb|_#new#tearOff::T%> /* = self::Hb|_#new#tearOff::T? */
+static inline-class-member method Hb|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Hb|_#new#tearOff::T?> /* = self::Hb|_#new#tearOff::T? */ it) → self::Hb<self::Hb|_#new#tearOff::T%> /* = self::Hb|_#new#tearOff::T? */
   return self::Hb|<self::Hb|_#new#tearOff::T%>(it);
-static inline-class-member method Hc|<T extends core::Object? = dynamic>(dynamic it) → self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ {
+static inline-class-member method Hc|<T extends core::Object? = dynamic>(self::G<self::Hc|::T%>? /* = self::Hc|::T? */ it) → self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ {
   lowered final self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Hc|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Hc<self::Hc|_#new#tearOff::T%> /* = self::Hc|_#new#tearOff::T? */
+static inline-class-member method Hc|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Hc|_#new#tearOff::T%>? /* = self::Hc|_#new#tearOff::T? */ it) → self::Hc<self::Hc|_#new#tearOff::T%> /* = self::Hc|_#new#tearOff::T? */
   return self::Hc|<self::Hc|_#new#tearOff::T%>(it);
-static inline-class-member method I|<T extends core::Object = dynamic>(dynamic it) → self::I<self::I|::T> /* = self::I|::T */ {
+static inline-class-member method I|<T extends core::Object = dynamic>(self::I|::T it) → self::I<self::I|::T> /* = self::I|::T */ {
   lowered final self::I<self::I|::T> /* = self::I|::T */ #this = it;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::I<self::I|_#new#tearOff::T> /* = self::I|_#new#tearOff::T */
+static inline-class-member method I|_#new#tearOff<T extends core::Object = dynamic>(self::I|_#new#tearOff::T it) → self::I<self::I|_#new#tearOff::T> /* = self::I|_#new#tearOff::T */
   return self::I|<self::I|_#new#tearOff::T>(it);
-static inline-class-member method Ja|<T extends core::Object = dynamic>(dynamic it) → self::Ja<self::Ja|::T> /* = self::Ja|::T */ {
+static inline-class-member method Ja|<T extends core::Object = dynamic>(self::I<self::Ja|::T> /* = self::Ja|::T */ it) → self::Ja<self::Ja|::T> /* = self::Ja|::T */ {
   lowered final self::Ja<self::Ja|::T> /* = self::Ja|::T */ #this = it;
   return #this;
 }
-static inline-class-member method Ja|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Ja<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */
+static inline-class-member method Ja|_#new#tearOff<T extends core::Object = dynamic>(self::I<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */ it) → self::Ja<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */
   return self::Ja|<self::Ja|_#new#tearOff::T>(it);
-static inline-class-member method Jc|<T extends core::Object = dynamic>(dynamic it) → self::Jc<self::Jc|::T> /* = self::Jc|::T? */ {
+static inline-class-member method Jc|<T extends core::Object = dynamic>(self::I<self::Jc|::T>? /* = self::Jc|::T? */ it) → self::Jc<self::Jc|::T> /* = self::Jc|::T? */ {
   lowered final self::Jc<self::Jc|::T> /* = self::Jc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Jc|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Jc<self::Jc|_#new#tearOff::T> /* = self::Jc|_#new#tearOff::T? */
+static inline-class-member method Jc|_#new#tearOff<T extends core::Object = dynamic>(self::I<self::Jc|_#new#tearOff::T>? /* = self::Jc|_#new#tearOff::T? */ it) → self::Jc<self::Jc|_#new#tearOff::T> /* = self::Jc|_#new#tearOff::T? */
   return self::Jc|<self::Jc|_#new#tearOff::T>(it);
-static inline-class-member method K|<T extends core::Object = dynamic>(dynamic it) → self::K<self::K|::T> /* = self::K|::T? */ {
+static inline-class-member method K|<T extends core::Object = dynamic>(self::K|::T? it) → self::K<self::K|::T> /* = self::K|::T? */ {
   lowered final self::K<self::K|::T> /* = self::K|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method K|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::K<self::K|_#new#tearOff::T> /* = self::K|_#new#tearOff::T? */
+static inline-class-member method K|_#new#tearOff<T extends core::Object = dynamic>(self::K|_#new#tearOff::T? it) → self::K<self::K|_#new#tearOff::T> /* = self::K|_#new#tearOff::T? */
   return self::K|<self::K|_#new#tearOff::T>(it);
-static inline-class-member method La|<T extends core::Object = dynamic>(dynamic it) → self::La<self::La|::T> /* = self::La|::T? */ {
+static inline-class-member method La|<T extends core::Object = dynamic>(self::K<self::La|::T> /* = self::La|::T? */ it) → self::La<self::La|::T> /* = self::La|::T? */ {
   lowered final self::La<self::La|::T> /* = self::La|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method La|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::La<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */
+static inline-class-member method La|_#new#tearOff<T extends core::Object = dynamic>(self::K<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */ it) → self::La<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */
   return self::La|<self::La|_#new#tearOff::T>(it);
-static inline-class-member method Lc|<T extends core::Object = dynamic>(dynamic it) → self::Lc<self::Lc|::T> /* = self::Lc|::T? */ {
+static inline-class-member method Lc|<T extends core::Object = dynamic>(self::K<self::Lc|::T>? /* = self::Lc|::T? */ it) → self::Lc<self::Lc|::T> /* = self::Lc|::T? */ {
   lowered final self::Lc<self::Lc|::T> /* = self::Lc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Lc|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Lc<self::Lc|_#new#tearOff::T> /* = self::Lc|_#new#tearOff::T? */
+static inline-class-member method Lc|_#new#tearOff<T extends core::Object = dynamic>(self::K<self::Lc|_#new#tearOff::T>? /* = self::Lc|_#new#tearOff::T? */ it) → self::Lc<self::Lc|_#new#tearOff::T> /* = self::Lc|_#new#tearOff::T? */
   return self::Lc|<self::Lc|_#new#tearOff::T>(it);
 static method testA(Never n) → dynamic {
   self::A /* = core::int */ a1 = n;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.strong.transformed.expect
index 9dc182e..a9197a1 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.strong.transformed.expect
@@ -82,125 +82,125 @@
   constructor • = self::Lc|;
   tearoff • = self::Lc|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
-static inline-class-member method Ba|(dynamic it) → self::Ba /* = core::int */ {
+static inline-class-member method Ba|(self::A /* = core::int */ it) → self::Ba /* = core::int */ {
   lowered final self::Ba /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Ba|_#new#tearOff(dynamic it) → self::Ba /* = core::int */
+static inline-class-member method Ba|_#new#tearOff(self::A /* = core::int */ it) → self::Ba /* = core::int */
   return self::Ba|(it);
-static inline-class-member method Bb|(dynamic it) → self::Bb /* = core::int? */ {
+static inline-class-member method Bb|(self::A? /* = core::int? */ it) → self::Bb /* = core::int? */ {
   lowered final self::Bb /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method Bb|_#new#tearOff(dynamic it) → self::Bb /* = core::int? */
+static inline-class-member method Bb|_#new#tearOff(self::A? /* = core::int? */ it) → self::Bb /* = core::int? */
   return self::Bb|(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = self::C|::T% */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(self::C|::T% it) → self::C<self::C|::T%> /* = self::C|::T% */ {
   lowered final self::C<self::C|::T%> /* = self::C|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = self::C|_#new#tearOff::T% */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(self::C|_#new#tearOff::T% it) → self::C<self::C|_#new#tearOff::T%> /* = self::C|_#new#tearOff::T% */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method Da|<T extends core::Object? = dynamic>(dynamic it) → self::Da<self::Da|::T%> /* = self::Da|::T% */ {
+static inline-class-member method Da|<T extends core::Object? = dynamic>(self::C<self::Da|::T%> /* = self::Da|::T% */ it) → self::Da<self::Da|::T%> /* = self::Da|::T% */ {
   lowered final self::Da<self::Da|::T%> /* = self::Da|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method Da|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Da<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */
+static inline-class-member method Da|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */ it) → self::Da<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */
   return self::Da|<self::Da|_#new#tearOff::T%>(it);
-static inline-class-member method Db|<T extends core::Object? = dynamic>(dynamic it) → self::Db<self::Db|::T%> /* = self::Db|::T? */ {
+static inline-class-member method Db|<T extends core::Object? = dynamic>(self::C<self::Db|::T?> /* = self::Db|::T? */ it) → self::Db<self::Db|::T%> /* = self::Db|::T? */ {
   lowered final self::Db<self::Db|::T%> /* = self::Db|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Db|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Db<self::Db|_#new#tearOff::T%> /* = self::Db|_#new#tearOff::T? */
+static inline-class-member method Db|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Db|_#new#tearOff::T?> /* = self::Db|_#new#tearOff::T? */ it) → self::Db<self::Db|_#new#tearOff::T%> /* = self::Db|_#new#tearOff::T? */
   return self::Db|<self::Db|_#new#tearOff::T%>(it);
-static inline-class-member method Dc|<T extends core::Object? = dynamic>(dynamic it) → self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ {
+static inline-class-member method Dc|<T extends core::Object? = dynamic>(self::C<self::Dc|::T%>? /* = self::Dc|::T? */ it) → self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ {
   lowered final self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Dc|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Dc<self::Dc|_#new#tearOff::T%> /* = self::Dc|_#new#tearOff::T? */
+static inline-class-member method Dc|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Dc|_#new#tearOff::T%>? /* = self::Dc|_#new#tearOff::T? */ it) → self::Dc<self::Dc|_#new#tearOff::T%> /* = self::Dc|_#new#tearOff::T? */
   return self::Dc|<self::Dc|_#new#tearOff::T%>(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int? */ {
+static inline-class-member method E|(core::int? it) → self::E /* = core::int? */ {
   lowered final self::E /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int? */
+static inline-class-member method E|_#new#tearOff(core::int? it) → self::E /* = core::int? */
   return self::E|(it);
-static inline-class-member method Fa|(dynamic it) → self::Fa /* = core::int? */ {
+static inline-class-member method Fa|(self::E /* = core::int? */ it) → self::Fa /* = core::int? */ {
   lowered final self::Fa /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method Fa|_#new#tearOff(dynamic it) → self::Fa /* = core::int? */
+static inline-class-member method Fa|_#new#tearOff(self::E /* = core::int? */ it) → self::Fa /* = core::int? */
   return self::Fa|(it);
-static inline-class-member method Fb|_#new#tearOff(dynamic it) → self::Fb /* = core::int? */
+static inline-class-member method Fb|_#new#tearOff(self::E? /* = core::int? */ it) → self::Fb /* = core::int? */
   return self::Fb|(it);
-static inline-class-member method Fb|(dynamic it) → self::Fb /* = core::int? */ {
+static inline-class-member method Fb|(self::E? /* = core::int? */ it) → self::Fb /* = core::int? */ {
   lowered final self::Fb /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method G|<T extends core::Object? = dynamic>(dynamic it) → self::G<self::G|::T%> /* = self::G|::T? */ {
+static inline-class-member method G|<T extends core::Object? = dynamic>(self::G|::T? it) → self::G<self::G|::T%> /* = self::G|::T? */ {
   lowered final self::G<self::G|::T%> /* = self::G|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T? */
+static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(self::G|_#new#tearOff::T? it) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T? */
   return self::G|<self::G|_#new#tearOff::T%>(it);
-static inline-class-member method Ha|<T extends core::Object? = dynamic>(dynamic it) → self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ {
+static inline-class-member method Ha|<T extends core::Object? = dynamic>(self::G<self::Ha|::T%> /* = self::Ha|::T? */ it) → self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ {
   lowered final self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Ha|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Ha<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */
+static inline-class-member method Ha|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */ it) → self::Ha<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */
   return self::Ha|<self::Ha|_#new#tearOff::T%>(it);
-static inline-class-member method Hb|<T extends core::Object? = dynamic>(dynamic it) → self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ {
+static inline-class-member method Hb|<T extends core::Object? = dynamic>(self::G<self::Hb|::T?> /* = self::Hb|::T? */ it) → self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ {
   lowered final self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Hb|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Hb<self::Hb|_#new#tearOff::T%> /* = self::Hb|_#new#tearOff::T? */
+static inline-class-member method Hb|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Hb|_#new#tearOff::T?> /* = self::Hb|_#new#tearOff::T? */ it) → self::Hb<self::Hb|_#new#tearOff::T%> /* = self::Hb|_#new#tearOff::T? */
   return self::Hb|<self::Hb|_#new#tearOff::T%>(it);
-static inline-class-member method Hc|<T extends core::Object? = dynamic>(dynamic it) → self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ {
+static inline-class-member method Hc|<T extends core::Object? = dynamic>(self::G<self::Hc|::T%>? /* = self::Hc|::T? */ it) → self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ {
   lowered final self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Hc|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Hc<self::Hc|_#new#tearOff::T%> /* = self::Hc|_#new#tearOff::T? */
+static inline-class-member method Hc|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Hc|_#new#tearOff::T%>? /* = self::Hc|_#new#tearOff::T? */ it) → self::Hc<self::Hc|_#new#tearOff::T%> /* = self::Hc|_#new#tearOff::T? */
   return self::Hc|<self::Hc|_#new#tearOff::T%>(it);
-static inline-class-member method I|<T extends core::Object = dynamic>(dynamic it) → self::I<self::I|::T> /* = self::I|::T */ {
+static inline-class-member method I|<T extends core::Object = dynamic>(self::I|::T it) → self::I<self::I|::T> /* = self::I|::T */ {
   lowered final self::I<self::I|::T> /* = self::I|::T */ #this = it;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::I<self::I|_#new#tearOff::T> /* = self::I|_#new#tearOff::T */
+static inline-class-member method I|_#new#tearOff<T extends core::Object = dynamic>(self::I|_#new#tearOff::T it) → self::I<self::I|_#new#tearOff::T> /* = self::I|_#new#tearOff::T */
   return self::I|<self::I|_#new#tearOff::T>(it);
-static inline-class-member method Ja|<T extends core::Object = dynamic>(dynamic it) → self::Ja<self::Ja|::T> /* = self::Ja|::T */ {
+static inline-class-member method Ja|<T extends core::Object = dynamic>(self::I<self::Ja|::T> /* = self::Ja|::T */ it) → self::Ja<self::Ja|::T> /* = self::Ja|::T */ {
   lowered final self::Ja<self::Ja|::T> /* = self::Ja|::T */ #this = it;
   return #this;
 }
-static inline-class-member method Ja|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Ja<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */
+static inline-class-member method Ja|_#new#tearOff<T extends core::Object = dynamic>(self::I<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */ it) → self::Ja<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */
   return self::Ja|<self::Ja|_#new#tearOff::T>(it);
-static inline-class-member method Jc|<T extends core::Object = dynamic>(dynamic it) → self::Jc<self::Jc|::T> /* = self::Jc|::T? */ {
+static inline-class-member method Jc|<T extends core::Object = dynamic>(self::I<self::Jc|::T>? /* = self::Jc|::T? */ it) → self::Jc<self::Jc|::T> /* = self::Jc|::T? */ {
   lowered final self::Jc<self::Jc|::T> /* = self::Jc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Jc|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Jc<self::Jc|_#new#tearOff::T> /* = self::Jc|_#new#tearOff::T? */
+static inline-class-member method Jc|_#new#tearOff<T extends core::Object = dynamic>(self::I<self::Jc|_#new#tearOff::T>? /* = self::Jc|_#new#tearOff::T? */ it) → self::Jc<self::Jc|_#new#tearOff::T> /* = self::Jc|_#new#tearOff::T? */
   return self::Jc|<self::Jc|_#new#tearOff::T>(it);
-static inline-class-member method K|<T extends core::Object = dynamic>(dynamic it) → self::K<self::K|::T> /* = self::K|::T? */ {
+static inline-class-member method K|<T extends core::Object = dynamic>(self::K|::T? it) → self::K<self::K|::T> /* = self::K|::T? */ {
   lowered final self::K<self::K|::T> /* = self::K|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method K|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::K<self::K|_#new#tearOff::T> /* = self::K|_#new#tearOff::T? */
+static inline-class-member method K|_#new#tearOff<T extends core::Object = dynamic>(self::K|_#new#tearOff::T? it) → self::K<self::K|_#new#tearOff::T> /* = self::K|_#new#tearOff::T? */
   return self::K|<self::K|_#new#tearOff::T>(it);
-static inline-class-member method La|<T extends core::Object = dynamic>(dynamic it) → self::La<self::La|::T> /* = self::La|::T? */ {
+static inline-class-member method La|<T extends core::Object = dynamic>(self::K<self::La|::T> /* = self::La|::T? */ it) → self::La<self::La|::T> /* = self::La|::T? */ {
   lowered final self::La<self::La|::T> /* = self::La|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method La|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::La<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */
+static inline-class-member method La|_#new#tearOff<T extends core::Object = dynamic>(self::K<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */ it) → self::La<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */
   return self::La|<self::La|_#new#tearOff::T>(it);
-static inline-class-member method Lc|<T extends core::Object = dynamic>(dynamic it) → self::Lc<self::Lc|::T> /* = self::Lc|::T? */ {
+static inline-class-member method Lc|<T extends core::Object = dynamic>(self::K<self::Lc|::T>? /* = self::Lc|::T? */ it) → self::Lc<self::Lc|::T> /* = self::Lc|::T? */ {
   lowered final self::Lc<self::Lc|::T> /* = self::Lc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Lc|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Lc<self::Lc|_#new#tearOff::T> /* = self::Lc|_#new#tearOff::T? */
+static inline-class-member method Lc|_#new#tearOff<T extends core::Object = dynamic>(self::K<self::Lc|_#new#tearOff::T>? /* = self::Lc|_#new#tearOff::T? */ it) → self::Lc<self::Lc|_#new#tearOff::T> /* = self::Lc|_#new#tearOff::T? */
   return self::Lc|<self::Lc|_#new#tearOff::T>(it);
 static method testA(Never n) → dynamic {
   self::A /* = core::int */ a1 = n;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.expect
index 2224093..aaaed2e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.expect
@@ -83,125 +83,125 @@
   constructor • = self::Lc|;
   tearoff • = self::Lc|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
-static inline-class-member method Ba|(dynamic it) → self::Ba /* = core::int */ {
+static inline-class-member method Ba|(self::A /* = core::int */ it) → self::Ba /* = core::int */ {
   lowered final self::Ba /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Ba|_#new#tearOff(dynamic it) → self::Ba /* = core::int */
+static inline-class-member method Ba|_#new#tearOff(self::A /* = core::int */ it) → self::Ba /* = core::int */
   return self::Ba|(it);
-static inline-class-member method Bb|(dynamic it) → self::Bb /* = core::int? */ {
+static inline-class-member method Bb|(self::A? /* = core::int? */ it) → self::Bb /* = core::int? */ {
   lowered final self::Bb /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method Bb|_#new#tearOff(dynamic it) → self::Bb /* = core::int? */
+static inline-class-member method Bb|_#new#tearOff(self::A? /* = core::int? */ it) → self::Bb /* = core::int? */
   return self::Bb|(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = self::C|::T% */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(self::C|::T% it) → self::C<self::C|::T%> /* = self::C|::T% */ {
   lowered final self::C<self::C|::T%> /* = self::C|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = self::C|_#new#tearOff::T% */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(self::C|_#new#tearOff::T% it) → self::C<self::C|_#new#tearOff::T%> /* = self::C|_#new#tearOff::T% */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method Da|<T extends core::Object? = dynamic>(dynamic it) → self::Da<self::Da|::T%> /* = self::Da|::T% */ {
+static inline-class-member method Da|<T extends core::Object? = dynamic>(self::C<self::Da|::T%> /* = self::Da|::T% */ it) → self::Da<self::Da|::T%> /* = self::Da|::T% */ {
   lowered final self::Da<self::Da|::T%> /* = self::Da|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method Da|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Da<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */
+static inline-class-member method Da|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */ it) → self::Da<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */
   return self::Da|<self::Da|_#new#tearOff::T%>(it);
-static inline-class-member method Db|<T extends core::Object? = dynamic>(dynamic it) → self::Db<self::Db|::T%> /* = self::Db|::T? */ {
+static inline-class-member method Db|<T extends core::Object? = dynamic>(self::C<self::Db|::T?> /* = self::Db|::T? */ it) → self::Db<self::Db|::T%> /* = self::Db|::T? */ {
   lowered final self::Db<self::Db|::T%> /* = self::Db|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Db|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Db<self::Db|_#new#tearOff::T%> /* = self::Db|_#new#tearOff::T? */
+static inline-class-member method Db|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Db|_#new#tearOff::T?> /* = self::Db|_#new#tearOff::T? */ it) → self::Db<self::Db|_#new#tearOff::T%> /* = self::Db|_#new#tearOff::T? */
   return self::Db|<self::Db|_#new#tearOff::T%>(it);
-static inline-class-member method Dc|<T extends core::Object? = dynamic>(dynamic it) → self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ {
+static inline-class-member method Dc|<T extends core::Object? = dynamic>(self::C<self::Dc|::T%>? /* = self::Dc|::T? */ it) → self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ {
   lowered final self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Dc|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Dc<self::Dc|_#new#tearOff::T%> /* = self::Dc|_#new#tearOff::T? */
+static inline-class-member method Dc|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Dc|_#new#tearOff::T%>? /* = self::Dc|_#new#tearOff::T? */ it) → self::Dc<self::Dc|_#new#tearOff::T%> /* = self::Dc|_#new#tearOff::T? */
   return self::Dc|<self::Dc|_#new#tearOff::T%>(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int? */ {
+static inline-class-member method E|(core::int? it) → self::E /* = core::int? */ {
   lowered final self::E /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int? */
+static inline-class-member method E|_#new#tearOff(core::int? it) → self::E /* = core::int? */
   return self::E|(it);
-static inline-class-member method Fa|(dynamic it) → self::Fa /* = core::int? */ {
+static inline-class-member method Fa|(self::E /* = core::int? */ it) → self::Fa /* = core::int? */ {
   lowered final self::Fa /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method Fa|_#new#tearOff(dynamic it) → self::Fa /* = core::int? */
+static inline-class-member method Fa|_#new#tearOff(self::E /* = core::int? */ it) → self::Fa /* = core::int? */
   return self::Fa|(it);
-static inline-class-member method Fb|_#new#tearOff(dynamic it) → self::Fb /* = core::int? */
+static inline-class-member method Fb|_#new#tearOff(self::E? /* = core::int? */ it) → self::Fb /* = core::int? */
   return self::Fb|(it);
-static inline-class-member method Fb|(dynamic it) → self::Fb /* = core::int? */ {
+static inline-class-member method Fb|(self::E? /* = core::int? */ it) → self::Fb /* = core::int? */ {
   lowered final self::Fb /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method G|<T extends core::Object? = dynamic>(dynamic it) → self::G<self::G|::T%> /* = self::G|::T? */ {
+static inline-class-member method G|<T extends core::Object? = dynamic>(self::G|::T? it) → self::G<self::G|::T%> /* = self::G|::T? */ {
   lowered final self::G<self::G|::T%> /* = self::G|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T? */
+static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(self::G|_#new#tearOff::T? it) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T? */
   return self::G|<self::G|_#new#tearOff::T%>(it);
-static inline-class-member method Ha|<T extends core::Object? = dynamic>(dynamic it) → self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ {
+static inline-class-member method Ha|<T extends core::Object? = dynamic>(self::G<self::Ha|::T%> /* = self::Ha|::T? */ it) → self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ {
   lowered final self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Ha|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Ha<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */
+static inline-class-member method Ha|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */ it) → self::Ha<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */
   return self::Ha|<self::Ha|_#new#tearOff::T%>(it);
-static inline-class-member method Hb|<T extends core::Object? = dynamic>(dynamic it) → self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ {
+static inline-class-member method Hb|<T extends core::Object? = dynamic>(self::G<self::Hb|::T?> /* = self::Hb|::T? */ it) → self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ {
   lowered final self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Hb|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Hb<self::Hb|_#new#tearOff::T%> /* = self::Hb|_#new#tearOff::T? */
+static inline-class-member method Hb|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Hb|_#new#tearOff::T?> /* = self::Hb|_#new#tearOff::T? */ it) → self::Hb<self::Hb|_#new#tearOff::T%> /* = self::Hb|_#new#tearOff::T? */
   return self::Hb|<self::Hb|_#new#tearOff::T%>(it);
-static inline-class-member method Hc|<T extends core::Object? = dynamic>(dynamic it) → self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ {
+static inline-class-member method Hc|<T extends core::Object? = dynamic>(self::G<self::Hc|::T%>? /* = self::Hc|::T? */ it) → self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ {
   lowered final self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Hc|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Hc<self::Hc|_#new#tearOff::T%> /* = self::Hc|_#new#tearOff::T? */
+static inline-class-member method Hc|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Hc|_#new#tearOff::T%>? /* = self::Hc|_#new#tearOff::T? */ it) → self::Hc<self::Hc|_#new#tearOff::T%> /* = self::Hc|_#new#tearOff::T? */
   return self::Hc|<self::Hc|_#new#tearOff::T%>(it);
-static inline-class-member method I|<T extends core::Object = dynamic>(dynamic it) → self::I<self::I|::T> /* = self::I|::T */ {
+static inline-class-member method I|<T extends core::Object = dynamic>(self::I|::T it) → self::I<self::I|::T> /* = self::I|::T */ {
   lowered final self::I<self::I|::T> /* = self::I|::T */ #this = it;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::I<self::I|_#new#tearOff::T> /* = self::I|_#new#tearOff::T */
+static inline-class-member method I|_#new#tearOff<T extends core::Object = dynamic>(self::I|_#new#tearOff::T it) → self::I<self::I|_#new#tearOff::T> /* = self::I|_#new#tearOff::T */
   return self::I|<self::I|_#new#tearOff::T>(it);
-static inline-class-member method Ja|<T extends core::Object = dynamic>(dynamic it) → self::Ja<self::Ja|::T> /* = self::Ja|::T */ {
+static inline-class-member method Ja|<T extends core::Object = dynamic>(self::I<self::Ja|::T> /* = self::Ja|::T */ it) → self::Ja<self::Ja|::T> /* = self::Ja|::T */ {
   lowered final self::Ja<self::Ja|::T> /* = self::Ja|::T */ #this = it;
   return #this;
 }
-static inline-class-member method Ja|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Ja<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */
+static inline-class-member method Ja|_#new#tearOff<T extends core::Object = dynamic>(self::I<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */ it) → self::Ja<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */
   return self::Ja|<self::Ja|_#new#tearOff::T>(it);
-static inline-class-member method Jc|<T extends core::Object = dynamic>(dynamic it) → self::Jc<self::Jc|::T> /* = self::Jc|::T? */ {
+static inline-class-member method Jc|<T extends core::Object = dynamic>(self::I<self::Jc|::T>? /* = self::Jc|::T? */ it) → self::Jc<self::Jc|::T> /* = self::Jc|::T? */ {
   lowered final self::Jc<self::Jc|::T> /* = self::Jc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Jc|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Jc<self::Jc|_#new#tearOff::T> /* = self::Jc|_#new#tearOff::T? */
+static inline-class-member method Jc|_#new#tearOff<T extends core::Object = dynamic>(self::I<self::Jc|_#new#tearOff::T>? /* = self::Jc|_#new#tearOff::T? */ it) → self::Jc<self::Jc|_#new#tearOff::T> /* = self::Jc|_#new#tearOff::T? */
   return self::Jc|<self::Jc|_#new#tearOff::T>(it);
-static inline-class-member method K|<T extends core::Object = dynamic>(dynamic it) → self::K<self::K|::T> /* = self::K|::T? */ {
+static inline-class-member method K|<T extends core::Object = dynamic>(self::K|::T? it) → self::K<self::K|::T> /* = self::K|::T? */ {
   lowered final self::K<self::K|::T> /* = self::K|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method K|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::K<self::K|_#new#tearOff::T> /* = self::K|_#new#tearOff::T? */
+static inline-class-member method K|_#new#tearOff<T extends core::Object = dynamic>(self::K|_#new#tearOff::T? it) → self::K<self::K|_#new#tearOff::T> /* = self::K|_#new#tearOff::T? */
   return self::K|<self::K|_#new#tearOff::T>(it);
-static inline-class-member method La|<T extends core::Object = dynamic>(dynamic it) → self::La<self::La|::T> /* = self::La|::T? */ {
+static inline-class-member method La|<T extends core::Object = dynamic>(self::K<self::La|::T> /* = self::La|::T? */ it) → self::La<self::La|::T> /* = self::La|::T? */ {
   lowered final self::La<self::La|::T> /* = self::La|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method La|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::La<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */
+static inline-class-member method La|_#new#tearOff<T extends core::Object = dynamic>(self::K<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */ it) → self::La<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */
   return self::La|<self::La|_#new#tearOff::T>(it);
-static inline-class-member method Lc|<T extends core::Object = dynamic>(dynamic it) → self::Lc<self::Lc|::T> /* = self::Lc|::T? */ {
+static inline-class-member method Lc|<T extends core::Object = dynamic>(self::K<self::Lc|::T>? /* = self::Lc|::T? */ it) → self::Lc<self::Lc|::T> /* = self::Lc|::T? */ {
   lowered final self::Lc<self::Lc|::T> /* = self::Lc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Lc|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Lc<self::Lc|_#new#tearOff::T> /* = self::Lc|_#new#tearOff::T? */
+static inline-class-member method Lc|_#new#tearOff<T extends core::Object = dynamic>(self::K<self::Lc|_#new#tearOff::T>? /* = self::Lc|_#new#tearOff::T? */ it) → self::Lc<self::Lc|_#new#tearOff::T> /* = self::Lc|_#new#tearOff::T? */
   return self::Lc|<self::Lc|_#new#tearOff::T>(it);
 static method testA(Never n) → dynamic {
   self::A /* = core::int */ a1 = let final Never #t1 = n in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
diff --git a/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.modular.expect
index 2224093..aaaed2e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.modular.expect
@@ -83,125 +83,125 @@
   constructor • = self::Lc|;
   tearoff • = self::Lc|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
-static inline-class-member method Ba|(dynamic it) → self::Ba /* = core::int */ {
+static inline-class-member method Ba|(self::A /* = core::int */ it) → self::Ba /* = core::int */ {
   lowered final self::Ba /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Ba|_#new#tearOff(dynamic it) → self::Ba /* = core::int */
+static inline-class-member method Ba|_#new#tearOff(self::A /* = core::int */ it) → self::Ba /* = core::int */
   return self::Ba|(it);
-static inline-class-member method Bb|(dynamic it) → self::Bb /* = core::int? */ {
+static inline-class-member method Bb|(self::A? /* = core::int? */ it) → self::Bb /* = core::int? */ {
   lowered final self::Bb /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method Bb|_#new#tearOff(dynamic it) → self::Bb /* = core::int? */
+static inline-class-member method Bb|_#new#tearOff(self::A? /* = core::int? */ it) → self::Bb /* = core::int? */
   return self::Bb|(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = self::C|::T% */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(self::C|::T% it) → self::C<self::C|::T%> /* = self::C|::T% */ {
   lowered final self::C<self::C|::T%> /* = self::C|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = self::C|_#new#tearOff::T% */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(self::C|_#new#tearOff::T% it) → self::C<self::C|_#new#tearOff::T%> /* = self::C|_#new#tearOff::T% */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method Da|<T extends core::Object? = dynamic>(dynamic it) → self::Da<self::Da|::T%> /* = self::Da|::T% */ {
+static inline-class-member method Da|<T extends core::Object? = dynamic>(self::C<self::Da|::T%> /* = self::Da|::T% */ it) → self::Da<self::Da|::T%> /* = self::Da|::T% */ {
   lowered final self::Da<self::Da|::T%> /* = self::Da|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method Da|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Da<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */
+static inline-class-member method Da|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */ it) → self::Da<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */
   return self::Da|<self::Da|_#new#tearOff::T%>(it);
-static inline-class-member method Db|<T extends core::Object? = dynamic>(dynamic it) → self::Db<self::Db|::T%> /* = self::Db|::T? */ {
+static inline-class-member method Db|<T extends core::Object? = dynamic>(self::C<self::Db|::T?> /* = self::Db|::T? */ it) → self::Db<self::Db|::T%> /* = self::Db|::T? */ {
   lowered final self::Db<self::Db|::T%> /* = self::Db|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Db|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Db<self::Db|_#new#tearOff::T%> /* = self::Db|_#new#tearOff::T? */
+static inline-class-member method Db|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Db|_#new#tearOff::T?> /* = self::Db|_#new#tearOff::T? */ it) → self::Db<self::Db|_#new#tearOff::T%> /* = self::Db|_#new#tearOff::T? */
   return self::Db|<self::Db|_#new#tearOff::T%>(it);
-static inline-class-member method Dc|<T extends core::Object? = dynamic>(dynamic it) → self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ {
+static inline-class-member method Dc|<T extends core::Object? = dynamic>(self::C<self::Dc|::T%>? /* = self::Dc|::T? */ it) → self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ {
   lowered final self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Dc|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Dc<self::Dc|_#new#tearOff::T%> /* = self::Dc|_#new#tearOff::T? */
+static inline-class-member method Dc|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Dc|_#new#tearOff::T%>? /* = self::Dc|_#new#tearOff::T? */ it) → self::Dc<self::Dc|_#new#tearOff::T%> /* = self::Dc|_#new#tearOff::T? */
   return self::Dc|<self::Dc|_#new#tearOff::T%>(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int? */ {
+static inline-class-member method E|(core::int? it) → self::E /* = core::int? */ {
   lowered final self::E /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int? */
+static inline-class-member method E|_#new#tearOff(core::int? it) → self::E /* = core::int? */
   return self::E|(it);
-static inline-class-member method Fa|(dynamic it) → self::Fa /* = core::int? */ {
+static inline-class-member method Fa|(self::E /* = core::int? */ it) → self::Fa /* = core::int? */ {
   lowered final self::Fa /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method Fa|_#new#tearOff(dynamic it) → self::Fa /* = core::int? */
+static inline-class-member method Fa|_#new#tearOff(self::E /* = core::int? */ it) → self::Fa /* = core::int? */
   return self::Fa|(it);
-static inline-class-member method Fb|_#new#tearOff(dynamic it) → self::Fb /* = core::int? */
+static inline-class-member method Fb|_#new#tearOff(self::E? /* = core::int? */ it) → self::Fb /* = core::int? */
   return self::Fb|(it);
-static inline-class-member method Fb|(dynamic it) → self::Fb /* = core::int? */ {
+static inline-class-member method Fb|(self::E? /* = core::int? */ it) → self::Fb /* = core::int? */ {
   lowered final self::Fb /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method G|<T extends core::Object? = dynamic>(dynamic it) → self::G<self::G|::T%> /* = self::G|::T? */ {
+static inline-class-member method G|<T extends core::Object? = dynamic>(self::G|::T? it) → self::G<self::G|::T%> /* = self::G|::T? */ {
   lowered final self::G<self::G|::T%> /* = self::G|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T? */
+static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(self::G|_#new#tearOff::T? it) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T? */
   return self::G|<self::G|_#new#tearOff::T%>(it);
-static inline-class-member method Ha|<T extends core::Object? = dynamic>(dynamic it) → self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ {
+static inline-class-member method Ha|<T extends core::Object? = dynamic>(self::G<self::Ha|::T%> /* = self::Ha|::T? */ it) → self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ {
   lowered final self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Ha|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Ha<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */
+static inline-class-member method Ha|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */ it) → self::Ha<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */
   return self::Ha|<self::Ha|_#new#tearOff::T%>(it);
-static inline-class-member method Hb|<T extends core::Object? = dynamic>(dynamic it) → self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ {
+static inline-class-member method Hb|<T extends core::Object? = dynamic>(self::G<self::Hb|::T?> /* = self::Hb|::T? */ it) → self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ {
   lowered final self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Hb|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Hb<self::Hb|_#new#tearOff::T%> /* = self::Hb|_#new#tearOff::T? */
+static inline-class-member method Hb|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Hb|_#new#tearOff::T?> /* = self::Hb|_#new#tearOff::T? */ it) → self::Hb<self::Hb|_#new#tearOff::T%> /* = self::Hb|_#new#tearOff::T? */
   return self::Hb|<self::Hb|_#new#tearOff::T%>(it);
-static inline-class-member method Hc|<T extends core::Object? = dynamic>(dynamic it) → self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ {
+static inline-class-member method Hc|<T extends core::Object? = dynamic>(self::G<self::Hc|::T%>? /* = self::Hc|::T? */ it) → self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ {
   lowered final self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Hc|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Hc<self::Hc|_#new#tearOff::T%> /* = self::Hc|_#new#tearOff::T? */
+static inline-class-member method Hc|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Hc|_#new#tearOff::T%>? /* = self::Hc|_#new#tearOff::T? */ it) → self::Hc<self::Hc|_#new#tearOff::T%> /* = self::Hc|_#new#tearOff::T? */
   return self::Hc|<self::Hc|_#new#tearOff::T%>(it);
-static inline-class-member method I|<T extends core::Object = dynamic>(dynamic it) → self::I<self::I|::T> /* = self::I|::T */ {
+static inline-class-member method I|<T extends core::Object = dynamic>(self::I|::T it) → self::I<self::I|::T> /* = self::I|::T */ {
   lowered final self::I<self::I|::T> /* = self::I|::T */ #this = it;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::I<self::I|_#new#tearOff::T> /* = self::I|_#new#tearOff::T */
+static inline-class-member method I|_#new#tearOff<T extends core::Object = dynamic>(self::I|_#new#tearOff::T it) → self::I<self::I|_#new#tearOff::T> /* = self::I|_#new#tearOff::T */
   return self::I|<self::I|_#new#tearOff::T>(it);
-static inline-class-member method Ja|<T extends core::Object = dynamic>(dynamic it) → self::Ja<self::Ja|::T> /* = self::Ja|::T */ {
+static inline-class-member method Ja|<T extends core::Object = dynamic>(self::I<self::Ja|::T> /* = self::Ja|::T */ it) → self::Ja<self::Ja|::T> /* = self::Ja|::T */ {
   lowered final self::Ja<self::Ja|::T> /* = self::Ja|::T */ #this = it;
   return #this;
 }
-static inline-class-member method Ja|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Ja<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */
+static inline-class-member method Ja|_#new#tearOff<T extends core::Object = dynamic>(self::I<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */ it) → self::Ja<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */
   return self::Ja|<self::Ja|_#new#tearOff::T>(it);
-static inline-class-member method Jc|<T extends core::Object = dynamic>(dynamic it) → self::Jc<self::Jc|::T> /* = self::Jc|::T? */ {
+static inline-class-member method Jc|<T extends core::Object = dynamic>(self::I<self::Jc|::T>? /* = self::Jc|::T? */ it) → self::Jc<self::Jc|::T> /* = self::Jc|::T? */ {
   lowered final self::Jc<self::Jc|::T> /* = self::Jc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Jc|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Jc<self::Jc|_#new#tearOff::T> /* = self::Jc|_#new#tearOff::T? */
+static inline-class-member method Jc|_#new#tearOff<T extends core::Object = dynamic>(self::I<self::Jc|_#new#tearOff::T>? /* = self::Jc|_#new#tearOff::T? */ it) → self::Jc<self::Jc|_#new#tearOff::T> /* = self::Jc|_#new#tearOff::T? */
   return self::Jc|<self::Jc|_#new#tearOff::T>(it);
-static inline-class-member method K|<T extends core::Object = dynamic>(dynamic it) → self::K<self::K|::T> /* = self::K|::T? */ {
+static inline-class-member method K|<T extends core::Object = dynamic>(self::K|::T? it) → self::K<self::K|::T> /* = self::K|::T? */ {
   lowered final self::K<self::K|::T> /* = self::K|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method K|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::K<self::K|_#new#tearOff::T> /* = self::K|_#new#tearOff::T? */
+static inline-class-member method K|_#new#tearOff<T extends core::Object = dynamic>(self::K|_#new#tearOff::T? it) → self::K<self::K|_#new#tearOff::T> /* = self::K|_#new#tearOff::T? */
   return self::K|<self::K|_#new#tearOff::T>(it);
-static inline-class-member method La|<T extends core::Object = dynamic>(dynamic it) → self::La<self::La|::T> /* = self::La|::T? */ {
+static inline-class-member method La|<T extends core::Object = dynamic>(self::K<self::La|::T> /* = self::La|::T? */ it) → self::La<self::La|::T> /* = self::La|::T? */ {
   lowered final self::La<self::La|::T> /* = self::La|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method La|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::La<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */
+static inline-class-member method La|_#new#tearOff<T extends core::Object = dynamic>(self::K<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */ it) → self::La<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */
   return self::La|<self::La|_#new#tearOff::T>(it);
-static inline-class-member method Lc|<T extends core::Object = dynamic>(dynamic it) → self::Lc<self::Lc|::T> /* = self::Lc|::T? */ {
+static inline-class-member method Lc|<T extends core::Object = dynamic>(self::K<self::Lc|::T>? /* = self::Lc|::T? */ it) → self::Lc<self::Lc|::T> /* = self::Lc|::T? */ {
   lowered final self::Lc<self::Lc|::T> /* = self::Lc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Lc|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Lc<self::Lc|_#new#tearOff::T> /* = self::Lc|_#new#tearOff::T? */
+static inline-class-member method Lc|_#new#tearOff<T extends core::Object = dynamic>(self::K<self::Lc|_#new#tearOff::T>? /* = self::Lc|_#new#tearOff::T? */ it) → self::Lc<self::Lc|_#new#tearOff::T> /* = self::Lc|_#new#tearOff::T? */
   return self::Lc|<self::Lc|_#new#tearOff::T>(it);
 static method testA(Never n) → dynamic {
   self::A /* = core::int */ a1 = let final Never #t1 = n in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
diff --git a/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.outline.expect
index 2186e20..48f81d5 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.outline.expect
@@ -82,85 +82,85 @@
   constructor • = self::Lc|;
   tearoff • = self::Lc|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|(core::int it) → self::A /* = core::int */
   ;
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
-static inline-class-member method Ba|(dynamic it) → self::Ba /* = core::int */
+static inline-class-member method Ba|(self::A /* = core::int */ it) → self::Ba /* = core::int */
   ;
-static inline-class-member method Ba|_#new#tearOff(dynamic it) → self::Ba /* = core::int */
+static inline-class-member method Ba|_#new#tearOff(self::A /* = core::int */ it) → self::Ba /* = core::int */
   return self::Ba|(it);
-static inline-class-member method Bb|(dynamic it) → self::Bb /* = core::int? */
+static inline-class-member method Bb|(self::A? /* = core::int? */ it) → self::Bb /* = core::int? */
   ;
-static inline-class-member method Bb|_#new#tearOff(dynamic it) → self::Bb /* = core::int? */
+static inline-class-member method Bb|_#new#tearOff(self::A? /* = core::int? */ it) → self::Bb /* = core::int? */
   return self::Bb|(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = self::C|::T% */
+static inline-class-member method C|<T extends core::Object? = dynamic>(self::C|::T% it) → self::C<self::C|::T%> /* = self::C|::T% */
   ;
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = self::C|_#new#tearOff::T% */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(self::C|_#new#tearOff::T% it) → self::C<self::C|_#new#tearOff::T%> /* = self::C|_#new#tearOff::T% */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method Da|<T extends core::Object? = dynamic>(dynamic it) → self::Da<self::Da|::T%> /* = self::Da|::T% */
+static inline-class-member method Da|<T extends core::Object? = dynamic>(self::C<self::Da|::T%> /* = self::Da|::T% */ it) → self::Da<self::Da|::T%> /* = self::Da|::T% */
   ;
-static inline-class-member method Da|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Da<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */
+static inline-class-member method Da|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */ it) → self::Da<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */
   return self::Da|<self::Da|_#new#tearOff::T%>(it);
-static inline-class-member method Db|<T extends core::Object? = dynamic>(dynamic it) → self::Db<self::Db|::T%> /* = self::Db|::T? */
+static inline-class-member method Db|<T extends core::Object? = dynamic>(self::C<self::Db|::T?> /* = self::Db|::T? */ it) → self::Db<self::Db|::T%> /* = self::Db|::T? */
   ;
-static inline-class-member method Db|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Db<self::Db|_#new#tearOff::T%> /* = self::Db|_#new#tearOff::T? */
+static inline-class-member method Db|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Db|_#new#tearOff::T?> /* = self::Db|_#new#tearOff::T? */ it) → self::Db<self::Db|_#new#tearOff::T%> /* = self::Db|_#new#tearOff::T? */
   return self::Db|<self::Db|_#new#tearOff::T%>(it);
-static inline-class-member method Dc|<T extends core::Object? = dynamic>(dynamic it) → self::Dc<self::Dc|::T%> /* = self::Dc|::T? */
+static inline-class-member method Dc|<T extends core::Object? = dynamic>(self::C<self::Dc|::T%>? /* = self::Dc|::T? */ it) → self::Dc<self::Dc|::T%> /* = self::Dc|::T? */
   ;
-static inline-class-member method Dc|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Dc<self::Dc|_#new#tearOff::T%> /* = self::Dc|_#new#tearOff::T? */
+static inline-class-member method Dc|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Dc|_#new#tearOff::T%>? /* = self::Dc|_#new#tearOff::T? */ it) → self::Dc<self::Dc|_#new#tearOff::T%> /* = self::Dc|_#new#tearOff::T? */
   return self::Dc|<self::Dc|_#new#tearOff::T%>(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int? */
+static inline-class-member method E|(core::int? it) → self::E /* = core::int? */
   ;
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int? */
+static inline-class-member method E|_#new#tearOff(core::int? it) → self::E /* = core::int? */
   return self::E|(it);
-static inline-class-member method Fa|(dynamic it) → self::Fa /* = core::int? */
+static inline-class-member method Fa|(self::E /* = core::int? */ it) → self::Fa /* = core::int? */
   ;
-static inline-class-member method Fa|_#new#tearOff(dynamic it) → self::Fa /* = core::int? */
+static inline-class-member method Fa|_#new#tearOff(self::E /* = core::int? */ it) → self::Fa /* = core::int? */
   return self::Fa|(it);
-static inline-class-member method Fb|_#new#tearOff(dynamic it) → self::Fb /* = core::int? */
+static inline-class-member method Fb|_#new#tearOff(self::E? /* = core::int? */ it) → self::Fb /* = core::int? */
   return self::Fb|(it);
-static inline-class-member method Fb|(dynamic it) → self::Fb /* = core::int? */
+static inline-class-member method Fb|(self::E? /* = core::int? */ it) → self::Fb /* = core::int? */
   ;
-static inline-class-member method G|<T extends core::Object? = dynamic>(dynamic it) → self::G<self::G|::T%> /* = self::G|::T? */
+static inline-class-member method G|<T extends core::Object? = dynamic>(self::G|::T? it) → self::G<self::G|::T%> /* = self::G|::T? */
   ;
-static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T? */
+static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(self::G|_#new#tearOff::T? it) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T? */
   return self::G|<self::G|_#new#tearOff::T%>(it);
-static inline-class-member method Ha|<T extends core::Object? = dynamic>(dynamic it) → self::Ha<self::Ha|::T%> /* = self::Ha|::T? */
+static inline-class-member method Ha|<T extends core::Object? = dynamic>(self::G<self::Ha|::T%> /* = self::Ha|::T? */ it) → self::Ha<self::Ha|::T%> /* = self::Ha|::T? */
   ;
-static inline-class-member method Ha|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Ha<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */
+static inline-class-member method Ha|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */ it) → self::Ha<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */
   return self::Ha|<self::Ha|_#new#tearOff::T%>(it);
-static inline-class-member method Hb|<T extends core::Object? = dynamic>(dynamic it) → self::Hb<self::Hb|::T%> /* = self::Hb|::T? */
+static inline-class-member method Hb|<T extends core::Object? = dynamic>(self::G<self::Hb|::T?> /* = self::Hb|::T? */ it) → self::Hb<self::Hb|::T%> /* = self::Hb|::T? */
   ;
-static inline-class-member method Hb|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Hb<self::Hb|_#new#tearOff::T%> /* = self::Hb|_#new#tearOff::T? */
+static inline-class-member method Hb|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Hb|_#new#tearOff::T?> /* = self::Hb|_#new#tearOff::T? */ it) → self::Hb<self::Hb|_#new#tearOff::T%> /* = self::Hb|_#new#tearOff::T? */
   return self::Hb|<self::Hb|_#new#tearOff::T%>(it);
-static inline-class-member method Hc|<T extends core::Object? = dynamic>(dynamic it) → self::Hc<self::Hc|::T%> /* = self::Hc|::T? */
+static inline-class-member method Hc|<T extends core::Object? = dynamic>(self::G<self::Hc|::T%>? /* = self::Hc|::T? */ it) → self::Hc<self::Hc|::T%> /* = self::Hc|::T? */
   ;
-static inline-class-member method Hc|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Hc<self::Hc|_#new#tearOff::T%> /* = self::Hc|_#new#tearOff::T? */
+static inline-class-member method Hc|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Hc|_#new#tearOff::T%>? /* = self::Hc|_#new#tearOff::T? */ it) → self::Hc<self::Hc|_#new#tearOff::T%> /* = self::Hc|_#new#tearOff::T? */
   return self::Hc|<self::Hc|_#new#tearOff::T%>(it);
-static inline-class-member method I|<T extends core::Object = dynamic>(dynamic it) → self::I<self::I|::T> /* = self::I|::T */
+static inline-class-member method I|<T extends core::Object = dynamic>(self::I|::T it) → self::I<self::I|::T> /* = self::I|::T */
   ;
-static inline-class-member method I|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::I<self::I|_#new#tearOff::T> /* = self::I|_#new#tearOff::T */
+static inline-class-member method I|_#new#tearOff<T extends core::Object = dynamic>(self::I|_#new#tearOff::T it) → self::I<self::I|_#new#tearOff::T> /* = self::I|_#new#tearOff::T */
   return self::I|<self::I|_#new#tearOff::T>(it);
-static inline-class-member method Ja|<T extends core::Object = dynamic>(dynamic it) → self::Ja<self::Ja|::T> /* = self::Ja|::T */
+static inline-class-member method Ja|<T extends core::Object = dynamic>(self::I<self::Ja|::T> /* = self::Ja|::T */ it) → self::Ja<self::Ja|::T> /* = self::Ja|::T */
   ;
-static inline-class-member method Ja|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Ja<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */
+static inline-class-member method Ja|_#new#tearOff<T extends core::Object = dynamic>(self::I<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */ it) → self::Ja<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */
   return self::Ja|<self::Ja|_#new#tearOff::T>(it);
-static inline-class-member method Jc|<T extends core::Object = dynamic>(dynamic it) → self::Jc<self::Jc|::T> /* = self::Jc|::T? */
+static inline-class-member method Jc|<T extends core::Object = dynamic>(self::I<self::Jc|::T>? /* = self::Jc|::T? */ it) → self::Jc<self::Jc|::T> /* = self::Jc|::T? */
   ;
-static inline-class-member method Jc|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Jc<self::Jc|_#new#tearOff::T> /* = self::Jc|_#new#tearOff::T? */
+static inline-class-member method Jc|_#new#tearOff<T extends core::Object = dynamic>(self::I<self::Jc|_#new#tearOff::T>? /* = self::Jc|_#new#tearOff::T? */ it) → self::Jc<self::Jc|_#new#tearOff::T> /* = self::Jc|_#new#tearOff::T? */
   return self::Jc|<self::Jc|_#new#tearOff::T>(it);
-static inline-class-member method K|<T extends core::Object = dynamic>(dynamic it) → self::K<self::K|::T> /* = self::K|::T? */
+static inline-class-member method K|<T extends core::Object = dynamic>(self::K|::T? it) → self::K<self::K|::T> /* = self::K|::T? */
   ;
-static inline-class-member method K|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::K<self::K|_#new#tearOff::T> /* = self::K|_#new#tearOff::T? */
+static inline-class-member method K|_#new#tearOff<T extends core::Object = dynamic>(self::K|_#new#tearOff::T? it) → self::K<self::K|_#new#tearOff::T> /* = self::K|_#new#tearOff::T? */
   return self::K|<self::K|_#new#tearOff::T>(it);
-static inline-class-member method La|<T extends core::Object = dynamic>(dynamic it) → self::La<self::La|::T> /* = self::La|::T? */
+static inline-class-member method La|<T extends core::Object = dynamic>(self::K<self::La|::T> /* = self::La|::T? */ it) → self::La<self::La|::T> /* = self::La|::T? */
   ;
-static inline-class-member method La|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::La<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */
+static inline-class-member method La|_#new#tearOff<T extends core::Object = dynamic>(self::K<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */ it) → self::La<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */
   return self::La|<self::La|_#new#tearOff::T>(it);
-static inline-class-member method Lc|<T extends core::Object = dynamic>(dynamic it) → self::Lc<self::Lc|::T> /* = self::Lc|::T? */
+static inline-class-member method Lc|<T extends core::Object = dynamic>(self::K<self::Lc|::T>? /* = self::Lc|::T? */ it) → self::Lc<self::Lc|::T> /* = self::Lc|::T? */
   ;
-static inline-class-member method Lc|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Lc<self::Lc|_#new#tearOff::T> /* = self::Lc|_#new#tearOff::T? */
+static inline-class-member method Lc|_#new#tearOff<T extends core::Object = dynamic>(self::K<self::Lc|_#new#tearOff::T>? /* = self::Lc|_#new#tearOff::T? */ it) → self::Lc<self::Lc|_#new#tearOff::T> /* = self::Lc|_#new#tearOff::T? */
   return self::Lc|<self::Lc|_#new#tearOff::T>(it);
 static method testA(Never n) → dynamic
   ;
diff --git a/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.transformed.expect
index 2224093..aaaed2e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/representation_type.dart.weak.transformed.expect
@@ -83,125 +83,125 @@
   constructor • = self::Lc|;
   tearoff • = self::Lc|_#new#tearOff;
 }
-static inline-class-member method A|(dynamic it) → self::A /* = core::int */ {
+static inline-class-member method A|(core::int it) → self::A /* = core::int */ {
   lowered final self::A /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff(dynamic it) → self::A /* = core::int */
+static inline-class-member method A|_#new#tearOff(core::int it) → self::A /* = core::int */
   return self::A|(it);
-static inline-class-member method Ba|(dynamic it) → self::Ba /* = core::int */ {
+static inline-class-member method Ba|(self::A /* = core::int */ it) → self::Ba /* = core::int */ {
   lowered final self::Ba /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method Ba|_#new#tearOff(dynamic it) → self::Ba /* = core::int */
+static inline-class-member method Ba|_#new#tearOff(self::A /* = core::int */ it) → self::Ba /* = core::int */
   return self::Ba|(it);
-static inline-class-member method Bb|(dynamic it) → self::Bb /* = core::int? */ {
+static inline-class-member method Bb|(self::A? /* = core::int? */ it) → self::Bb /* = core::int? */ {
   lowered final self::Bb /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method Bb|_#new#tearOff(dynamic it) → self::Bb /* = core::int? */
+static inline-class-member method Bb|_#new#tearOff(self::A? /* = core::int? */ it) → self::Bb /* = core::int? */
   return self::Bb|(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = self::C|::T% */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(self::C|::T% it) → self::C<self::C|::T%> /* = self::C|::T% */ {
   lowered final self::C<self::C|::T%> /* = self::C|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = self::C|_#new#tearOff::T% */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(self::C|_#new#tearOff::T% it) → self::C<self::C|_#new#tearOff::T%> /* = self::C|_#new#tearOff::T% */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method Da|<T extends core::Object? = dynamic>(dynamic it) → self::Da<self::Da|::T%> /* = self::Da|::T% */ {
+static inline-class-member method Da|<T extends core::Object? = dynamic>(self::C<self::Da|::T%> /* = self::Da|::T% */ it) → self::Da<self::Da|::T%> /* = self::Da|::T% */ {
   lowered final self::Da<self::Da|::T%> /* = self::Da|::T% */ #this = it;
   return #this;
 }
-static inline-class-member method Da|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Da<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */
+static inline-class-member method Da|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */ it) → self::Da<self::Da|_#new#tearOff::T%> /* = self::Da|_#new#tearOff::T% */
   return self::Da|<self::Da|_#new#tearOff::T%>(it);
-static inline-class-member method Db|<T extends core::Object? = dynamic>(dynamic it) → self::Db<self::Db|::T%> /* = self::Db|::T? */ {
+static inline-class-member method Db|<T extends core::Object? = dynamic>(self::C<self::Db|::T?> /* = self::Db|::T? */ it) → self::Db<self::Db|::T%> /* = self::Db|::T? */ {
   lowered final self::Db<self::Db|::T%> /* = self::Db|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Db|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Db<self::Db|_#new#tearOff::T%> /* = self::Db|_#new#tearOff::T? */
+static inline-class-member method Db|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Db|_#new#tearOff::T?> /* = self::Db|_#new#tearOff::T? */ it) → self::Db<self::Db|_#new#tearOff::T%> /* = self::Db|_#new#tearOff::T? */
   return self::Db|<self::Db|_#new#tearOff::T%>(it);
-static inline-class-member method Dc|<T extends core::Object? = dynamic>(dynamic it) → self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ {
+static inline-class-member method Dc|<T extends core::Object? = dynamic>(self::C<self::Dc|::T%>? /* = self::Dc|::T? */ it) → self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ {
   lowered final self::Dc<self::Dc|::T%> /* = self::Dc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Dc|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Dc<self::Dc|_#new#tearOff::T%> /* = self::Dc|_#new#tearOff::T? */
+static inline-class-member method Dc|_#new#tearOff<T extends core::Object? = dynamic>(self::C<self::Dc|_#new#tearOff::T%>? /* = self::Dc|_#new#tearOff::T? */ it) → self::Dc<self::Dc|_#new#tearOff::T%> /* = self::Dc|_#new#tearOff::T? */
   return self::Dc|<self::Dc|_#new#tearOff::T%>(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int? */ {
+static inline-class-member method E|(core::int? it) → self::E /* = core::int? */ {
   lowered final self::E /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int? */
+static inline-class-member method E|_#new#tearOff(core::int? it) → self::E /* = core::int? */
   return self::E|(it);
-static inline-class-member method Fa|(dynamic it) → self::Fa /* = core::int? */ {
+static inline-class-member method Fa|(self::E /* = core::int? */ it) → self::Fa /* = core::int? */ {
   lowered final self::Fa /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method Fa|_#new#tearOff(dynamic it) → self::Fa /* = core::int? */
+static inline-class-member method Fa|_#new#tearOff(self::E /* = core::int? */ it) → self::Fa /* = core::int? */
   return self::Fa|(it);
-static inline-class-member method Fb|_#new#tearOff(dynamic it) → self::Fb /* = core::int? */
+static inline-class-member method Fb|_#new#tearOff(self::E? /* = core::int? */ it) → self::Fb /* = core::int? */
   return self::Fb|(it);
-static inline-class-member method Fb|(dynamic it) → self::Fb /* = core::int? */ {
+static inline-class-member method Fb|(self::E? /* = core::int? */ it) → self::Fb /* = core::int? */ {
   lowered final self::Fb /* = core::int? */ #this = it;
   return #this;
 }
-static inline-class-member method G|<T extends core::Object? = dynamic>(dynamic it) → self::G<self::G|::T%> /* = self::G|::T? */ {
+static inline-class-member method G|<T extends core::Object? = dynamic>(self::G|::T? it) → self::G<self::G|::T%> /* = self::G|::T? */ {
   lowered final self::G<self::G|::T%> /* = self::G|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T? */
+static inline-class-member method G|_#new#tearOff<T extends core::Object? = dynamic>(self::G|_#new#tearOff::T? it) → self::G<self::G|_#new#tearOff::T%> /* = self::G|_#new#tearOff::T? */
   return self::G|<self::G|_#new#tearOff::T%>(it);
-static inline-class-member method Ha|<T extends core::Object? = dynamic>(dynamic it) → self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ {
+static inline-class-member method Ha|<T extends core::Object? = dynamic>(self::G<self::Ha|::T%> /* = self::Ha|::T? */ it) → self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ {
   lowered final self::Ha<self::Ha|::T%> /* = self::Ha|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Ha|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Ha<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */
+static inline-class-member method Ha|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */ it) → self::Ha<self::Ha|_#new#tearOff::T%> /* = self::Ha|_#new#tearOff::T? */
   return self::Ha|<self::Ha|_#new#tearOff::T%>(it);
-static inline-class-member method Hb|<T extends core::Object? = dynamic>(dynamic it) → self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ {
+static inline-class-member method Hb|<T extends core::Object? = dynamic>(self::G<self::Hb|::T?> /* = self::Hb|::T? */ it) → self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ {
   lowered final self::Hb<self::Hb|::T%> /* = self::Hb|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Hb|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Hb<self::Hb|_#new#tearOff::T%> /* = self::Hb|_#new#tearOff::T? */
+static inline-class-member method Hb|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Hb|_#new#tearOff::T?> /* = self::Hb|_#new#tearOff::T? */ it) → self::Hb<self::Hb|_#new#tearOff::T%> /* = self::Hb|_#new#tearOff::T? */
   return self::Hb|<self::Hb|_#new#tearOff::T%>(it);
-static inline-class-member method Hc|<T extends core::Object? = dynamic>(dynamic it) → self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ {
+static inline-class-member method Hc|<T extends core::Object? = dynamic>(self::G<self::Hc|::T%>? /* = self::Hc|::T? */ it) → self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ {
   lowered final self::Hc<self::Hc|::T%> /* = self::Hc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Hc|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::Hc<self::Hc|_#new#tearOff::T%> /* = self::Hc|_#new#tearOff::T? */
+static inline-class-member method Hc|_#new#tearOff<T extends core::Object? = dynamic>(self::G<self::Hc|_#new#tearOff::T%>? /* = self::Hc|_#new#tearOff::T? */ it) → self::Hc<self::Hc|_#new#tearOff::T%> /* = self::Hc|_#new#tearOff::T? */
   return self::Hc|<self::Hc|_#new#tearOff::T%>(it);
-static inline-class-member method I|<T extends core::Object = dynamic>(dynamic it) → self::I<self::I|::T> /* = self::I|::T */ {
+static inline-class-member method I|<T extends core::Object = dynamic>(self::I|::T it) → self::I<self::I|::T> /* = self::I|::T */ {
   lowered final self::I<self::I|::T> /* = self::I|::T */ #this = it;
   return #this;
 }
-static inline-class-member method I|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::I<self::I|_#new#tearOff::T> /* = self::I|_#new#tearOff::T */
+static inline-class-member method I|_#new#tearOff<T extends core::Object = dynamic>(self::I|_#new#tearOff::T it) → self::I<self::I|_#new#tearOff::T> /* = self::I|_#new#tearOff::T */
   return self::I|<self::I|_#new#tearOff::T>(it);
-static inline-class-member method Ja|<T extends core::Object = dynamic>(dynamic it) → self::Ja<self::Ja|::T> /* = self::Ja|::T */ {
+static inline-class-member method Ja|<T extends core::Object = dynamic>(self::I<self::Ja|::T> /* = self::Ja|::T */ it) → self::Ja<self::Ja|::T> /* = self::Ja|::T */ {
   lowered final self::Ja<self::Ja|::T> /* = self::Ja|::T */ #this = it;
   return #this;
 }
-static inline-class-member method Ja|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Ja<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */
+static inline-class-member method Ja|_#new#tearOff<T extends core::Object = dynamic>(self::I<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */ it) → self::Ja<self::Ja|_#new#tearOff::T> /* = self::Ja|_#new#tearOff::T */
   return self::Ja|<self::Ja|_#new#tearOff::T>(it);
-static inline-class-member method Jc|<T extends core::Object = dynamic>(dynamic it) → self::Jc<self::Jc|::T> /* = self::Jc|::T? */ {
+static inline-class-member method Jc|<T extends core::Object = dynamic>(self::I<self::Jc|::T>? /* = self::Jc|::T? */ it) → self::Jc<self::Jc|::T> /* = self::Jc|::T? */ {
   lowered final self::Jc<self::Jc|::T> /* = self::Jc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Jc|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Jc<self::Jc|_#new#tearOff::T> /* = self::Jc|_#new#tearOff::T? */
+static inline-class-member method Jc|_#new#tearOff<T extends core::Object = dynamic>(self::I<self::Jc|_#new#tearOff::T>? /* = self::Jc|_#new#tearOff::T? */ it) → self::Jc<self::Jc|_#new#tearOff::T> /* = self::Jc|_#new#tearOff::T? */
   return self::Jc|<self::Jc|_#new#tearOff::T>(it);
-static inline-class-member method K|<T extends core::Object = dynamic>(dynamic it) → self::K<self::K|::T> /* = self::K|::T? */ {
+static inline-class-member method K|<T extends core::Object = dynamic>(self::K|::T? it) → self::K<self::K|::T> /* = self::K|::T? */ {
   lowered final self::K<self::K|::T> /* = self::K|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method K|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::K<self::K|_#new#tearOff::T> /* = self::K|_#new#tearOff::T? */
+static inline-class-member method K|_#new#tearOff<T extends core::Object = dynamic>(self::K|_#new#tearOff::T? it) → self::K<self::K|_#new#tearOff::T> /* = self::K|_#new#tearOff::T? */
   return self::K|<self::K|_#new#tearOff::T>(it);
-static inline-class-member method La|<T extends core::Object = dynamic>(dynamic it) → self::La<self::La|::T> /* = self::La|::T? */ {
+static inline-class-member method La|<T extends core::Object = dynamic>(self::K<self::La|::T> /* = self::La|::T? */ it) → self::La<self::La|::T> /* = self::La|::T? */ {
   lowered final self::La<self::La|::T> /* = self::La|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method La|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::La<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */
+static inline-class-member method La|_#new#tearOff<T extends core::Object = dynamic>(self::K<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */ it) → self::La<self::La|_#new#tearOff::T> /* = self::La|_#new#tearOff::T? */
   return self::La|<self::La|_#new#tearOff::T>(it);
-static inline-class-member method Lc|<T extends core::Object = dynamic>(dynamic it) → self::Lc<self::Lc|::T> /* = self::Lc|::T? */ {
+static inline-class-member method Lc|<T extends core::Object = dynamic>(self::K<self::Lc|::T>? /* = self::Lc|::T? */ it) → self::Lc<self::Lc|::T> /* = self::Lc|::T? */ {
   lowered final self::Lc<self::Lc|::T> /* = self::Lc|::T? */ #this = it;
   return #this;
 }
-static inline-class-member method Lc|_#new#tearOff<T extends core::Object = dynamic>(dynamic it) → self::Lc<self::Lc|_#new#tearOff::T> /* = self::Lc|_#new#tearOff::T? */
+static inline-class-member method Lc|_#new#tearOff<T extends core::Object = dynamic>(self::K<self::Lc|_#new#tearOff::T>? /* = self::Lc|_#new#tearOff::T? */ it) → self::Lc<self::Lc|_#new#tearOff::T> /* = self::Lc|_#new#tearOff::T? */
   return self::Lc|<self::Lc|_#new#tearOff::T>(it);
 static method testA(Never n) → dynamic {
   self::A /* = core::int */ a1 = let final Never #t1 = n in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
diff --git a/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.strong.expect
index 12b93d7..5c4ee4a 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.strong.expect
@@ -33,33 +33,33 @@
   constructor • = self::E|;
   tearoff • = self::E|_#new#tearOff;
 }
-static inline-class-member method A|<T extends core::Object? = dynamic>(dynamic it) → self::A<self::A|::T%> /* = core::int */ {
+static inline-class-member method A|<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|::T%> /* = core::int */ {
   lowered final self::A<self::A|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::A<self::A|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method A|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|_#new#tearOff::T%> /* = core::int */
   return self::A|<self::A|_#new#tearOff::T%>(it);
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = core::int */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|::T%> /* = core::int */ {
   lowered final self::B<self::B|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|_#new#tearOff::T%> /* = core::int */
   return self::B|<self::B|_#new#tearOff::T%>(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = core::int */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|::T%> /* = core::int */ {
   lowered final self::C<self::C|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|_#new#tearOff::T%> /* = core::int */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method D|(dynamic it) → self::D /* = core::int */ {
+static inline-class-member method D|(core::int it) → self::D /* = core::int */ {
   lowered final self::D /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|_#new#tearOff(core::int it) → self::D /* = core::int */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int */ {
+static inline-class-member method E|(core::int it) → self::E /* = core::int */ {
   lowered final self::E /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|_#new#tearOff(core::int it) → self::E /* = core::int */
   return self::E|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.strong.transformed.expect
index 12b93d7..5c4ee4a 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.strong.transformed.expect
@@ -33,33 +33,33 @@
   constructor • = self::E|;
   tearoff • = self::E|_#new#tearOff;
 }
-static inline-class-member method A|<T extends core::Object? = dynamic>(dynamic it) → self::A<self::A|::T%> /* = core::int */ {
+static inline-class-member method A|<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|::T%> /* = core::int */ {
   lowered final self::A<self::A|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::A<self::A|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method A|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|_#new#tearOff::T%> /* = core::int */
   return self::A|<self::A|_#new#tearOff::T%>(it);
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = core::int */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|::T%> /* = core::int */ {
   lowered final self::B<self::B|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|_#new#tearOff::T%> /* = core::int */
   return self::B|<self::B|_#new#tearOff::T%>(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = core::int */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|::T%> /* = core::int */ {
   lowered final self::C<self::C|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|_#new#tearOff::T%> /* = core::int */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method D|(dynamic it) → self::D /* = core::int */ {
+static inline-class-member method D|(core::int it) → self::D /* = core::int */ {
   lowered final self::D /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|_#new#tearOff(core::int it) → self::D /* = core::int */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int */ {
+static inline-class-member method E|(core::int it) → self::E /* = core::int */ {
   lowered final self::E /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|_#new#tearOff(core::int it) → self::E /* = core::int */
   return self::E|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.expect
index 12b93d7..5c4ee4a 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.expect
@@ -33,33 +33,33 @@
   constructor • = self::E|;
   tearoff • = self::E|_#new#tearOff;
 }
-static inline-class-member method A|<T extends core::Object? = dynamic>(dynamic it) → self::A<self::A|::T%> /* = core::int */ {
+static inline-class-member method A|<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|::T%> /* = core::int */ {
   lowered final self::A<self::A|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::A<self::A|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method A|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|_#new#tearOff::T%> /* = core::int */
   return self::A|<self::A|_#new#tearOff::T%>(it);
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = core::int */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|::T%> /* = core::int */ {
   lowered final self::B<self::B|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|_#new#tearOff::T%> /* = core::int */
   return self::B|<self::B|_#new#tearOff::T%>(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = core::int */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|::T%> /* = core::int */ {
   lowered final self::C<self::C|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|_#new#tearOff::T%> /* = core::int */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method D|(dynamic it) → self::D /* = core::int */ {
+static inline-class-member method D|(core::int it) → self::D /* = core::int */ {
   lowered final self::D /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|_#new#tearOff(core::int it) → self::D /* = core::int */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int */ {
+static inline-class-member method E|(core::int it) → self::E /* = core::int */ {
   lowered final self::E /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|_#new#tearOff(core::int it) → self::E /* = core::int */
   return self::E|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.modular.expect
index 12b93d7..5c4ee4a 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.modular.expect
@@ -33,33 +33,33 @@
   constructor • = self::E|;
   tearoff • = self::E|_#new#tearOff;
 }
-static inline-class-member method A|<T extends core::Object? = dynamic>(dynamic it) → self::A<self::A|::T%> /* = core::int */ {
+static inline-class-member method A|<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|::T%> /* = core::int */ {
   lowered final self::A<self::A|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::A<self::A|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method A|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|_#new#tearOff::T%> /* = core::int */
   return self::A|<self::A|_#new#tearOff::T%>(it);
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = core::int */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|::T%> /* = core::int */ {
   lowered final self::B<self::B|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|_#new#tearOff::T%> /* = core::int */
   return self::B|<self::B|_#new#tearOff::T%>(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = core::int */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|::T%> /* = core::int */ {
   lowered final self::C<self::C|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|_#new#tearOff::T%> /* = core::int */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method D|(dynamic it) → self::D /* = core::int */ {
+static inline-class-member method D|(core::int it) → self::D /* = core::int */ {
   lowered final self::D /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|_#new#tearOff(core::int it) → self::D /* = core::int */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int */ {
+static inline-class-member method E|(core::int it) → self::E /* = core::int */ {
   lowered final self::E /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|_#new#tearOff(core::int it) → self::E /* = core::int */
   return self::E|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.outline.expect
index 2f4656b..27cbd4f 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.outline.expect
@@ -33,23 +33,23 @@
   constructor • = self::E|;
   tearoff • = self::E|_#new#tearOff;
 }
-static inline-class-member method A|<T extends core::Object? = dynamic>(dynamic it) → self::A<self::A|::T%> /* = core::int */
+static inline-class-member method A|<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|::T%> /* = core::int */
   ;
-static inline-class-member method A|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::A<self::A|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method A|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|_#new#tearOff::T%> /* = core::int */
   return self::A|<self::A|_#new#tearOff::T%>(it);
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = core::int */
+static inline-class-member method B|<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|::T%> /* = core::int */
   ;
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|_#new#tearOff::T%> /* = core::int */
   return self::B|<self::B|_#new#tearOff::T%>(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = core::int */
+static inline-class-member method C|<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|::T%> /* = core::int */
   ;
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|_#new#tearOff::T%> /* = core::int */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method D|(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|(core::int it) → self::D /* = core::int */
   ;
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|_#new#tearOff(core::int it) → self::D /* = core::int */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|(core::int it) → self::E /* = core::int */
   ;
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|_#new#tearOff(core::int it) → self::E /* = core::int */
   return self::E|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.transformed.expect
index 12b93d7..5c4ee4a 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/super_extension_type_conflict.dart.weak.transformed.expect
@@ -33,33 +33,33 @@
   constructor • = self::E|;
   tearoff • = self::E|_#new#tearOff;
 }
-static inline-class-member method A|<T extends core::Object? = dynamic>(dynamic it) → self::A<self::A|::T%> /* = core::int */ {
+static inline-class-member method A|<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|::T%> /* = core::int */ {
   lowered final self::A<self::A|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method A|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::A<self::A|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method A|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::A<self::A|_#new#tearOff::T%> /* = core::int */
   return self::A|<self::A|_#new#tearOff::T%>(it);
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = core::int */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|::T%> /* = core::int */ {
   lowered final self::B<self::B|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::B<self::B|_#new#tearOff::T%> /* = core::int */
   return self::B|<self::B|_#new#tearOff::T%>(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = core::int */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|::T%> /* = core::int */ {
   lowered final self::C<self::C|::T%> /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = core::int */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(core::int it) → self::C<self::C|_#new#tearOff::T%> /* = core::int */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method D|(dynamic it) → self::D /* = core::int */ {
+static inline-class-member method D|(core::int it) → self::D /* = core::int */ {
   lowered final self::D /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = core::int */
+static inline-class-member method D|_#new#tearOff(core::int it) → self::D /* = core::int */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = core::int */ {
+static inline-class-member method E|(core::int it) → self::E /* = core::int */ {
   lowered final self::E /* = core::int */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = core::int */
+static inline-class-member method E|_#new#tearOff(core::int it) → self::E /* = core::int */
   return self::E|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.strong.expect
index aab7d02..74d138e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.strong.expect
@@ -34,27 +34,27 @@
   constructor • = self::E|;
   tearoff • = self::E|_#new#tearOff;
 }
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = self::A<self::B|::T%> */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(self::A<self::B|::T%> it) → self::B<self::B|::T%> /* = self::A<self::B|::T%> */ {
   lowered final self::B<self::B|::T%> /* = self::A<self::B|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = self::A<self::B|_#new#tearOff::T%> */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::B|_#new#tearOff::T%> it) → self::B<self::B|_#new#tearOff::T%> /* = self::A<self::B|_#new#tearOff::T%> */
   return self::B|<self::B|_#new#tearOff::T%>(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = self::A<self::C|::T%> */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(self::A<self::C|::T%> it) → self::C<self::C|::T%> /* = self::A<self::C|::T%> */ {
   lowered final self::C<self::C|::T%> /* = self::A<self::C|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = self::A<self::C|_#new#tearOff::T%> */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::C|_#new#tearOff::T%> it) → self::C<self::C|_#new#tearOff::T%> /* = self::A<self::C|_#new#tearOff::T%> */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method D|(dynamic it) → self::D /* = self::A<Never> */ {
+static inline-class-member method D|(self::A<Never> it) → self::D /* = self::A<Never> */ {
   lowered final self::D /* = self::A<Never> */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = self::A<Never> */
+static inline-class-member method D|_#new#tearOff(self::A<Never> it) → self::D /* = self::A<Never> */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = self::A<Never> */ {
+static inline-class-member method E|(self::A<Never> it) → self::E /* = self::A<Never> */ {
   lowered final self::E /* = self::A<Never> */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::A<Never> */
+static inline-class-member method E|_#new#tearOff(self::A<Never> it) → self::E /* = self::A<Never> */
   return self::E|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.strong.transformed.expect
index aab7d02..74d138e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.strong.transformed.expect
@@ -34,27 +34,27 @@
   constructor • = self::E|;
   tearoff • = self::E|_#new#tearOff;
 }
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = self::A<self::B|::T%> */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(self::A<self::B|::T%> it) → self::B<self::B|::T%> /* = self::A<self::B|::T%> */ {
   lowered final self::B<self::B|::T%> /* = self::A<self::B|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = self::A<self::B|_#new#tearOff::T%> */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::B|_#new#tearOff::T%> it) → self::B<self::B|_#new#tearOff::T%> /* = self::A<self::B|_#new#tearOff::T%> */
   return self::B|<self::B|_#new#tearOff::T%>(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = self::A<self::C|::T%> */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(self::A<self::C|::T%> it) → self::C<self::C|::T%> /* = self::A<self::C|::T%> */ {
   lowered final self::C<self::C|::T%> /* = self::A<self::C|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = self::A<self::C|_#new#tearOff::T%> */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::C|_#new#tearOff::T%> it) → self::C<self::C|_#new#tearOff::T%> /* = self::A<self::C|_#new#tearOff::T%> */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method D|(dynamic it) → self::D /* = self::A<Never> */ {
+static inline-class-member method D|(self::A<Never> it) → self::D /* = self::A<Never> */ {
   lowered final self::D /* = self::A<Never> */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = self::A<Never> */
+static inline-class-member method D|_#new#tearOff(self::A<Never> it) → self::D /* = self::A<Never> */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = self::A<Never> */ {
+static inline-class-member method E|(self::A<Never> it) → self::E /* = self::A<Never> */ {
   lowered final self::E /* = self::A<Never> */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::A<Never> */
+static inline-class-member method E|_#new#tearOff(self::A<Never> it) → self::E /* = self::A<Never> */
   return self::E|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.expect
index aab7d02..74d138e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.expect
@@ -34,27 +34,27 @@
   constructor • = self::E|;
   tearoff • = self::E|_#new#tearOff;
 }
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = self::A<self::B|::T%> */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(self::A<self::B|::T%> it) → self::B<self::B|::T%> /* = self::A<self::B|::T%> */ {
   lowered final self::B<self::B|::T%> /* = self::A<self::B|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = self::A<self::B|_#new#tearOff::T%> */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::B|_#new#tearOff::T%> it) → self::B<self::B|_#new#tearOff::T%> /* = self::A<self::B|_#new#tearOff::T%> */
   return self::B|<self::B|_#new#tearOff::T%>(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = self::A<self::C|::T%> */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(self::A<self::C|::T%> it) → self::C<self::C|::T%> /* = self::A<self::C|::T%> */ {
   lowered final self::C<self::C|::T%> /* = self::A<self::C|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = self::A<self::C|_#new#tearOff::T%> */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::C|_#new#tearOff::T%> it) → self::C<self::C|_#new#tearOff::T%> /* = self::A<self::C|_#new#tearOff::T%> */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method D|(dynamic it) → self::D /* = self::A<Never> */ {
+static inline-class-member method D|(self::A<Never> it) → self::D /* = self::A<Never> */ {
   lowered final self::D /* = self::A<Never> */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = self::A<Never> */
+static inline-class-member method D|_#new#tearOff(self::A<Never> it) → self::D /* = self::A<Never> */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = self::A<Never> */ {
+static inline-class-member method E|(self::A<Never> it) → self::E /* = self::A<Never> */ {
   lowered final self::E /* = self::A<Never> */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::A<Never> */
+static inline-class-member method E|_#new#tearOff(self::A<Never> it) → self::E /* = self::A<Never> */
   return self::E|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.modular.expect
index aab7d02..74d138e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.modular.expect
@@ -34,27 +34,27 @@
   constructor • = self::E|;
   tearoff • = self::E|_#new#tearOff;
 }
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = self::A<self::B|::T%> */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(self::A<self::B|::T%> it) → self::B<self::B|::T%> /* = self::A<self::B|::T%> */ {
   lowered final self::B<self::B|::T%> /* = self::A<self::B|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = self::A<self::B|_#new#tearOff::T%> */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::B|_#new#tearOff::T%> it) → self::B<self::B|_#new#tearOff::T%> /* = self::A<self::B|_#new#tearOff::T%> */
   return self::B|<self::B|_#new#tearOff::T%>(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = self::A<self::C|::T%> */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(self::A<self::C|::T%> it) → self::C<self::C|::T%> /* = self::A<self::C|::T%> */ {
   lowered final self::C<self::C|::T%> /* = self::A<self::C|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = self::A<self::C|_#new#tearOff::T%> */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::C|_#new#tearOff::T%> it) → self::C<self::C|_#new#tearOff::T%> /* = self::A<self::C|_#new#tearOff::T%> */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method D|(dynamic it) → self::D /* = self::A<Never> */ {
+static inline-class-member method D|(self::A<Never> it) → self::D /* = self::A<Never> */ {
   lowered final self::D /* = self::A<Never> */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = self::A<Never> */
+static inline-class-member method D|_#new#tearOff(self::A<Never> it) → self::D /* = self::A<Never> */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = self::A<Never> */ {
+static inline-class-member method E|(self::A<Never> it) → self::E /* = self::A<Never> */ {
   lowered final self::E /* = self::A<Never> */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::A<Never> */
+static inline-class-member method E|_#new#tearOff(self::A<Never> it) → self::E /* = self::A<Never> */
   return self::E|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.outline.expect
index 01b337d..dc05936 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.outline.expect
@@ -33,19 +33,19 @@
   constructor • = self::E|;
   tearoff • = self::E|_#new#tearOff;
 }
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = self::A<self::B|::T%> */
+static inline-class-member method B|<T extends core::Object? = dynamic>(self::A<self::B|::T%> it) → self::B<self::B|::T%> /* = self::A<self::B|::T%> */
   ;
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = self::A<self::B|_#new#tearOff::T%> */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::B|_#new#tearOff::T%> it) → self::B<self::B|_#new#tearOff::T%> /* = self::A<self::B|_#new#tearOff::T%> */
   return self::B|<self::B|_#new#tearOff::T%>(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = self::A<self::C|::T%> */
+static inline-class-member method C|<T extends core::Object? = dynamic>(self::A<self::C|::T%> it) → self::C<self::C|::T%> /* = self::A<self::C|::T%> */
   ;
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = self::A<self::C|_#new#tearOff::T%> */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::C|_#new#tearOff::T%> it) → self::C<self::C|_#new#tearOff::T%> /* = self::A<self::C|_#new#tearOff::T%> */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method D|(dynamic it) → self::D /* = self::A<Never> */
+static inline-class-member method D|(self::A<Never> it) → self::D /* = self::A<Never> */
   ;
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = self::A<Never> */
+static inline-class-member method D|_#new#tearOff(self::A<Never> it) → self::D /* = self::A<Never> */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = self::A<Never> */
+static inline-class-member method E|(self::A<Never> it) → self::E /* = self::A<Never> */
   ;
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::A<Never> */
+static inline-class-member method E|_#new#tearOff(self::A<Never> it) → self::E /* = self::A<Never> */
   return self::E|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.transformed.expect
index aab7d02..74d138e 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/supertype_conflict.dart.weak.transformed.expect
@@ -34,27 +34,27 @@
   constructor • = self::E|;
   tearoff • = self::E|_#new#tearOff;
 }
-static inline-class-member method B|<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|::T%> /* = self::A<self::B|::T%> */ {
+static inline-class-member method B|<T extends core::Object? = dynamic>(self::A<self::B|::T%> it) → self::B<self::B|::T%> /* = self::A<self::B|::T%> */ {
   lowered final self::B<self::B|::T%> /* = self::A<self::B|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::B<self::B|_#new#tearOff::T%> /* = self::A<self::B|_#new#tearOff::T%> */
+static inline-class-member method B|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::B|_#new#tearOff::T%> it) → self::B<self::B|_#new#tearOff::T%> /* = self::A<self::B|_#new#tearOff::T%> */
   return self::B|<self::B|_#new#tearOff::T%>(it);
-static inline-class-member method C|<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|::T%> /* = self::A<self::C|::T%> */ {
+static inline-class-member method C|<T extends core::Object? = dynamic>(self::A<self::C|::T%> it) → self::C<self::C|::T%> /* = self::A<self::C|::T%> */ {
   lowered final self::C<self::C|::T%> /* = self::A<self::C|::T%> */ #this = it;
   return #this;
 }
-static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(dynamic it) → self::C<self::C|_#new#tearOff::T%> /* = self::A<self::C|_#new#tearOff::T%> */
+static inline-class-member method C|_#new#tearOff<T extends core::Object? = dynamic>(self::A<self::C|_#new#tearOff::T%> it) → self::C<self::C|_#new#tearOff::T%> /* = self::A<self::C|_#new#tearOff::T%> */
   return self::C|<self::C|_#new#tearOff::T%>(it);
-static inline-class-member method D|(dynamic it) → self::D /* = self::A<Never> */ {
+static inline-class-member method D|(self::A<Never> it) → self::D /* = self::A<Never> */ {
   lowered final self::D /* = self::A<Never> */ #this = it;
   return #this;
 }
-static inline-class-member method D|_#new#tearOff(dynamic it) → self::D /* = self::A<Never> */
+static inline-class-member method D|_#new#tearOff(self::A<Never> it) → self::D /* = self::A<Never> */
   return self::D|(it);
-static inline-class-member method E|(dynamic it) → self::E /* = self::A<Never> */ {
+static inline-class-member method E|(self::A<Never> it) → self::E /* = self::A<Never> */ {
   lowered final self::E /* = self::A<Never> */ #this = it;
   return #this;
 }
-static inline-class-member method E|_#new#tearOff(dynamic it) → self::E /* = self::A<Never> */
+static inline-class-member method E|_#new#tearOff(self::A<Never> it) → self::E /* = self::A<Never> */
   return self::E|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.strong.expect b/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.strong.expect
index 55bc3e3..c43c7f3 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.strong.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.strong.expect
@@ -16,9 +16,9 @@
   constructor • = self::Extension|;
   tearoff • = self::Extension|_#new#tearOff;
 }
-static inline-class-member method Extension|(dynamic it) → self::Extension /* = invalid-type */ {
+static inline-class-member method Extension|(invalid-type it) → self::Extension /* = invalid-type */ {
   lowered final self::Extension /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method Extension|_#new#tearOff(dynamic it) → self::Extension /* = invalid-type */
+static inline-class-member method Extension|_#new#tearOff(invalid-type it) → self::Extension /* = invalid-type */
   return self::Extension|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.strong.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.strong.transformed.expect
index 55bc3e3..c43c7f3 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.strong.transformed.expect
@@ -16,9 +16,9 @@
   constructor • = self::Extension|;
   tearoff • = self::Extension|_#new#tearOff;
 }
-static inline-class-member method Extension|(dynamic it) → self::Extension /* = invalid-type */ {
+static inline-class-member method Extension|(invalid-type it) → self::Extension /* = invalid-type */ {
   lowered final self::Extension /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method Extension|_#new#tearOff(dynamic it) → self::Extension /* = invalid-type */
+static inline-class-member method Extension|_#new#tearOff(invalid-type it) → self::Extension /* = invalid-type */
   return self::Extension|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.expect b/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.expect
index 55bc3e3..c43c7f3 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.expect
@@ -16,9 +16,9 @@
   constructor • = self::Extension|;
   tearoff • = self::Extension|_#new#tearOff;
 }
-static inline-class-member method Extension|(dynamic it) → self::Extension /* = invalid-type */ {
+static inline-class-member method Extension|(invalid-type it) → self::Extension /* = invalid-type */ {
   lowered final self::Extension /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method Extension|_#new#tearOff(dynamic it) → self::Extension /* = invalid-type */
+static inline-class-member method Extension|_#new#tearOff(invalid-type it) → self::Extension /* = invalid-type */
   return self::Extension|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.modular.expect b/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.modular.expect
index 55bc3e3..c43c7f3 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.modular.expect
@@ -16,9 +16,9 @@
   constructor • = self::Extension|;
   tearoff • = self::Extension|_#new#tearOff;
 }
-static inline-class-member method Extension|(dynamic it) → self::Extension /* = invalid-type */ {
+static inline-class-member method Extension|(invalid-type it) → self::Extension /* = invalid-type */ {
   lowered final self::Extension /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method Extension|_#new#tearOff(dynamic it) → self::Extension /* = invalid-type */
+static inline-class-member method Extension|_#new#tearOff(invalid-type it) → self::Extension /* = invalid-type */
   return self::Extension|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.outline.expect b/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.outline.expect
index 510f4e4..3f287a8 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.outline.expect
@@ -12,7 +12,7 @@
   constructor • = self::Extension|;
   tearoff • = self::Extension|_#new#tearOff;
 }
-static inline-class-member method Extension|(dynamic it) → self::Extension /* = invalid-type */
+static inline-class-member method Extension|(invalid-type it) → self::Extension /* = invalid-type */
   ;
-static inline-class-member method Extension|_#new#tearOff(dynamic it) → self::Extension /* = invalid-type */
+static inline-class-member method Extension|_#new#tearOff(invalid-type it) → self::Extension /* = invalid-type */
   return self::Extension|(it);
diff --git a/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.transformed.expect b/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.transformed.expect
index 55bc3e3..c43c7f3 100644
--- a/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inline_class/extension_types/unresolved_type_extension_type_this.dart.weak.transformed.expect
@@ -16,9 +16,9 @@
   constructor • = self::Extension|;
   tearoff • = self::Extension|_#new#tearOff;
 }
-static inline-class-member method Extension|(dynamic it) → self::Extension /* = invalid-type */ {
+static inline-class-member method Extension|(invalid-type it) → self::Extension /* = invalid-type */ {
   lowered final self::Extension /* = invalid-type */ #this = it;
   return #this;
 }
-static inline-class-member method Extension|_#new#tearOff(dynamic it) → self::Extension /* = invalid-type */
+static inline-class-member method Extension|_#new#tearOff(invalid-type it) → self::Extension /* = invalid-type */
   return self::Extension|(it);