diff --git a/pkg/front_end/testcases/abstract_members.dart.hierarchy.expect b/pkg/front_end/testcases/abstract_members.dart.hierarchy.expect
index 231e9e1..99a7137 100644
--- a/pkg/front_end/testcases/abstract_members.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/abstract_members.dart.hierarchy.expect
@@ -288,7 +288,7 @@
     Object._simpleInstanceOf
     B.bMethod
     Object._instanceOf
-    MyMock1.noSuchMethod
+    MyMock2.MyMock1.noSuchMethod%MyMock2.noSuchMethod
     A.abstractMethod
     Object._identityHashCode
     Object.hashCode
@@ -308,7 +308,7 @@
     Object._simpleInstanceOf
     B.bMethod
     Object._instanceOf
-    MyMock1.noSuchMethod
+    MyMock2.MyMock1.noSuchMethod%MyMock2.noSuchMethod
     A.abstractMethod
     Interface1.interfaceMethod1
     Object._identityHashCode
@@ -338,7 +338,7 @@
     Object._simpleInstanceOf
     B.bMethod
     Object._instanceOf
-    Object.noSuchMethod
+    MyMock3.Object.noSuchMethod%MyMock3.noSuchMethod
     A.abstractMethod
     Object._identityHashCode
     Object.hashCode
@@ -358,7 +358,7 @@
     Object._simpleInstanceOf
     B.bMethod
     Object._instanceOf
-    Object.noSuchMethod
+    MyMock3.Object.noSuchMethod%MyMock3.noSuchMethod
     A.abstractMethod
     Interface1.interfaceMethod1
     Object._identityHashCode
diff --git a/pkg/front_end/testcases/abstract_members.dart.legacy.expect b/pkg/front_end/testcases/abstract_members.dart.legacy.expect
index 5a3c3d0..0322fcb 100644
--- a/pkg/front_end/testcases/abstract_members.dart.legacy.expect
+++ b/pkg/front_end/testcases/abstract_members.dart.legacy.expect
@@ -194,7 +194,7 @@
   synthetic constructor •() → self::MyMock1
     : super self::B::•()
     ;
-  method noSuchMethod(dynamic _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     return null;
   no-such-method-forwarder method interfaceMethod2() → void
     return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod2, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
@@ -217,13 +217,13 @@
   synthetic constructor •() → self::MyMock2
     : super self::MyMock1::•()
     ;
-  abstract method noSuchMethod(dynamic _) → dynamic;
+  abstract method noSuchMethod(core::Invocation _) → dynamic;
 }
 class MyMock3 extends self::B {
   synthetic constructor •() → self::MyMock3
     : super self::B::•()
     ;
-  abstract method noSuchMethod(dynamic _) → dynamic;
+  abstract method noSuchMethod(core::Invocation _) → dynamic;
   no-such-method-forwarder get interfaceMethod1() → dynamic
     return this.{self::MyMock3::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod1, 1, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} dynamic;
   no-such-method-forwarder set property3(dynamic _) → void
diff --git a/pkg/front_end/testcases/abstract_members.dart.legacy.transformed.expect b/pkg/front_end/testcases/abstract_members.dart.legacy.transformed.expect
index 5a3c3d0..0322fcb 100644
--- a/pkg/front_end/testcases/abstract_members.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/abstract_members.dart.legacy.transformed.expect
@@ -194,7 +194,7 @@
   synthetic constructor •() → self::MyMock1
     : super self::B::•()
     ;
-  method noSuchMethod(dynamic _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     return null;
   no-such-method-forwarder method interfaceMethod2() → void
     return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod2, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
@@ -217,13 +217,13 @@
   synthetic constructor •() → self::MyMock2
     : super self::MyMock1::•()
     ;
-  abstract method noSuchMethod(dynamic _) → dynamic;
+  abstract method noSuchMethod(core::Invocation _) → dynamic;
 }
 class MyMock3 extends self::B {
   synthetic constructor •() → self::MyMock3
     : super self::B::•()
     ;
-  abstract method noSuchMethod(dynamic _) → dynamic;
+  abstract method noSuchMethod(core::Invocation _) → dynamic;
   no-such-method-forwarder get interfaceMethod1() → dynamic
     return this.{self::MyMock3::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod1, 1, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} dynamic;
   no-such-method-forwarder set property3(dynamic _) → void
diff --git a/pkg/front_end/testcases/abstract_members.dart.outline.expect b/pkg/front_end/testcases/abstract_members.dart.outline.expect
index ad1e730..c54c9fb 100644
--- a/pkg/front_end/testcases/abstract_members.dart.outline.expect
+++ b/pkg/front_end/testcases/abstract_members.dart.outline.expect
@@ -197,7 +197,7 @@
 class MyMock1 extends self::B {
   synthetic constructor •() → self::MyMock1
     ;
-  method noSuchMethod(dynamic _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     ;
   no-such-method-forwarder method interfaceMethod2() → void
     return this.{self::MyMock1::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod2, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
@@ -219,12 +219,12 @@
 class MyMock2 extends self::MyMock1 {
   synthetic constructor •() → self::MyMock2
     ;
-  abstract method noSuchMethod(dynamic _) → dynamic;
+  abstract method noSuchMethod(core::Invocation _) → dynamic;
 }
 class MyMock3 extends self::B {
   synthetic constructor •() → self::MyMock3
     ;
-  abstract method noSuchMethod(dynamic _) → dynamic;
+  abstract method noSuchMethod(core::Invocation _) → dynamic;
   no-such-method-forwarder get interfaceMethod1() → dynamic
     return this.{self::MyMock3::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod1, 1, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} dynamic;
   no-such-method-forwarder set property3(dynamic _) → void
diff --git a/pkg/front_end/testcases/bad_setter_abstract.dart.legacy.expect b/pkg/front_end/testcases/bad_setter_abstract.dart.legacy.expect
index e84ce6f..f93d1cb 100644
--- a/pkg/front_end/testcases/bad_setter_abstract.dart.legacy.expect
+++ b/pkg/front_end/testcases/bad_setter_abstract.dart.legacy.expect
@@ -47,13 +47,13 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  set a(dynamic #synthetic) → dynamic {
+  set a(dynamic #synthetic) → void {
     invalid-expression "pkg/front_end/testcases/bad_setter_abstract.dart:10:8: Error: A setter should have exactly one formal parameter.
   set a();
        ^";
     ;
   }
-  set d(dynamic #synthetic) → dynamic {
+  set d(dynamic #synthetic) → void {
     invalid-expression "pkg/front_end/testcases/bad_setter_abstract.dart:11:8: Error: A setter should have exactly one formal parameter.
   set d(x, y);
        ^";
@@ -68,13 +68,13 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  set a(dynamic #synthetic) → dynamic {
+  set a(dynamic #synthetic) → void {
     invalid-expression "pkg/front_end/testcases/bad_setter_abstract.dart:15:8: Error: A setter should have exactly one formal parameter.
   set a();
        ^";
     ;
   }
-  set d(dynamic #synthetic) → dynamic {
+  set d(dynamic #synthetic) → void {
     invalid-expression "pkg/front_end/testcases/bad_setter_abstract.dart:16:8: Error: A setter should have exactly one formal parameter.
   set d(x, y);
        ^";
@@ -85,13 +85,13 @@
     }
   }
 }
-static set b(dynamic #synthetic) → dynamic {
+static set b(dynamic #synthetic) → void {
   invalid-expression "pkg/front_end/testcases/bad_setter_abstract.dart:5:6: Error: A setter should have exactly one formal parameter.
 set b();
      ^";
   ;
 }
-static set c(dynamic #synthetic) → dynamic {
+static set c(dynamic #synthetic) → void {
   invalid-expression "pkg/front_end/testcases/bad_setter_abstract.dart:7:6: Error: A setter should have exactly one formal parameter.
 set c(x, y);
      ^";
diff --git a/pkg/front_end/testcases/bad_setter_abstract.dart.legacy.transformed.expect b/pkg/front_end/testcases/bad_setter_abstract.dart.legacy.transformed.expect
index e84ce6f..f93d1cb 100644
--- a/pkg/front_end/testcases/bad_setter_abstract.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/bad_setter_abstract.dart.legacy.transformed.expect
@@ -47,13 +47,13 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  set a(dynamic #synthetic) → dynamic {
+  set a(dynamic #synthetic) → void {
     invalid-expression "pkg/front_end/testcases/bad_setter_abstract.dart:10:8: Error: A setter should have exactly one formal parameter.
   set a();
        ^";
     ;
   }
-  set d(dynamic #synthetic) → dynamic {
+  set d(dynamic #synthetic) → void {
     invalid-expression "pkg/front_end/testcases/bad_setter_abstract.dart:11:8: Error: A setter should have exactly one formal parameter.
   set d(x, y);
        ^";
@@ -68,13 +68,13 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  set a(dynamic #synthetic) → dynamic {
+  set a(dynamic #synthetic) → void {
     invalid-expression "pkg/front_end/testcases/bad_setter_abstract.dart:15:8: Error: A setter should have exactly one formal parameter.
   set a();
        ^";
     ;
   }
-  set d(dynamic #synthetic) → dynamic {
+  set d(dynamic #synthetic) → void {
     invalid-expression "pkg/front_end/testcases/bad_setter_abstract.dart:16:8: Error: A setter should have exactly one formal parameter.
   set d(x, y);
        ^";
@@ -85,13 +85,13 @@
     }
   }
 }
-static set b(dynamic #synthetic) → dynamic {
+static set b(dynamic #synthetic) → void {
   invalid-expression "pkg/front_end/testcases/bad_setter_abstract.dart:5:6: Error: A setter should have exactly one formal parameter.
 set b();
      ^";
   ;
 }
-static set c(dynamic #synthetic) → dynamic {
+static set c(dynamic #synthetic) → void {
   invalid-expression "pkg/front_end/testcases/bad_setter_abstract.dart:7:6: Error: A setter should have exactly one formal parameter.
 set c(x, y);
      ^";
diff --git a/pkg/front_end/testcases/bad_setter_abstract.dart.outline.expect b/pkg/front_end/testcases/bad_setter_abstract.dart.outline.expect
index 68dcc4d..65b27e3 100644
--- a/pkg/front_end/testcases/bad_setter_abstract.dart.outline.expect
+++ b/pkg/front_end/testcases/bad_setter_abstract.dart.outline.expect
@@ -18,22 +18,22 @@
 class A extends core::Object {
   synthetic constructor •() → self::A
     ;
-  set a(dynamic #synthetic) → dynamic
+  set a(dynamic #synthetic) → void
     ;
-  set d(dynamic #synthetic) → dynamic
+  set d(dynamic #synthetic) → void
     ;
 }
 abstract class B extends core::Object {
   synthetic constructor •() → self::B
     ;
-  set a(dynamic #synthetic) → dynamic
+  set a(dynamic #synthetic) → void
     ;
-  set d(dynamic #synthetic) → dynamic
+  set d(dynamic #synthetic) → void
     ;
 }
-static set b(dynamic #synthetic) → dynamic
+static set b(dynamic #synthetic) → void
   ;
-static set c(dynamic #synthetic) → dynamic
+static set c(dynamic #synthetic) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/bug32866.dart.legacy.expect b/pkg/front_end/testcases/bug32866.dart.legacy.expect
index f62f9f6..5cf6726 100644
--- a/pkg/front_end/testcases/bug32866.dart.legacy.expect
+++ b/pkg/front_end/testcases/bug32866.dart.legacy.expect
@@ -9,7 +9,7 @@
   abstract get f() → core::String;
 }
 class A extends core::Object implements self::B {
-  final field dynamic f;
+  final field core::String f;
   constructor •(dynamic f) → self::A
     : self::A::f = f, super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/bug32866.dart.legacy.transformed.expect b/pkg/front_end/testcases/bug32866.dart.legacy.transformed.expect
index f62f9f6..5cf6726 100644
--- a/pkg/front_end/testcases/bug32866.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/bug32866.dart.legacy.transformed.expect
@@ -9,7 +9,7 @@
   abstract get f() → core::String;
 }
 class A extends core::Object implements self::B {
-  final field dynamic f;
+  final field core::String f;
   constructor •(dynamic f) → self::A
     : self::A::f = f, super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/bug32866.dart.outline.expect b/pkg/front_end/testcases/bug32866.dart.outline.expect
index 0b51724..c902755 100644
--- a/pkg/front_end/testcases/bug32866.dart.outline.expect
+++ b/pkg/front_end/testcases/bug32866.dart.outline.expect
@@ -8,7 +8,7 @@
   abstract get f() → core::String;
 }
 class A extends core::Object implements self::B {
-  final field dynamic f;
+  final field core::String f;
   constructor •(dynamic f) → self::A
     ;
 }
diff --git a/pkg/front_end/testcases/bug33206.dart.legacy.expect b/pkg/front_end/testcases/bug33206.dart.legacy.expect
index b0dba95..1d53254 100644
--- a/pkg/front_end/testcases/bug33206.dart.legacy.expect
+++ b/pkg/front_end/testcases/bug33206.dart.legacy.expect
@@ -11,7 +11,7 @@
   constructor •(dynamic x, dynamic y) → self::X
     : self::X::x = x, self::X::y = y, super core::Object::•()
     ;
-  method toString() → dynamic
+  method toString() → core::String
     return "X(${this.{self::X::x}}, ${this.{self::X::y}})";
 }
 class Y extends core::Object {
diff --git a/pkg/front_end/testcases/bug33206.dart.legacy.transformed.expect b/pkg/front_end/testcases/bug33206.dart.legacy.transformed.expect
index 2a26c19..f484e4b 100644
--- a/pkg/front_end/testcases/bug33206.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/bug33206.dart.legacy.transformed.expect
@@ -11,7 +11,7 @@
   constructor •(dynamic x, dynamic y) → self::X
     : self::X::x = x, self::X::y = y, super core::Object::•()
     ;
-  method toString() → dynamic
+  method toString() → core::String
     return "X(${this.{self::X::x}}, ${this.{self::X::y}})";
 }
 class Y extends core::Object {
diff --git a/pkg/front_end/testcases/bug33206.dart.outline.expect b/pkg/front_end/testcases/bug33206.dart.outline.expect
index 95d83e8..3dd6634 100644
--- a/pkg/front_end/testcases/bug33206.dart.outline.expect
+++ b/pkg/front_end/testcases/bug33206.dart.outline.expect
@@ -10,7 +10,7 @@
   final field dynamic y;
   constructor •(dynamic x, dynamic y) → self::X
     ;
-  method toString() → dynamic
+  method toString() → core::String
     ;
 }
 class Y extends core::Object {
diff --git a/pkg/front_end/testcases/covariant_generic.dart.outline.expect b/pkg/front_end/testcases/covariant_generic.dart.outline.expect
index 4b44219..da79e5c 100644
--- a/pkg/front_end/testcases/covariant_generic.dart.outline.expect
+++ b/pkg/front_end/testcases/covariant_generic.dart.outline.expect
@@ -12,7 +12,7 @@
     ;
   method method(generic-covariant-impl self::Foo::T x) → void
     ;
-  set setter(generic-covariant-impl self::Foo::T x) → dynamic
+  set setter(generic-covariant-impl self::Foo::T x) → void
     ;
   method withCallback((self::Foo::T) → void callback) → void
     ;
diff --git a/pkg/front_end/testcases/escape.dart.legacy.expect b/pkg/front_end/testcases/escape.dart.legacy.expect
index 389e93a..ec93320 100644
--- a/pkg/front_end/testcases/escape.dart.legacy.expect
+++ b/pkg/front_end/testcases/escape.dart.legacy.expect
@@ -18,7 +18,7 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  operator ==(dynamic x) → dynamic
+  operator ==(dynamic x) → core::bool
     return false;
 }
 class X extends core::Object implements self::A, self::B {
diff --git a/pkg/front_end/testcases/escape.dart.legacy.transformed.expect b/pkg/front_end/testcases/escape.dart.legacy.transformed.expect
index 389e93a..ec93320 100644
--- a/pkg/front_end/testcases/escape.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/escape.dart.legacy.transformed.expect
@@ -18,7 +18,7 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  operator ==(dynamic x) → dynamic
+  operator ==(dynamic x) → core::bool
     return false;
 }
 class X extends core::Object implements self::A, self::B {
diff --git a/pkg/front_end/testcases/escape.dart.outline.expect b/pkg/front_end/testcases/escape.dart.outline.expect
index e98ed5f..1bccd65 100644
--- a/pkg/front_end/testcases/escape.dart.outline.expect
+++ b/pkg/front_end/testcases/escape.dart.outline.expect
@@ -15,7 +15,7 @@
 class C extends core::Object {
   synthetic constructor •() → self::C
     ;
-  operator ==(dynamic x) → dynamic
+  operator ==(dynamic x) → core::bool
     ;
 }
 class X extends core::Object implements self::A, self::B {
diff --git a/pkg/front_end/testcases/ignore_function.dart.hierarchy.expect b/pkg/front_end/testcases/ignore_function.dart.hierarchy.expect
new file mode 100644
index 0000000..329fb74
--- /dev/null
+++ b/pkg/front_end/testcases/ignore_function.dart.hierarchy.expect
@@ -0,0 +1,83 @@
+Object:
+  superclasses:
+  interfaces:
+  classMembers:
+    Object._haveSameRuntimeType
+    Object.toString
+    Object.runtimeType
+    Object._toString
+    Object._simpleInstanceOf
+    Object._hashCodeRnd
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._objectHashCode
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+
+A:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    A.==
+  classSetters:
+
+Function:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Function.==
+  classSetters:
+
+B:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Function
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    B.==
+  classSetters:
+  interfaceMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    B.==
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/ignore_function.dart.legacy.expect b/pkg/front_end/testcases/ignore_function.dart.legacy.expect
new file mode 100644
index 0000000..5b8a8d2
--- /dev/null
+++ b/pkg/front_end/testcases/ignore_function.dart.legacy.expect
@@ -0,0 +1,36 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/ignore_function.dart:14:15: Error: Can't infer a type for 'other' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   operator ==(other) => false;
+//               ^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+import "dart:core" as core;
+
+class A extends core::Object implements core::Function {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  operator ==(dynamic other) → core::bool
+    return false;
+}
+class B extends core::Object implements self::Function {
+  synthetic constructor •() → self::B
+    : super core::Object::•()
+    ;
+  operator ==(invalid-type other) → core::bool
+    return false;
+}
+class Function extends core::Object {
+  synthetic constructor •() → self::Function
+    : super core::Object::•()
+    ;
+  operator ==(core::Object other) → core::bool
+    return false;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/ignore_function.dart.legacy.transformed.expect b/pkg/front_end/testcases/ignore_function.dart.legacy.transformed.expect
new file mode 100644
index 0000000..5b8a8d2
--- /dev/null
+++ b/pkg/front_end/testcases/ignore_function.dart.legacy.transformed.expect
@@ -0,0 +1,36 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/ignore_function.dart:14:15: Error: Can't infer a type for 'other' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   operator ==(other) => false;
+//               ^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+import "dart:core" as core;
+
+class A extends core::Object implements core::Function {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  operator ==(dynamic other) → core::bool
+    return false;
+}
+class B extends core::Object implements self::Function {
+  synthetic constructor •() → self::B
+    : super core::Object::•()
+    ;
+  operator ==(invalid-type other) → core::bool
+    return false;
+}
+class Function extends core::Object {
+  synthetic constructor •() → self::Function
+    : super core::Object::•()
+    ;
+  operator ==(core::Object other) → core::bool
+    return false;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/ignore_function.dart.outline.expect b/pkg/front_end/testcases/ignore_function.dart.outline.expect
new file mode 100644
index 0000000..a1585c3
--- /dev/null
+++ b/pkg/front_end/testcases/ignore_function.dart.outline.expect
@@ -0,0 +1,34 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/ignore_function.dart:14:15: Error: Can't infer a type for 'other' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   operator ==(other) => false;
+//               ^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+import "dart:core" as core;
+
+class A extends core::Object implements core::Function {
+  synthetic constructor •() → self::A
+    ;
+  operator ==(dynamic other) → core::bool
+    ;
+}
+class B extends core::Object implements self::Function {
+  synthetic constructor •() → self::B
+    ;
+  operator ==(invalid-type other) → core::bool
+    ;
+}
+class Function extends core::Object {
+  synthetic constructor •() → self::Function
+    ;
+  operator ==(core::Object other) → core::bool
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/ignore_function.dart.strong.expect b/pkg/front_end/testcases/ignore_function.dart.strong.expect
new file mode 100644
index 0000000..5b8a8d2
--- /dev/null
+++ b/pkg/front_end/testcases/ignore_function.dart.strong.expect
@@ -0,0 +1,36 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/ignore_function.dart:14:15: Error: Can't infer a type for 'other' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   operator ==(other) => false;
+//               ^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+import "dart:core" as core;
+
+class A extends core::Object implements core::Function {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  operator ==(dynamic other) → core::bool
+    return false;
+}
+class B extends core::Object implements self::Function {
+  synthetic constructor •() → self::B
+    : super core::Object::•()
+    ;
+  operator ==(invalid-type other) → core::bool
+    return false;
+}
+class Function extends core::Object {
+  synthetic constructor •() → self::Function
+    : super core::Object::•()
+    ;
+  operator ==(core::Object other) → core::bool
+    return false;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.strong.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.strong.expect
index 73adfd1..bd67e53 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.strong.expect
@@ -2,18 +2,13 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference/circular_reference_via_closures.dart:9:5: Error: Can't infer the type of 'y': circularity found during type inference.
-// Specify the type explicitly.
-// var y = /*@returnType=invalid-type*/ () => x;
-//     ^
-//
 // pkg/front_end/testcases/inference/circular_reference_via_closures.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference.
 // Specify the type explicitly.
-// var x = /*@returnType=invalid-type*/ () => y;
+// var x = /*@returnType=() -> invalid-type*/ () => y;
 //     ^
 //
 import self as self;
 
-static field invalid-type x = (() → invalid-type => self::y) as{TypeError} invalid-type;
-static field invalid-type y = (() → invalid-type => self::x) as{TypeError} invalid-type;
+static field invalid-type x = (() → () → invalid-type => self::y) as{TypeError} invalid-type;
+static field () → invalid-type y = () → invalid-type => self::x;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.strong.transformed.expect
index 73adfd1..bd67e53 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.strong.transformed.expect
@@ -2,18 +2,13 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference/circular_reference_via_closures.dart:9:5: Error: Can't infer the type of 'y': circularity found during type inference.
-// Specify the type explicitly.
-// var y = /*@returnType=invalid-type*/ () => x;
-//     ^
-//
 // pkg/front_end/testcases/inference/circular_reference_via_closures.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference.
 // Specify the type explicitly.
-// var x = /*@returnType=invalid-type*/ () => y;
+// var x = /*@returnType=() -> invalid-type*/ () => y;
 //     ^
 //
 import self as self;
 
-static field invalid-type x = (() → invalid-type => self::y) as{TypeError} invalid-type;
-static field invalid-type y = (() → invalid-type => self::x) as{TypeError} invalid-type;
+static field invalid-type x = (() → () → invalid-type => self::y) as{TypeError} invalid-type;
+static field () → invalid-type y = () → invalid-type => self::x;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.strong.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.strong.expect
index 4f81f83..88a970d 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.strong.expect
@@ -2,18 +2,13 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart:9:5: Error: Can't infer the type of 'y': circularity found during type inference.
-// Specify the type explicitly.
-// var y = /*@returnType=invalid-type*/ () => x;
-//     ^
-//
 // pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference.
 // Specify the type explicitly.
-// var x = /*@returnType=invalid-type*/ () => y;
+// var x = /*@returnType=() -> invalid-type*/ () => y;
 //     ^
 //
 import self as self;
 
-static field invalid-type x = (() → invalid-type => self::y) as{TypeError} invalid-type;
-static field invalid-type y = (() → invalid-type => self::x) as{TypeError} invalid-type;
+static field invalid-type x = (() → () → invalid-type => self::y) as{TypeError} invalid-type;
+static field () → invalid-type y = () → invalid-type => self::x;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.strong.transformed.expect
index 4f81f83..88a970d 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.strong.transformed.expect
@@ -2,18 +2,13 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart:9:5: Error: Can't infer the type of 'y': circularity found during type inference.
-// Specify the type explicitly.
-// var y = /*@returnType=invalid-type*/ () => x;
-//     ^
-//
 // pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference.
 // Specify the type explicitly.
-// var x = /*@returnType=invalid-type*/ () => y;
+// var x = /*@returnType=() -> invalid-type*/ () => y;
 //     ^
 //
 import self as self;
 
-static field invalid-type x = (() → invalid-type => self::y) as{TypeError} invalid-type;
-static field invalid-type y = (() → invalid-type => self::x) as{TypeError} invalid-type;
+static field invalid-type x = (() → () → invalid-type => self::y) as{TypeError} invalid-type;
+static field () → invalid-type y = () → invalid-type => self::x;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicting_fields.dart.hierarchy.expect b/pkg/front_end/testcases/inference/conflicting_fields.dart.hierarchy.expect
index 058c190..b2b061e 100644
--- a/pkg/front_end/testcases/inference/conflicting_fields.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/inference/conflicting_fields.dart.hierarchy.expect
@@ -79,8 +79,8 @@
     Object._simpleInstanceOfTrue
     Object.==
   classSetters:
-    A.field1
-    A.field2
+    B.field1
+    B.field2
   interfaceMembers:
     B.field1
     Object.toString
@@ -95,5 +95,5 @@
     Object._simpleInstanceOfTrue
     Object.==
   interfaceSetters:
-    A.field1
-    A.field2
+    B.field1
+    B.field2
diff --git a/pkg/front_end/testcases/inference/conflicting_fields.dart.legacy.expect b/pkg/front_end/testcases/inference/conflicting_fields.dart.legacy.expect
index 67e1ae7..0a84181 100644
--- a/pkg/front_end/testcases/inference/conflicting_fields.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/conflicting_fields.dart.legacy.expect
@@ -1,4 +1,17 @@
 library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/conflicting_fields.dart:20:14: Error: Can't infer a type for 'value' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   set field1(value) {}
+//              ^^^^^
+//
+// pkg/front_end/testcases/inference/conflicting_fields.dart:21:14: Error: Can't infer a type for 'value' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   set field2(value) {}
+//              ^^^^^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -20,9 +33,11 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  get field1() → dynamic
+  get field1() → core::int
     return null;
-  get field2() → dynamic
+  get field2() → core::int
     return null;
+  set field1(invalid-type value) → void {}
+  set field2(invalid-type value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicting_fields.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/conflicting_fields.dart.legacy.transformed.expect
index 67e1ae7..0a84181 100644
--- a/pkg/front_end/testcases/inference/conflicting_fields.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/conflicting_fields.dart.legacy.transformed.expect
@@ -1,4 +1,17 @@
 library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/conflicting_fields.dart:20:14: Error: Can't infer a type for 'value' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   set field1(value) {}
+//              ^^^^^
+//
+// pkg/front_end/testcases/inference/conflicting_fields.dart:21:14: Error: Can't infer a type for 'value' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   set field2(value) {}
+//              ^^^^^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -20,9 +33,11 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  get field1() → dynamic
+  get field1() → core::int
     return null;
-  get field2() → dynamic
+  get field2() → core::int
     return null;
+  set field1(invalid-type value) → void {}
+  set field2(invalid-type value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicting_fields.dart.outline.expect b/pkg/front_end/testcases/inference/conflicting_fields.dart.outline.expect
index 6963ff2..57c1e7c 100644
--- a/pkg/front_end/testcases/inference/conflicting_fields.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/conflicting_fields.dart.outline.expect
@@ -1,4 +1,17 @@
 library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/conflicting_fields.dart:20:14: Error: Can't infer a type for 'value' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   set field1(value) {}
+//              ^^^^^
+//
+// pkg/front_end/testcases/inference/conflicting_fields.dart:21:14: Error: Can't infer a type for 'value' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   set field2(value) {}
+//              ^^^^^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -17,9 +30,13 @@
 class B extends self::A implements self::I {
   synthetic constructor •() → self::B
     ;
-  get field1() → dynamic
+  get field1() → core::int
     ;
-  get field2() → dynamic
+  get field2() → core::int
+    ;
+  set field1(invalid-type value) → void
+    ;
+  set field2(invalid-type value) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/conflicting_fields.dart.strong.expect b/pkg/front_end/testcases/inference/conflicting_fields.dart.strong.expect
index 3f45ef6..0a84181 100644
--- a/pkg/front_end/testcases/inference/conflicting_fields.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/conflicting_fields.dart.strong.expect
@@ -2,42 +2,15 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference/conflicting_fields.dart:18:7: Error: Can't infer a type for 'field1' as some of the inherited members have different types.
+// pkg/front_end/testcases/inference/conflicting_fields.dart:20:14: Error: Can't infer a type for 'value' as some of the inherited members have different types.
 // Try adding an explicit type.
-//   get field1 => null;
-//       ^
+//   set field1(value) {}
+//              ^^^^^
 //
-// pkg/front_end/testcases/inference/conflicting_fields.dart:19:7: Error: Can't infer a type for 'field2' as some of the inherited members have different types.
+// pkg/front_end/testcases/inference/conflicting_fields.dart:21:14: Error: Can't infer a type for 'value' as some of the inherited members have different types.
 // Try adding an explicit type.
-//   get field2 => null;
-//       ^
-//
-// pkg/front_end/testcases/inference/conflicting_fields.dart:19:7: Error: The return type of the method 'B.field2' is 'dynamic', which does not match the return type, 'int', of the overridden method, 'A.field2'.
-// Change to a subtype of 'int'.
-//   get field2 => null;
-//       ^
-// pkg/front_end/testcases/inference/conflicting_fields.dart:9:7: Context: This is the overridden method ('field2').
-//   int field2;
-//       ^
-//
-// pkg/front_end/testcases/inference/conflicting_fields.dart:18:7: Error: The return type of the method 'B.field1' is 'dynamic', which does not match the return type, 'int', of the overridden method, 'I.field1'.
-// Change to a subtype of 'int'.
-//   get field1 => null;
-//       ^
-// pkg/front_end/testcases/inference/conflicting_fields.dart:13:7: Context: This is the overridden method ('field1').
-//   int field1;
-//       ^
-//
-// pkg/front_end/testcases/inference/conflicting_fields.dart:8:11: Error: The return type of the method 'A.field1' is 'dynamic', which does not match the return type, 'int', of the overridden method, 'I.field1'.
-// Change to a subtype of 'int'.
-//   dynamic field1;
-//           ^
-// pkg/front_end/testcases/inference/conflicting_fields.dart:13:7: Context: This is the overridden method ('field1').
-//   int field1;
-//       ^
-// pkg/front_end/testcases/inference/conflicting_fields.dart:17:7: Context: Both members are inherited by the non-abstract class 'B'.
-// class B extends A implements I {
-//       ^
+//   set field2(value) {}
+//              ^^^^^
 //
 import self as self;
 import "dart:core" as core;
@@ -60,10 +33,11 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  get field1() → dynamic
+  get field1() → core::int
     return null;
-  get field2() → dynamic
+  get field2() → core::int
     return null;
-  abstract forwarding-stub set field2(dynamic _) → void;
+  set field1(invalid-type value) → void {}
+  set field2(invalid-type value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.legacy.expect b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.legacy.expect
index ae8c8ce..3e2c41e 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.legacy.expect
@@ -1,4 +1,17 @@
 library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/conflicts_can_happen.dart:25:7: Error: Can't infer a return type for 'a' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   get a => null;
+//       ^
+//
+// pkg/front_end/testcases/inference/conflicts_can_happen.dart:30:7: Error: Can't infer a return type for 'a' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   get a => null;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -30,14 +43,14 @@
   synthetic constructor •() → self::C1
     : super core::Object::•()
     ;
-  get a() → dynamic
+  get a() → invalid-type
     return null;
 }
 class C2 extends core::Object implements self::B, self::A {
   synthetic constructor •() → self::C2
     : super core::Object::•()
     ;
-  get a() → dynamic
+  get a() → invalid-type
     return null;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.legacy.transformed.expect
index ae8c8ce..3e2c41e 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.legacy.transformed.expect
@@ -1,4 +1,17 @@
 library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/conflicts_can_happen.dart:25:7: Error: Can't infer a return type for 'a' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   get a => null;
+//       ^
+//
+// pkg/front_end/testcases/inference/conflicts_can_happen.dart:30:7: Error: Can't infer a return type for 'a' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   get a => null;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -30,14 +43,14 @@
   synthetic constructor •() → self::C1
     : super core::Object::•()
     ;
-  get a() → dynamic
+  get a() → invalid-type
     return null;
 }
 class C2 extends core::Object implements self::B, self::A {
   synthetic constructor •() → self::C2
     : super core::Object::•()
     ;
-  get a() → dynamic
+  get a() → invalid-type
     return null;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.strong.expect b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.strong.expect
index 6e8c47d..3e2c41e 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.strong.expect
@@ -2,52 +2,16 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference/conflicts_can_happen.dart:25:7: Error: Can't infer a type for 'a' as some of the inherited members have different types.
+// pkg/front_end/testcases/inference/conflicts_can_happen.dart:25:7: Error: Can't infer a return type for 'a' as some of the inherited members have different types.
 // Try adding an explicit type.
 //   get a => null;
 //       ^
 //
-// pkg/front_end/testcases/inference/conflicts_can_happen.dart:30:7: Error: Can't infer a type for 'a' as some of the inherited members have different types.
+// pkg/front_end/testcases/inference/conflicts_can_happen.dart:30:7: Error: Can't infer a return type for 'a' as some of the inherited members have different types.
 // Try adding an explicit type.
 //   get a => null;
 //       ^
 //
-// pkg/front_end/testcases/inference/conflicts_can_happen.dart:25:7: Error: The return type of the method 'C1.a' is 'dynamic', which does not match the return type, 'I1', of the overridden method, 'A.a'.
-//  - 'I1' is from 'pkg/front_end/testcases/inference/conflicts_can_happen.dart'.
-// Change to a subtype of 'I1'.
-//   get a => null;
-//       ^
-// pkg/front_end/testcases/inference/conflicts_can_happen.dart:17:12: Context: This is the overridden method ('a').
-//   final I1 a = null;
-//            ^
-//
-// pkg/front_end/testcases/inference/conflicts_can_happen.dart:25:7: Error: The return type of the method 'C1.a' is 'dynamic', which does not match the return type, 'I2', of the overridden method, 'B.a'.
-//  - 'I2' is from 'pkg/front_end/testcases/inference/conflicts_can_happen.dart'.
-// Change to a subtype of 'I2'.
-//   get a => null;
-//       ^
-// pkg/front_end/testcases/inference/conflicts_can_happen.dart:21:12: Context: This is the overridden method ('a').
-//   final I2 a = null;
-//            ^
-//
-// pkg/front_end/testcases/inference/conflicts_can_happen.dart:30:7: Error: The return type of the method 'C2.a' is 'dynamic', which does not match the return type, 'I2', of the overridden method, 'B.a'.
-//  - 'I2' is from 'pkg/front_end/testcases/inference/conflicts_can_happen.dart'.
-// Change to a subtype of 'I2'.
-//   get a => null;
-//       ^
-// pkg/front_end/testcases/inference/conflicts_can_happen.dart:21:12: Context: This is the overridden method ('a').
-//   final I2 a = null;
-//            ^
-//
-// pkg/front_end/testcases/inference/conflicts_can_happen.dart:30:7: Error: The return type of the method 'C2.a' is 'dynamic', which does not match the return type, 'I1', of the overridden method, 'A.a'.
-//  - 'I1' is from 'pkg/front_end/testcases/inference/conflicts_can_happen.dart'.
-// Change to a subtype of 'I1'.
-//   get a => null;
-//       ^
-// pkg/front_end/testcases/inference/conflicts_can_happen.dart:17:12: Context: This is the overridden method ('a').
-//   final I1 a = null;
-//            ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -79,14 +43,14 @@
   synthetic constructor •() → self::C1
     : super core::Object::•()
     ;
-  get a() → dynamic
+  get a() → invalid-type
     return null;
 }
 class C2 extends core::Object implements self::B, self::A {
   synthetic constructor •() → self::C2
     : super core::Object::•()
     ;
-  get a() → dynamic
+  get a() → invalid-type
     return null;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.legacy.expect b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.legacy.expect
index e3d2868..7883099 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.legacy.expect
@@ -1,4 +1,12 @@
 library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:34:7: Error: Can't infer a return type for 'a' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   get a => null;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -44,7 +52,7 @@
   synthetic constructor •() → self::C2
     : super core::Object::•()
     ;
-  get a() → dynamic
+  get a() → invalid-type
     return null;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.legacy.transformed.expect
index e3d2868..7883099 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.legacy.transformed.expect
@@ -1,4 +1,12 @@
 library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:34:7: Error: Can't infer a return type for 'a' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   get a => null;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -44,7 +52,7 @@
   synthetic constructor •() → self::C2
     : super core::Object::•()
     ;
-  get a() → dynamic
+  get a() → invalid-type
     return null;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.strong.expect b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.strong.expect
index 411506a..7883099 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.strong.expect
@@ -2,29 +2,11 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:34:7: Error: Can't infer a type for 'a' as some of the inherited members have different types.
+// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:34:7: Error: Can't infer a return type for 'a' as some of the inherited members have different types.
 // Try adding an explicit type.
 //   get a => null;
 //       ^
 //
-// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:34:7: Error: The return type of the method 'C2.a' is 'dynamic', which does not match the return type, 'I1', of the overridden method, 'A.a'.
-//  - 'I1' is from 'pkg/front_end/testcases/inference/conflicts_can_happen2.dart'.
-// Change to a subtype of 'I1'.
-//   get a => null;
-//       ^
-// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:22:12: Context: This is the overridden method ('a').
-//   final I1 a = null;
-//            ^
-//
-// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:34:7: Error: The return type of the method 'C2.a' is 'dynamic', which does not match the return type, 'I2', of the overridden method, 'B.a'.
-//  - 'I2' is from 'pkg/front_end/testcases/inference/conflicts_can_happen2.dart'.
-// Change to a subtype of 'I2'.
-//   get a => null;
-//       ^
-// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:26:12: Context: This is the overridden method ('a').
-//   final I2 a = null;
-//            ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -70,7 +52,7 @@
   synthetic constructor •() → self::C2
     : super core::Object::•()
     ;
-  get a() → dynamic
+  get a() → invalid-type
     return null;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.legacy.expect b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.legacy.expect
index 9a63601..ebc33e7 100644
--- a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.legacy.expect
@@ -9,7 +9,7 @@
   abstract get foo() → core::Iterable<core::String>;
 }
 class B extends core::Object implements self::A {
-  final field dynamic foo = const <dynamic>[];
+  final field core::Iterable<core::String> foo = const <dynamic>[];
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.legacy.transformed.expect
index 9a63601..ebc33e7 100644
--- a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.legacy.transformed.expect
@@ -9,7 +9,7 @@
   abstract get foo() → core::Iterable<core::String>;
 }
 class B extends core::Object implements self::A {
-  final field dynamic foo = const <dynamic>[];
+  final field core::Iterable<core::String> foo = const <dynamic>[];
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.outline.expect b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.outline.expect
index 65ee9d5..945a5e0 100644
--- a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.outline.expect
@@ -8,7 +8,7 @@
   abstract get foo() → core::Iterable<core::String>;
 }
 class B extends core::Object implements self::A {
-  final field dynamic foo;
+  final field core::Iterable<core::String> foo;
   synthetic constructor •() → self::B
     ;
 }
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.legacy.expect b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.legacy.expect
index d1361ce..a97723a 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.legacy.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 class C extends core::Object implements self::B {
-  final field dynamic x;
+  final field core::int x;
   constructor •() → self::C
     : self::C::x = self::f<dynamic>(), super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.legacy.transformed.expect
index d1361ce..a97723a 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.legacy.transformed.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 class C extends core::Object implements self::B {
-  final field dynamic x;
+  final field core::int x;
   constructor •() → self::C
     : self::C::x = self::f<dynamic>(), super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.outline.expect b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.outline.expect
index e84a002..eda87a3 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.outline.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 class C extends core::Object implements self::B {
-  final field dynamic x;
+  final field core::int x;
   constructor •() → self::C
     ;
 }
diff --git a/pkg/front_end/testcases/inference/future_then.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then.dart.legacy.expect
index 88b6639..7126780 100644
--- a/pkg/front_end/testcases/inference/future_then.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then.dart.legacy.transformed.expect
index 4f440e2..0e46318 100644
--- a/pkg/front_end/testcases/inference/future_then.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then.dart.outline.expect b/pkg/front_end/testcases/inference/future_then.dart.outline.expect
index 18f6651..6c0b0d6 100644
--- a/pkg/front_end/testcases/inference/future_then.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_2.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_2.dart.legacy.expect
index a91d75e..c555879 100644
--- a/pkg/front_end/testcases/inference/future_then_2.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_2.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_2.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_2.dart.legacy.transformed.expect
index 6538f9e..63c4c5c 100644
--- a/pkg/front_end/testcases/inference/future_then_2.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_2.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_2.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_2.dart.outline.expect
index 18f6651..6c0b0d6 100644
--- a/pkg/front_end/testcases/inference/future_then_2.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_2.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_3.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_3.dart.legacy.expect
index 2a3484c..075602a 100644
--- a/pkg/front_end/testcases/inference/future_then_3.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_3.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_3.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_3.dart.legacy.transformed.expect
index 346e77b8..895ce5a 100644
--- a/pkg/front_end/testcases/inference/future_then_3.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_3.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_3.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_3.dart.outline.expect
index 18f6651..6c0b0d6 100644
--- a/pkg/front_end/testcases/inference/future_then_3.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_3.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_4.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_4.dart.legacy.expect
index c7d577e..8a393fd 100644
--- a/pkg/front_end/testcases/inference/future_then_4.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_4.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_4.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_4.dart.legacy.transformed.expect
index c90b143..98c8918 100644
--- a/pkg/front_end/testcases/inference/future_then_4.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_4.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_4.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_4.dart.outline.expect
index 18f6651..6c0b0d6 100644
--- a/pkg/front_end/testcases/inference/future_then_4.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_4.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_5.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_5.dart.legacy.expect
index 141e3e7..58d742b 100644
--- a/pkg/front_end/testcases/inference/future_then_5.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_5.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_5.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_5.dart.legacy.transformed.expect
index 33b2911..5d553da 100644
--- a/pkg/front_end/testcases/inference/future_then_5.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_5.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_5.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_5.dart.outline.expect
index 18f6651..6c0b0d6 100644
--- a/pkg/front_end/testcases/inference/future_then_5.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_5.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_6.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_6.dart.legacy.expect
index cc6a439..0cc6848 100644
--- a/pkg/front_end/testcases/inference/future_then_6.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_6.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_6.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_6.dart.legacy.transformed.expect
index 9ad93e8..6d284e6 100644
--- a/pkg/front_end/testcases/inference/future_then_6.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_6.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_6.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_6.dart.outline.expect
index 18f6651..6c0b0d6 100644
--- a/pkg/front_end/testcases/inference/future_then_6.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_6.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_conditional.dart.legacy.expect
index 579d81d..d16fb57 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional.dart.legacy.transformed.expect
index 1ae82f7..37a9eaf 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional.dart.outline.expect
index 18f6651..6c0b0d6 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.legacy.expect
index 3fbb4f7..b5e3e79 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.legacy.transformed.expect
index 9b1db02..e3526c6 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.outline.expect
index 18f6651..6c0b0d6 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.legacy.expect
index a38c5ae..dc6b8a1 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.legacy.transformed.expect
index 364a78a..8031722 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.outline.expect
index 18f6651..6c0b0d6 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.legacy.expect
index 189b93e..ac112f8 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.legacy.transformed.expect
index 4a5e294..0ebe142 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.outline.expect
index 18f6651..6c0b0d6 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.legacy.expect
index 8b21e2e..f359eff 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.legacy.transformed.expect
index e5e7c73..d73e7d4 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.outline.expect
index 18f6651..6c0b0d6 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.legacy.expect
index d4392fe..6231476 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.legacy.transformed.expect
index fecb72e..b10c087 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.outline.expect
index 18f6651..6c0b0d6 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_ifNull.dart.legacy.expect
index 985e5ba..211f9f3 100644
--- a/pkg/front_end/testcases/inference/future_then_ifNull.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_ifNull.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_ifNull.dart.legacy.transformed.expect
index f3c12bb..a55a43b 100644
--- a/pkg/front_end/testcases/inference/future_then_ifNull.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_ifNull.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_ifNull.dart.outline.expect
index 18f6651..6c0b0d6 100644
--- a/pkg/front_end/testcases/inference/future_then_ifNull.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_ifNull.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_upwards.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_upwards.dart.legacy.expect
index c454264..c131aa9 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_upwards.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_upwards.dart.legacy.transformed.expect
index c454264..c131aa9 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_upwards.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_upwards.dart.outline.expect
index e5a534c..68201b4 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.legacy.expect
index 4c532cc..b418fd7 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.legacy.transformed.expect
index 4c532cc..b418fd7 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.outline.expect
index e5a534c..68201b4 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.legacy.expect b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.legacy.expect
index 86abe95..93fd95b 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.legacy.transformed.expect
index 86abe95..93fd95b 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.outline.expect b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.outline.expect
index 9162c9b..a644d90 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(self::MyFuture::T x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional.dart.legacy.expect b/pkg/front_end/testcases/inference/future_union_async_conditional.dart.legacy.expect
index aed7501..f9b1dde 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(dynamic x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_union_async_conditional.dart.legacy.transformed.expect
index 7697712..24f847d 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(dynamic x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional.dart.outline.expect b/pkg/front_end/testcases/inference/future_union_async_conditional.dart.outline.expect
index e80eb43..3e05a12 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(dynamic x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.legacy.expect b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.legacy.expect
index b3989b2..85cc477 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(dynamic x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.legacy.transformed.expect
index 8c463d9..7395c33 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value(dynamic x) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.outline.expect b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.outline.expect
index e80eb43..3e05a12 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value(dynamic x) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards.dart.legacy.expect b/pkg/front_end/testcases/inference/future_union_downwards.dart.legacy.expect
index c309ae6..3e9e23f 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards.dart.legacy.transformed.expect
index 5fb66a8..86df2a1 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards.dart.outline.expect b/pkg/front_end/testcases/inference/future_union_downwards.dart.outline.expect
index 263a94f..6fbd438 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value([dynamic x]) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.legacy.expect b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.legacy.expect
index a89b874..1f70652 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.legacy.transformed.expect
index ec5724d..1afd6d8 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.outline.expect b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.outline.expect
index 263a94f..6fbd438 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value([dynamic x]) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.legacy.expect b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.legacy.expect
index 9b07131..51e5fde 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.legacy.transformed.expect
index a3884a8..ec3fde4 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.outline.expect b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.outline.expect
index da18d4d..2d1e70e 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value([dynamic x]) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.legacy.expect b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.legacy.expect
index b27e6d9..ab6a0d3 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.legacy.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.legacy.transformed.expect
index ca29563..7fc5179 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
     : super core::Object::•() {}
   constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T>
     : super core::Object::•() {}
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     return null;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError = null}) → self::MyFuture<self::MyFuture::then::S>
     return null;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.outline.expect b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.outline.expect
index da18d4d..2d1e70e 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
   constructor value([dynamic x]) → self::MyFuture<self::MyFuture::T>
     ;
-  method noSuchMethod(dynamic invocation) → dynamic
+  method noSuchMethod(core::Invocation invocation) → dynamic
     ;
   method then<S extends core::Object = dynamic>((self::MyFuture::T) → asy::FutureOr<self::MyFuture::then::S> f, {core::Function onError}) → self::MyFuture<self::MyFuture::then::S>
     ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.legacy.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.legacy.expect
index 1f86d32..b9c4222 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.legacy.expect
@@ -7,7 +7,7 @@
   synthetic constructor •() → self::C<self::C::T>
     : super self::D::•()
     ;
-  method f<U extends core::Object = dynamic>(dynamic x) → dynamic {}
+  method f<U extends core::Object = dynamic>(self::C::f::U x) → (self::C::f::U) → void {}
 }
 class D<T extends core::Object = dynamic> extends core::Object {
   synthetic constructor •() → self::D<self::D::T>
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.legacy.transformed.expect
index 1f86d32..b9c4222 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.legacy.transformed.expect
@@ -7,7 +7,7 @@
   synthetic constructor •() → self::C<self::C::T>
     : super self::D::•()
     ;
-  method f<U extends core::Object = dynamic>(dynamic x) → dynamic {}
+  method f<U extends core::Object = dynamic>(self::C::f::U x) → (self::C::f::U) → void {}
 }
 class D<T extends core::Object = dynamic> extends core::Object {
   synthetic constructor •() → self::D<self::D::T>
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.legacy.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.legacy.expect
index 08648c6..c1d63d6 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.legacy.expect
@@ -7,7 +7,7 @@
   synthetic constructor •() → self::C<self::C::T>
     : super self::D::•()
     ;
-  method f<U extends core::Object = dynamic>(dynamic g) → dynamic
+  method f<U extends core::Object = dynamic>(() → core::List<self::C::f::U> g) → void
     return null;
 }
 abstract class D<T extends core::Object = dynamic> extends core::Object {
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.legacy.transformed.expect
index 08648c6..c1d63d6 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.legacy.transformed.expect
@@ -7,7 +7,7 @@
   synthetic constructor •() → self::C<self::C::T>
     : super self::D::•()
     ;
-  method f<U extends core::Object = dynamic>(dynamic g) → dynamic
+  method f<U extends core::Object = dynamic>(() → core::List<self::C::f::U> g) → void
     return null;
 }
 abstract class D<T extends core::Object = dynamic> extends core::Object {
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.legacy.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.legacy.expect
index 57033a4..c9c76f5 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.legacy.expect
@@ -7,7 +7,7 @@
   synthetic constructor •() → self::C<self::C::T>
     : super self::D::•()
     ;
-  method f<U extends core::Object = dynamic>(dynamic x) → dynamic {}
+  method f<U extends core::Object = dynamic>(self::C::f::U x) → () → self::C::f::U {}
 }
 class D<T extends core::Object = dynamic> extends core::Object {
   synthetic constructor •() → self::D<self::D::T>
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.legacy.transformed.expect
index 57033a4..c9c76f5 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.legacy.transformed.expect
@@ -7,7 +7,7 @@
   synthetic constructor •() → self::C<self::C::T>
     : super self::D::•()
     ;
-  method f<U extends core::Object = dynamic>(dynamic x) → dynamic {}
+  method f<U extends core::Object = dynamic>(self::C::f::U x) → () → self::C::f::U {}
 }
 class D<T extends core::Object = dynamic> extends core::Object {
   synthetic constructor •() → self::D<self::D::T>
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.legacy.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.legacy.expect
index 29528fb..0500661 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.legacy.expect
@@ -13,7 +13,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method m<S extends core::Object = dynamic>(dynamic x) → dynamic
+  method m<S extends core::Object = dynamic>(self::D::m::S x) → self::D::m::S
     return x;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.legacy.transformed.expect
index 29528fb..0500661 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.legacy.transformed.expect
@@ -13,7 +13,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method m<S extends core::Object = dynamic>(dynamic x) → dynamic
+  method m<S extends core::Object = dynamic>(self::D::m::S x) → self::D::m::S
     return x;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.hierarchy.expect b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.hierarchy.expect
new file mode 100644
index 0000000..ad5bb3a
--- /dev/null
+++ b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.hierarchy.expect
@@ -0,0 +1,95 @@
+Object:
+  superclasses:
+  interfaces:
+  classMembers:
+    Object._haveSameRuntimeType
+    Object.toString
+    Object.runtimeType
+    Object._toString
+    Object._simpleInstanceOf
+    Object._hashCodeRnd
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._objectHashCode
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+
+A:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    A.f
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    A.h
+    Object.hashCode
+    A.g
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+
+I:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    I.f
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    I.h
+    Object.hashCode
+    I.g
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+
+B:
+  superclasses:
+    Object
+      -> A
+  interfaces: I
+  classMembers:
+    B.f
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    B.h
+    Object.hashCode
+    B.g
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+  interfaceMembers:
+    B.f
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    B.h
+    Object.hashCode
+    B.g
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.legacy.expect b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.legacy.expect
new file mode 100644
index 0000000..d8b5742
--- /dev/null
+++ b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.legacy.expect
@@ -0,0 +1,62 @@
+library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:3: Error: Can't infer a return type for 'f' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   f(x, {y}) {}
+//   ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:5: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   f(x, {y}) {}
+//     ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:9: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   f(x, {y}) {}
+//         ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:18:9: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   h(x, {y}) {}
+//         ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:17:5: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   g(x, {y}) {}
+//     ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:17:9: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   g(x, {y}) {}
+//         ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method f(self::A x, {self::A y = null}) → self::A {}
+  method g(self::A x, {self::A y = null}) → self::A {}
+  method h(self::A x, {self::A y = null}) → self::A {}
+}
+class B extends self::A implements self::I {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  method f(invalid-type x, {invalid-type y = null}) → invalid-type {}
+  method g(invalid-type x, {invalid-type y = null}) → self::A {}
+  method h(self::A x, {invalid-type y = null}) → self::A {}
+}
+class I extends core::Object {
+  synthetic constructor •() → self::I
+    : super core::Object::•()
+    ;
+  method f(self::I x, {self::I y = null}) → self::I {}
+  method g(self::I x, {self::I y = null}) → self::A {}
+  method h(self::A x, {self::I y = null}) → self::A {}
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.legacy.transformed.expect
new file mode 100644
index 0000000..d8b5742
--- /dev/null
+++ b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.legacy.transformed.expect
@@ -0,0 +1,62 @@
+library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:3: Error: Can't infer a return type for 'f' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   f(x, {y}) {}
+//   ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:5: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   f(x, {y}) {}
+//     ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:9: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   f(x, {y}) {}
+//         ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:18:9: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   h(x, {y}) {}
+//         ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:17:5: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   g(x, {y}) {}
+//     ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:17:9: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   g(x, {y}) {}
+//         ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method f(self::A x, {self::A y = null}) → self::A {}
+  method g(self::A x, {self::A y = null}) → self::A {}
+  method h(self::A x, {self::A y = null}) → self::A {}
+}
+class B extends self::A implements self::I {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  method f(invalid-type x, {invalid-type y = null}) → invalid-type {}
+  method g(invalid-type x, {invalid-type y = null}) → self::A {}
+  method h(self::A x, {invalid-type y = null}) → self::A {}
+}
+class I extends core::Object {
+  synthetic constructor •() → self::I
+    : super core::Object::•()
+    ;
+  method f(self::I x, {self::I y = null}) → self::I {}
+  method g(self::I x, {self::I y = null}) → self::A {}
+  method h(self::A x, {self::I y = null}) → self::A {}
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.outline.expect b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.outline.expect
new file mode 100644
index 0000000..26eafa0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.outline.expect
@@ -0,0 +1,69 @@
+library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:3: Error: Can't infer a return type for 'f' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   f(x, {y}) {}
+//   ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:5: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   f(x, {y}) {}
+//     ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:9: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   f(x, {y}) {}
+//         ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:18:9: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   h(x, {y}) {}
+//         ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:17:5: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   g(x, {y}) {}
+//     ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:17:9: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   g(x, {y}) {}
+//         ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    ;
+  method f(self::A x, {self::A y}) → self::A
+    ;
+  method g(self::A x, {self::A y}) → self::A
+    ;
+  method h(self::A x, {self::A y}) → self::A
+    ;
+}
+class B extends self::A implements self::I {
+  synthetic constructor •() → self::B
+    ;
+  method f(invalid-type x, {invalid-type y}) → invalid-type
+    ;
+  method g(invalid-type x, {invalid-type y}) → self::A
+    ;
+  method h(self::A x, {invalid-type y}) → self::A
+    ;
+}
+class I extends core::Object {
+  synthetic constructor •() → self::I
+    ;
+  method f(self::I x, {self::I y}) → self::I
+    ;
+  method g(self::I x, {self::I y}) → self::A
+    ;
+  method h(self::A x, {self::I y}) → self::A
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.strong.expect b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.strong.expect
new file mode 100644
index 0000000..d8b5742
--- /dev/null
+++ b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.strong.expect
@@ -0,0 +1,62 @@
+library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:3: Error: Can't infer a return type for 'f' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   f(x, {y}) {}
+//   ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:5: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   f(x, {y}) {}
+//     ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:9: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   f(x, {y}) {}
+//         ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:18:9: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   h(x, {y}) {}
+//         ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:17:5: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   g(x, {y}) {}
+//     ^
+//
+// pkg/front_end/testcases/inference/inconsistent_overrides.dart:17:9: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   g(x, {y}) {}
+//         ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  method f(self::A x, {self::A y = null}) → self::A {}
+  method g(self::A x, {self::A y = null}) → self::A {}
+  method h(self::A x, {self::A y = null}) → self::A {}
+}
+class B extends self::A implements self::I {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+  method f(invalid-type x, {invalid-type y = null}) → invalid-type {}
+  method g(invalid-type x, {invalid-type y = null}) → self::A {}
+  method h(self::A x, {invalid-type y = null}) → self::A {}
+}
+class I extends core::Object {
+  synthetic constructor •() → self::I
+    : super core::Object::•()
+    ;
+  method f(self::I x, {self::I y = null}) → self::I {}
+  method g(self::I x, {self::I y = null}) → self::A {}
+  method h(self::A x, {self::I y = null}) → self::A {}
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.legacy.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.legacy.expect
index b9f3f55..ba7aef9 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.legacy.expect
@@ -18,6 +18,6 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  operator []=(dynamic index, dynamic value) → dynamic {}
+  operator []=(dynamic index, dynamic value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.legacy.transformed.expect
index b9f3f55..ba7aef9 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.legacy.transformed.expect
@@ -18,6 +18,6 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  operator []=(dynamic index, dynamic value) → dynamic {}
+  operator []=(dynamic index, dynamic value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.outline.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.outline.expect
index 431131a..ef008c4 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.outline.expect
@@ -17,7 +17,7 @@
 class D extends self::C implements self::I {
   synthetic constructor •() → self::D
     ;
-  operator []=(dynamic index, dynamic value) → dynamic
+  operator []=(dynamic index, dynamic value) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.legacy.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.legacy.expect
index 5ffc002..587faf3 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.legacy.expect
@@ -18,6 +18,6 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  operator []=(core::int index, dynamic value) → dynamic {}
+  operator []=(core::int index, dynamic value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.legacy.transformed.expect
index 5ffc002..587faf3 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.legacy.transformed.expect
@@ -18,6 +18,6 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  operator []=(core::int index, dynamic value) → dynamic {}
+  operator []=(core::int index, dynamic value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.outline.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.outline.expect
index e1dc0dc..68f38e5 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.outline.expect
@@ -17,7 +17,7 @@
 class D extends self::C implements self::I {
   synthetic constructor •() → self::D
     ;
-  operator []=(core::int index, dynamic value) → dynamic
+  operator []=(core::int index, dynamic value) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.legacy.expect
index 6657368..4b35f0e 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.legacy.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 class A extends core::Object implements self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract get x() → dynamic;
+  abstract get x() → core::int;
 }
 abstract class C extends core::Object {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.legacy.transformed.expect
index 6657368..4b35f0e 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.legacy.transformed.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 class A extends core::Object implements self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract get x() → dynamic;
+  abstract get x() → core::int;
 }
 abstract class C extends core::Object {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.outline.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.outline.expect
index 41317cd..b7b8fe3 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.outline.expect
@@ -3,14 +3,14 @@
 import "dart:core" as core;
 
 class A extends core::Object implements self::B {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::A
     ;
 }
 abstract class B extends core::Object implements self::C {
   synthetic constructor •() → self::B
     ;
-  abstract get x() → dynamic;
+  abstract get x() → core::int;
 }
 abstract class C extends core::Object {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.legacy.expect
index 67fa407..94de153 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.legacy.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 class A extends core::Object implements self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract set x(dynamic value) → void;
+  abstract set x(core::int value) → void;
 }
 abstract class C extends core::Object {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.legacy.transformed.expect
index 67fa407..94de153 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.legacy.transformed.expect
@@ -3,7 +3,7 @@
 import "dart:core" as core;
 
 class A extends core::Object implements self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract set x(dynamic value) → void;
+  abstract set x(core::int value) → void;
 }
 abstract class C extends core::Object {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.outline.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.outline.expect
index 9de155a..25d6786 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.outline.expect
@@ -3,14 +3,14 @@
 import "dart:core" as core;
 
 class A extends core::Object implements self::B {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::A
     ;
 }
 abstract class B extends core::Object implements self::C {
   synthetic constructor •() → self::B
     ;
-  abstract set x(dynamic value) → void;
+  abstract set x(core::int value) → void;
 }
 abstract class C extends core::Object {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.legacy.expect
index 34995f9..b67d77f 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.legacy.expect
@@ -1,4 +1,22 @@
 library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:32:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:36:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:40:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -27,25 +45,25 @@
   abstract get x() → core::double;
 }
 class E extends self::A implements self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::E
     : super self::A::•()
     ;
 }
 class F extends self::A implements self::C {
-  field dynamic x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::F
     : super self::A::•()
     ;
 }
 class G extends self::A implements self::D {
-  field dynamic x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::G
     : super self::A::•()
     ;
 }
 class H extends self::C implements self::D {
-  field dynamic x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::H
     : super self::C::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.legacy.transformed.expect
index 34995f9..b67d77f 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.legacy.transformed.expect
@@ -1,4 +1,22 @@
 library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:32:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:36:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:40:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -27,25 +45,25 @@
   abstract get x() → core::double;
 }
 class E extends self::A implements self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::E
     : super self::A::•()
     ;
 }
 class F extends self::A implements self::C {
-  field dynamic x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::F
     : super self::A::•()
     ;
 }
 class G extends self::A implements self::D {
-  field dynamic x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::G
     : super self::A::•()
     ;
 }
 class H extends self::C implements self::D {
-  field dynamic x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::H
     : super self::C::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.outline.expect b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.outline.expect
index c55fa65..ac7a863 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.outline.expect
@@ -1,4 +1,22 @@
 library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:32:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:36:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:40:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -23,22 +41,22 @@
   abstract get x() → core::double;
 }
 class E extends self::A implements self::B {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::E
     ;
 }
 class F extends self::A implements self::C {
-  field dynamic x;
+  field invalid-type x;
   synthetic constructor •() → self::F
     ;
 }
 class G extends self::A implements self::D {
-  field dynamic x;
+  field invalid-type x;
   synthetic constructor •() → self::G
     ;
 }
 class H extends self::C implements self::D {
-  field dynamic x;
+  field invalid-type x;
   synthetic constructor •() → self::H
     ;
 }
diff --git a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.strong.expect b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.strong.expect
index c24c0bb..b67d77f 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.strong.expect
@@ -17,54 +17,6 @@
 //   var x;
 //       ^
 //
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:32:7: Error: The return type of the method 'F.x' is 'dynamic', which does not match the return type, 'int', of the overridden method, 'A.x'.
-// Change to a subtype of 'int'.
-//   var x;
-//       ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:9:11: Context: This is the overridden method ('x').
-//   int get x;
-//           ^
-//
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:32:7: Error: The return type of the method 'F.x' is 'dynamic', which does not match the return type, 'num', of the overridden method, 'C.x'.
-// Change to a subtype of 'num'.
-//   var x;
-//       ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:17:11: Context: This is the overridden method ('x').
-//   num get x;
-//           ^
-//
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:36:7: Error: The return type of the method 'G.x' is 'dynamic', which does not match the return type, 'int', of the overridden method, 'A.x'.
-// Change to a subtype of 'int'.
-//   var x;
-//       ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:9:11: Context: This is the overridden method ('x').
-//   int get x;
-//           ^
-//
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:36:7: Error: The return type of the method 'G.x' is 'dynamic', which does not match the return type, 'double', of the overridden method, 'D.x'.
-// Change to a subtype of 'double'.
-//   var x;
-//       ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:21:14: Context: This is the overridden method ('x').
-//   double get x;
-//              ^
-//
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:40:7: Error: The return type of the method 'H.x' is 'dynamic', which does not match the return type, 'num', of the overridden method, 'C.x'.
-// Change to a subtype of 'num'.
-//   var x;
-//       ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:17:11: Context: This is the overridden method ('x').
-//   num get x;
-//           ^
-//
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:40:7: Error: The return type of the method 'H.x' is 'dynamic', which does not match the return type, 'double', of the overridden method, 'D.x'.
-// Change to a subtype of 'double'.
-//   var x;
-//       ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:21:14: Context: This is the overridden method ('x').
-//   double get x;
-//              ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -99,19 +51,19 @@
     ;
 }
 class F extends self::A implements self::C {
-  field dynamic x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::F
     : super self::A::•()
     ;
 }
 class G extends self::A implements self::D {
-  field dynamic x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::G
     : super self::A::•()
     ;
 }
 class H extends self::C implements self::D {
-  field dynamic x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::H
     : super self::C::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.legacy.expect
index 651b972..f9b40cd 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.legacy.expect
@@ -15,7 +15,7 @@
   abstract get x() → core::int;
 }
 class C extends self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.legacy.transformed.expect
index 651b972..f9b40cd 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.legacy.transformed.expect
@@ -15,7 +15,7 @@
   abstract get x() → core::int;
 }
 class C extends self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.outline.expect b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.outline.expect
index 07bf8f9..f76fc3b 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.outline.expect
@@ -13,7 +13,7 @@
   abstract get x() → core::int;
 }
 class C extends self::B {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::C
     ;
 }
diff --git a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.legacy.expect
index 6e31b6d..c395f30 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.legacy.expect
@@ -11,9 +11,9 @@
   abstract set y(generic-covariant-impl core::List<self::A::T> value) → void;
 }
 class B extends self::A<core::int> {
-  field dynamic x = null;
-  field dynamic y = null;
-  field dynamic z = null;
+  field core::List<core::int> x = null;
+  generic-covariant-impl field core::List<core::int> y = null;
+  generic-covariant-impl field core::List<core::int> z = null;
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.legacy.transformed.expect
index 6e31b6d..c395f30 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.legacy.transformed.expect
@@ -11,9 +11,9 @@
   abstract set y(generic-covariant-impl core::List<self::A::T> value) → void;
 }
 class B extends self::A<core::int> {
-  field dynamic x = null;
-  field dynamic y = null;
-  field dynamic z = null;
+  field core::List<core::int> x = null;
+  generic-covariant-impl field core::List<core::int> y = null;
+  generic-covariant-impl field core::List<core::int> z = null;
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.outline.expect b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.outline.expect
index 2fc6225..711058e 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.outline.expect
@@ -10,9 +10,9 @@
   abstract set y(generic-covariant-impl core::List<self::A::T> value) → void;
 }
 class B extends self::A<core::int> {
-  field dynamic x;
-  field dynamic y;
-  field dynamic z;
+  field core::List<core::int> x;
+  generic-covariant-impl field core::List<core::int> y;
+  generic-covariant-impl field core::List<core::int> z;
   synthetic constructor •() → self::B
     ;
 }
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.legacy.expect
index 72b90ee..9f9de47 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.legacy.expect
@@ -16,25 +16,25 @@
     return 0;
 }
 class C extends self::A {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::C
     : super self::A::•()
     ;
 }
 class D extends self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::D
     : super self::B::•()
     ;
 }
 class E extends core::Object implements self::A {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::E
     : super core::Object::•()
     ;
 }
 class F extends core::Object implements self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::F
     : super core::Object::•()
     ;
@@ -45,7 +45,7 @@
     ;
 }
 class G extends self::_G&Object&B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::G
     : super self::_G&Object&B::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.legacy.transformed.expect
index 31c9fee..9f7817b 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.legacy.transformed.expect
@@ -16,25 +16,25 @@
     return 0;
 }
 class C extends self::A {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::C
     : super self::A::•()
     ;
 }
 class D extends self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::D
     : super self::B::•()
     ;
 }
 class E extends core::Object implements self::A {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::E
     : super core::Object::•()
     ;
 }
 class F extends core::Object implements self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::F
     : super core::Object::•()
     ;
@@ -47,7 +47,7 @@
     return 0;
 }
 class G extends self::_G&Object&B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::G
     : super self::_G&Object&B::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.outline.expect
index b627b29..99e2051 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.outline.expect
@@ -14,22 +14,22 @@
     ;
 }
 class C extends self::A {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::C
     ;
 }
 class D extends self::B {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::D
     ;
 }
 class E extends core::Object implements self::A {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::E
     ;
 }
 class F extends core::Object implements self::B {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::F
     ;
 }
@@ -39,7 +39,7 @@
     ;
 }
 class G extends self::_G&Object&B {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::G
     ;
 }
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.legacy.expect
index 8baaa28..3c16ce0 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.legacy.expect
@@ -15,25 +15,25 @@
   set x(core::int value) → void {}
 }
 class C extends self::A {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::C
     : super self::A::•()
     ;
 }
 class D extends self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::D
     : super self::B::•()
     ;
 }
 class E extends core::Object implements self::A {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::E
     : super core::Object::•()
     ;
 }
 class F extends core::Object implements self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::F
     : super core::Object::•()
     ;
@@ -44,7 +44,7 @@
     ;
 }
 class G extends self::_G&Object&B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::G
     : super self::_G&Object&B::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.legacy.transformed.expect
index 1a36773..e3da27e 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.legacy.transformed.expect
@@ -15,25 +15,25 @@
   set x(core::int value) → void {}
 }
 class C extends self::A {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::C
     : super self::A::•()
     ;
 }
 class D extends self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::D
     : super self::B::•()
     ;
 }
 class E extends core::Object implements self::A {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::E
     : super core::Object::•()
     ;
 }
 class F extends core::Object implements self::B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::F
     : super core::Object::•()
     ;
@@ -45,7 +45,7 @@
   set x(core::int value) → void {}
 }
 class G extends self::_G&Object&B {
-  field dynamic x = null;
+  field core::int x = null;
   synthetic constructor •() → self::G
     : super self::_G&Object&B::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.outline.expect
index 02e0c2b..0ce880d 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.outline.expect
@@ -14,22 +14,22 @@
     ;
 }
 class C extends self::A {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::C
     ;
 }
 class D extends self::B {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::D
     ;
 }
 class E extends core::Object implements self::A {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::E
     ;
 }
 class F extends core::Object implements self::B {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::F
     ;
 }
@@ -39,7 +39,7 @@
     ;
 }
 class G extends self::_G&Object&B {
-  field dynamic x;
+  field core::int x;
   synthetic constructor •() → self::G
     ;
 }
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.legacy.expect
index 18097da..e03bb9e 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.legacy.expect
@@ -10,7 +10,7 @@
   set x(core::double value) → void {}
 }
 class B extends self::A {
-  final field dynamic x;
+  final field core::int x;
   constructor •(dynamic x) → self::B
     : self::B::x = x, super self::A::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.legacy.transformed.expect
index 18097da..e03bb9e 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.legacy.transformed.expect
@@ -10,7 +10,7 @@
   set x(core::double value) → void {}
 }
 class B extends self::A {
-  final field dynamic x;
+  final field core::int x;
   constructor •(dynamic x) → self::B
     : self::B::x = x, super self::A::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.outline.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.outline.expect
index 96dbb50..4709de3 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.outline.expect
@@ -10,7 +10,7 @@
     ;
 }
 class B extends self::A {
-  final field dynamic x;
+  final field core::int x;
   constructor •(dynamic x) → self::B
     ;
 }
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.legacy.expect
index 28bd84b..7dea358 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.legacy.expect
@@ -9,7 +9,7 @@
   abstract get x() → core::int;
 }
 class B extends self::A {
-  final field dynamic x;
+  final field core::int x;
   constructor •(dynamic x) → self::B
     : self::B::x = x, super self::A::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.legacy.transformed.expect
index 28bd84b..7dea358 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.legacy.transformed.expect
@@ -9,7 +9,7 @@
   abstract get x() → core::int;
 }
 class B extends self::A {
-  final field dynamic x;
+  final field core::int x;
   constructor •(dynamic x) → self::B
     : self::B::x = x, super self::A::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.outline.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.outline.expect
index 11b26c0..5e18eaa 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.outline.expect
@@ -8,7 +8,7 @@
   abstract get x() → core::int;
 }
 class B extends self::A {
-  final field dynamic x;
+  final field core::int x;
   constructor •(dynamic x) → self::B
     ;
 }
diff --git a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.legacy.expect
index d9bfe67..148028f 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.legacy.expect
@@ -9,7 +9,7 @@
   set x(core::double value) → void {}
 }
 class B extends self::A {
-  final field dynamic x;
+  final field core::double x;
   constructor •(dynamic x) → self::B
     : self::B::x = x, super self::A::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.legacy.transformed.expect
index d9bfe67..148028f 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.legacy.transformed.expect
@@ -9,7 +9,7 @@
   set x(core::double value) → void {}
 }
 class B extends self::A {
-  final field dynamic x;
+  final field core::double x;
   constructor •(dynamic x) → self::B
     : self::B::x = x, super self::A::•()
     ;
diff --git a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.outline.expect b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.outline.expect
index b2085f3..b0206ee 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.outline.expect
@@ -9,7 +9,7 @@
     ;
 }
 class B extends self::A {
-  final field dynamic x;
+  final field core::double x;
   constructor •(dynamic x) → self::B
     ;
 }
diff --git a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.legacy.expect
index 3d410db..1bb410b 100644
--- a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.legacy.expect
@@ -12,6 +12,6 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  abstract get x() → dynamic;
+  abstract get x() → core::double;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.legacy.transformed.expect
index 3d410db..1bb410b 100644
--- a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.legacy.transformed.expect
@@ -12,6 +12,6 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  abstract get x() → dynamic;
+  abstract get x() → core::double;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.outline.expect b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.outline.expect
index 35c511d..83d3f12 100644
--- a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.outline.expect
@@ -10,7 +10,7 @@
 abstract class B extends self::A {
   synthetic constructor •() → self::B
     ;
-  abstract get x() → dynamic;
+  abstract get x() → core::double;
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.legacy.expect
index 69eff1f1..62a80b3 100644
--- a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.legacy.expect
@@ -6,14 +6,14 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  get x() → dynamic
+  get x() → core::int
     return self::f();
 }
 abstract class B extends core::Object implements self::C {
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract get x() → dynamic;
+  abstract get x() → core::int;
 }
 abstract class C extends core::Object {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.legacy.transformed.expect
index 69eff1f1..62a80b3 100644
--- a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.legacy.transformed.expect
@@ -6,14 +6,14 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  get x() → dynamic
+  get x() → core::int
     return self::f();
 }
 abstract class B extends core::Object implements self::C {
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract get x() → dynamic;
+  abstract get x() → core::int;
 }
 abstract class C extends core::Object {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.outline.expect b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.outline.expect
index a346b2f..64fa771 100644
--- a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.outline.expect
@@ -5,13 +5,13 @@
 class A extends core::Object implements self::B {
   synthetic constructor •() → self::A
     ;
-  get x() → dynamic
+  get x() → core::int
     ;
 }
 abstract class B extends core::Object implements self::C {
   synthetic constructor •() → self::B
     ;
-  abstract get x() → dynamic;
+  abstract get x() → core::int;
 }
 abstract class C extends core::Object {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.legacy.expect
index 5337a40..3c40a1e 100644
--- a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.legacy.expect
@@ -1,14 +1,4 @@
 library test;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/inference/infer_method_missing_params.dart:23:3: Warning: The method 'C.f' has more required arguments than those of overridden method 'B.f'.
-//   f(x, y);
-//   ^
-// pkg/front_end/testcases/inference/infer_method_missing_params.dart:17:7: Context: This is the overridden method ('f').
-//   int f(int x);
-//       ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -32,8 +22,8 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  abstract method f(dynamic x, dynamic y) → dynamic;
-  abstract method g(dynamic x, [dynamic y = null]) → dynamic;
-  abstract method h(dynamic x, {dynamic y = null}) → dynamic;
+  abstract method f(core::int x, core::int y) → core::int;
+  abstract method g(core::int x, [core::int y = null]) → core::int;
+  abstract method h(core::int x, {core::int y = null}) → core::int;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.legacy.transformed.expect
index 5337a40..3c40a1e 100644
--- a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.legacy.transformed.expect
@@ -1,14 +1,4 @@
 library test;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/inference/infer_method_missing_params.dart:23:3: Warning: The method 'C.f' has more required arguments than those of overridden method 'B.f'.
-//   f(x, y);
-//   ^
-// pkg/front_end/testcases/inference/infer_method_missing_params.dart:17:7: Context: This is the overridden method ('f').
-//   int f(int x);
-//       ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -32,8 +22,8 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  abstract method f(dynamic x, dynamic y) → dynamic;
-  abstract method g(dynamic x, [dynamic y = null]) → dynamic;
-  abstract method h(dynamic x, {dynamic y = null}) → dynamic;
+  abstract method f(core::int x, core::int y) → core::int;
+  abstract method g(core::int x, [core::int y = null]) → core::int;
+  abstract method h(core::int x, {core::int y = null}) → core::int;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.outline.expect b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.outline.expect
index 0ae3513..332234b 100644
--- a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.outline.expect
@@ -1,14 +1,4 @@
 library test;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/inference/infer_method_missing_params.dart:23:3: Warning: The method 'C.f' has more required arguments than those of overridden method 'B.f'.
-//   f(x, y);
-//   ^
-// pkg/front_end/testcases/inference/infer_method_missing_params.dart:17:7: Context: This is the overridden method ('f').
-//   int f(int x);
-//       ^
-//
 import self as self;
 import "dart:core" as core;
 
@@ -29,9 +19,9 @@
 abstract class C extends core::Object implements self::A, self::B {
   synthetic constructor •() → self::C
     ;
-  abstract method f(dynamic x, dynamic y) → dynamic;
-  abstract method g(dynamic x, [dynamic y]) → dynamic;
-  abstract method h(dynamic x, {dynamic y}) → dynamic;
+  abstract method f(core::int x, core::int y) → core::int;
+  abstract method g(core::int x, [core::int y]) → core::int;
+  abstract method h(core::int x, {core::int y}) → core::int;
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.legacy.expect
index b4be5c0..1b88745 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.legacy.expect
@@ -6,7 +6,7 @@
   synthetic constructor •() → self::C
     : super self::D::•()
     ;
-  set foo(dynamic x) → dynamic {}
+  set foo(core::int x) → void {}
 }
 class D extends core::Object {
   field core::int foo = null;
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.legacy.transformed.expect
index b4be5c0..1b88745 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.legacy.transformed.expect
@@ -6,7 +6,7 @@
   synthetic constructor •() → self::C
     : super self::D::•()
     ;
-  set foo(dynamic x) → dynamic {}
+  set foo(core::int x) → void {}
 }
 class D extends core::Object {
   field core::int foo = null;
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.legacy.expect
index 6288aaf..688faaf 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.legacy.expect
@@ -6,12 +6,12 @@
   synthetic constructor •() → self::C
     : super self::D::•()
     ;
-  set foo(dynamic x) → dynamic {}
+  set foo(core::int x) → void {}
 }
 class D extends core::Object {
   synthetic constructor •() → self::D
     : super core::Object::•()
     ;
-  set foo(core::int x) → dynamic {}
+  set foo(core::int x) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.legacy.transformed.expect
index 6288aaf..688faaf 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.legacy.transformed.expect
@@ -6,12 +6,12 @@
   synthetic constructor •() → self::C
     : super self::D::•()
     ;
-  set foo(dynamic x) → dynamic {}
+  set foo(core::int x) → void {}
 }
 class D extends core::Object {
   synthetic constructor •() → self::D
     : super core::Object::•()
     ;
-  set foo(core::int x) → dynamic {}
+  set foo(core::int x) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.legacy.expect
index 24beb1d..6f68db4 100644
--- a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.legacy.expect
@@ -6,7 +6,7 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  static set foo(core::int x) → dynamic {}
+  static set foo(core::int x) → void {}
 }
-static set bar(core::int x) → dynamic {}
+static set bar(core::int x) → void {}
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.legacy.transformed.expect
index 24beb1d..6f68db4 100644
--- a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.legacy.transformed.expect
@@ -6,7 +6,7 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  static set foo(core::int x) → dynamic {}
+  static set foo(core::int x) → void {}
 }
-static set bar(core::int x) → dynamic {}
+static set bar(core::int x) → void {}
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.outline.expect b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.outline.expect
index e12c95b..42e1a1a 100644
--- a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.outline.expect
@@ -5,10 +5,10 @@
 class C extends core::Object {
   synthetic constructor •() → self::C
     ;
-  static set foo(core::int x) → dynamic
+  static set foo(core::int x) → void
     ;
 }
-static set bar(core::int x) → dynamic
+static set bar(core::int x) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.legacy.expect
index db7fb96..849953f 100644
--- a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.legacy.expect
@@ -12,6 +12,6 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  abstract set x(dynamic value) → void;
+  abstract set x(core::double value) → void;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.legacy.transformed.expect
index db7fb96..849953f 100644
--- a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.legacy.transformed.expect
@@ -12,6 +12,6 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  abstract set x(dynamic value) → void;
+  abstract set x(core::double value) → void;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.outline.expect b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.outline.expect
index e80537c..1d8285f 100644
--- a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.outline.expect
@@ -10,7 +10,7 @@
 abstract class B extends self::A {
   synthetic constructor •() → self::B
     ;
-  abstract set x(dynamic value) → void;
+  abstract set x(core::double value) → void;
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.legacy.expect
index 0c5bffd..d58802b 100644
--- a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.legacy.expect
@@ -6,13 +6,13 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  set x(dynamic value) → void {}
+  set x(core::int value) → void {}
 }
 abstract class B extends core::Object implements self::C {
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract set x(dynamic value) → void;
+  abstract set x(core::int value) → void;
 }
 abstract class C extends core::Object {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.legacy.transformed.expect
index 0c5bffd..d58802b 100644
--- a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.legacy.transformed.expect
@@ -6,13 +6,13 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  set x(dynamic value) → void {}
+  set x(core::int value) → void {}
 }
 abstract class B extends core::Object implements self::C {
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  abstract set x(dynamic value) → void;
+  abstract set x(core::int value) → void;
 }
 abstract class C extends core::Object {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.outline.expect b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.outline.expect
index 47cd14e..462e7c5 100644
--- a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.outline.expect
@@ -5,13 +5,13 @@
 class A extends core::Object implements self::B {
   synthetic constructor •() → self::A
     ;
-  set x(dynamic value) → void
+  set x(core::int value) → void
     ;
 }
 abstract class B extends core::Object implements self::C {
   synthetic constructor •() → self::B
     ;
-  abstract set x(dynamic value) → void;
+  abstract set x(core::int value) → void;
 }
 abstract class C extends core::Object {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.legacy.expect
index a8e04fb..670abbd 100644
--- a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.legacy.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  set x(core::Object o) → dynamic {}
+  set x(core::Object o) → void {}
 }
 static method main() → dynamic {
   new self::B::•().x = "hello";
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.legacy.transformed.expect
index a8e04fb..670abbd 100644
--- a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.legacy.transformed.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  set x(core::Object o) → dynamic {}
+  set x(core::Object o) → void {}
 }
 static method main() → dynamic {
   new self::B::•().x = "hello";
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.outline.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.outline.expect
index 4afa24f..2f2f40b 100644
--- a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.outline.expect
@@ -11,7 +11,7 @@
 class B extends self::A {
   synthetic constructor •() → self::B
     ;
-  set x(core::Object o) → dynamic
+  set x(core::Object o) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.legacy.expect
index 26d089c..2f5e471 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.legacy.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  get x() → dynamic
+  get x() → core::int
     return 3;
 }
 static method foo() → dynamic {
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.legacy.transformed.expect
index 26d089c..2f5e471 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.legacy.transformed.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  get x() → dynamic
+  get x() → core::int
     return 3;
 }
 static method foo() → dynamic {
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.legacy.expect
index 1159f05..922bf72 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.legacy.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  get x() → dynamic
+  get x() → core::int
     return 3;
 }
 static method foo() → dynamic {
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.legacy.transformed.expect
index 1159f05..922bf72 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.legacy.transformed.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  get x() → dynamic
+  get x() → core::int
     return 3;
 }
 static method foo() → dynamic {
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.legacy.expect
index 707d09d..601e9bb 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.legacy.expect
@@ -9,7 +9,7 @@
   synthetic constructor •() → self::C
     : super inf::B::•()
     ;
-  get x() → dynamic
+  get x() → core::int
     return null;
 }
 class A extends core::Object {
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.legacy.transformed.expect
index 707d09d..601e9bb 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.legacy.transformed.expect
@@ -9,7 +9,7 @@
   synthetic constructor •() → self::C
     : super inf::B::•()
     ;
-  get x() → dynamic
+  get x() → core::int
     return null;
 }
 class A extends core::Object {
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.legacy.expect
index f32c8d5..0b1b2b0 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.legacy.expect
@@ -22,7 +22,7 @@
   synthetic constructor •() → test::C
     : super self::B::•()
     ;
-  get x() → dynamic
+  get x() → core::int
     return null;
 }
 class A extends core::Object {
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.legacy.transformed.expect
index f32c8d5..0b1b2b0 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.legacy.transformed.expect
@@ -22,7 +22,7 @@
   synthetic constructor •() → test::C
     : super self::B::•()
     ;
-  get x() → dynamic
+  get x() → core::int
     return null;
 }
 class A extends core::Object {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.legacy.expect
index 927f51d..0360763 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.legacy.expect
@@ -13,9 +13,9 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  get x() → dynamic
+  get x() → core::int
     return 3;
-  get w() → dynamic
+  get w() → core::int
     return "hello";
 }
 static method foo() → dynamic {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.legacy.transformed.expect
index 927f51d..0360763 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.legacy.transformed.expect
@@ -13,9 +13,9 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  get x() → dynamic
+  get x() → core::int
     return 3;
-  get w() → dynamic
+  get w() → core::int
     return "hello";
 }
 static method foo() → dynamic {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.legacy.expect
index 3c624e6..4f44d59 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.legacy.expect
@@ -13,7 +13,7 @@
   synthetic constructor •() → self::B<self::B::E>
     : super self::A::•()
     ;
-  get x() → dynamic
+  get x() → self::B::E
     return this.{self::B::y};
 }
 static method foo() → dynamic {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.legacy.transformed.expect
index 3c624e6..4f44d59 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.legacy.transformed.expect
@@ -13,7 +13,7 @@
   synthetic constructor •() → self::B<self::B::E>
     : super self::A::•()
     ;
-  get x() → dynamic
+  get x() → self::B::E
     return this.{self::B::y};
 }
 static method foo() → dynamic {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.legacy.expect
index 23fb83d..2a0386f 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.legacy.expect
@@ -26,7 +26,7 @@
     ;
   get y() → core::int
     return 0;
-  method m(dynamic a, (dynamic, self::B::E) → dynamic f) → dynamic {}
+  method m(dynamic a, (dynamic, self::B::E) → dynamic f) → core::String {}
 }
 static method foo() → dynamic {
   core::int y = new self::B::•<dynamic>().m(null, null);
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.legacy.transformed.expect
index 23fb83d..2a0386f 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.legacy.transformed.expect
@@ -26,7 +26,7 @@
     ;
   get y() → core::int
     return 0;
-  method m(dynamic a, (dynamic, self::B::E) → dynamic f) → dynamic {}
+  method m(dynamic a, (dynamic, self::B::E) → dynamic f) → core::String {}
 }
 static method foo() → dynamic {
   core::int y = new self::B::•<dynamic>().m(null, null);
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.legacy.expect
index ecee2c6..be1a80f 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.legacy.expect
@@ -23,7 +23,7 @@
     ;
   get y() → core::int
     return 0;
-  method m(dynamic a, (dynamic, core::int) → dynamic f) → dynamic {}
+  method m(dynamic a, (dynamic, core::int) → dynamic f) → self::A<self::B::E> {}
 }
 static method foo() → dynamic {
   core::int y = new self::B::•<core::String>().m(null, null).value;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.legacy.transformed.expect
index ecee2c6..be1a80f 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.legacy.transformed.expect
@@ -23,7 +23,7 @@
     ;
   get y() → core::int
     return 0;
-  method m(dynamic a, (dynamic, core::int) → dynamic f) → dynamic {}
+  method m(dynamic a, (dynamic, core::int) → dynamic f) → self::A<self::B::E> {}
 }
 static method foo() → dynamic {
   core::int y = new self::B::•<core::String>().m(null, null).value;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.legacy.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.legacy.expect
index 54ed9fa..c669cd7 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.legacy.expect
@@ -38,7 +38,7 @@
     ;
   get y() → core::int
     return 0;
-  method m(dynamic a, (dynamic, core::int) → dynamic f) → dynamic {}
+  method m(dynamic a, (dynamic, core::int) → dynamic f) → test::A<test::B::E> {}
 }
 static method foo() → dynamic {
   core::int y = new test::B::•<core::String>().m(null, null).value;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.legacy.transformed.expect
index 54ed9fa..c669cd7 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.legacy.transformed.expect
@@ -38,7 +38,7 @@
     ;
   get y() → core::int
     return 0;
-  method m(dynamic a, (dynamic, core::int) → dynamic f) → dynamic {}
+  method m(dynamic a, (dynamic, core::int) → dynamic f) → test::A<test::B::E> {}
 }
 static method foo() → dynamic {
   core::int y = new test::B::•<core::String>().m(null, null).value;
diff --git a/pkg/front_end/testcases/inference/setter_return_type.dart.legacy.expect b/pkg/front_end/testcases/inference/setter_return_type.dart.legacy.expect
index e0cd00f..7e9ace6 100644
--- a/pkg/front_end/testcases/inference/setter_return_type.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/setter_return_type.dart.legacy.expect
@@ -18,6 +18,6 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  set x(dynamic value) → dynamic {}
+  set x(core::int value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/setter_return_type.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/setter_return_type.dart.legacy.transformed.expect
index e0cd00f..7e9ace6 100644
--- a/pkg/front_end/testcases/inference/setter_return_type.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/setter_return_type.dart.legacy.transformed.expect
@@ -18,6 +18,6 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  set x(dynamic value) → dynamic {}
+  set x(core::int value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/setter_return_type.dart.outline.expect b/pkg/front_end/testcases/inference/setter_return_type.dart.outline.expect
index 5052808..1ae8232 100644
--- a/pkg/front_end/testcases/inference/setter_return_type.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/setter_return_type.dart.outline.expect
@@ -17,7 +17,7 @@
 class D extends self::C implements self::I {
   synthetic constructor •() → self::D
     ;
-  set x(dynamic value) → dynamic
+  set x(core::int value) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.legacy.expect b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.legacy.expect
index b1c6c5f..8793d9b 100644
--- a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.legacy.expect
@@ -15,7 +15,7 @@
   synthetic constructor •() → self::C<self::C::U>
     : super self::B::•()
     ;
-  operator []=(core::Object x, core::Object y) → void {}
+  operator []=(generic-covariant-impl core::Object x, generic-covariant-impl core::Object y) → void {}
   method h() → void {
     super.{self::B::[]=}(self::f<dynamic>(), self::f<dynamic>());
   }
diff --git a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.legacy.transformed.expect
index b1c6c5f..8793d9b 100644
--- a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.legacy.transformed.expect
@@ -15,7 +15,7 @@
   synthetic constructor •() → self::C<self::C::U>
     : super self::B::•()
     ;
-  operator []=(core::Object x, core::Object y) → void {}
+  operator []=(generic-covariant-impl core::Object x, generic-covariant-impl core::Object y) → void {}
   method h() → void {
     super.{self::B::[]=}(self::f<dynamic>(), self::f<dynamic>());
   }
diff --git a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.outline.expect b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.outline.expect
index 80fd653..adfd796 100644
--- a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.outline.expect
@@ -14,7 +14,7 @@
 class C<U extends core::Object = dynamic> extends self::B<asy::Future<self::C::U>> {
   synthetic constructor •() → self::C<self::C::U>
     ;
-  operator []=(core::Object x, core::Object y) → void
+  operator []=(generic-covariant-impl core::Object x, generic-covariant-impl core::Object y) → void
     ;
   method h() → void
     ;
diff --git a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.legacy.expect b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.legacy.expect
index 20df3bc..219fa54 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.legacy.expect
@@ -26,7 +26,7 @@
   synthetic constructor •() → self::C<self::C::U>
     : super self::B::•()
     ;
-  method g(core::Object x) → self::E<asy::Future<self::C::U>>
+  method g(generic-covariant-impl core::Object x) → self::E<asy::Future<self::C::U>>
     return null;
   method h() → void {
     dynamic x = super.{self::B::g}(self::f<dynamic>());
diff --git a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.legacy.transformed.expect
index 20df3bc..219fa54 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.legacy.transformed.expect
@@ -26,7 +26,7 @@
   synthetic constructor •() → self::C<self::C::U>
     : super self::B::•()
     ;
-  method g(core::Object x) → self::E<asy::Future<self::C::U>>
+  method g(generic-covariant-impl core::Object x) → self::E<asy::Future<self::C::U>>
     return null;
   method h() → void {
     dynamic x = super.{self::B::g}(self::f<dynamic>());
diff --git a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.outline.expect b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.outline.expect
index f2b99a5..07019f3 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.outline.expect
@@ -22,7 +22,7 @@
 class C<U extends core::Object = dynamic> extends self::B<asy::Future<self::C::U>> {
   synthetic constructor •() → self::C<self::C::U>
     ;
-  method g(core::Object x) → self::E<asy::Future<self::C::U>>
+  method g(generic-covariant-impl core::Object x) → self::E<asy::Future<self::C::U>>
     ;
   method h() → void
     ;
diff --git a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.legacy.expect b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.legacy.expect
index fd035f1..87b866d 100644
--- a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.legacy.expect
@@ -27,7 +27,7 @@
     ;
   get x() → self::E<asy::Future<self::C::U>>
     return null;
-  set x(core::Object x) → void {}
+  set x(generic-covariant-impl core::Object x) → void {}
   method g() → void {
     dynamic y = super.{self::B::x};
   }
diff --git a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.legacy.transformed.expect
index fd035f1..87b866d 100644
--- a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.legacy.transformed.expect
@@ -27,7 +27,7 @@
     ;
   get x() → self::E<asy::Future<self::C::U>>
     return null;
-  set x(core::Object x) → void {}
+  set x(generic-covariant-impl core::Object x) → void {}
   method g() → void {
     dynamic y = super.{self::B::x};
   }
diff --git a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.outline.expect b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.outline.expect
index caa88dc..941b8de 100644
--- a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.outline.expect
@@ -23,7 +23,7 @@
     ;
   get x() → self::E<asy::Future<self::C::U>>
     ;
-  set x(core::Object x) → void
+  set x(generic-covariant-impl core::Object x) → void
     ;
   method g() → void
     ;
diff --git a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.legacy.expect b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.legacy.expect
index ae129dc..fec3618 100644
--- a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.legacy.expect
@@ -27,7 +27,7 @@
     ;
   get x() → self::E<asy::Future<self::C::U>>
     return null;
-  set x(core::Object x) → void {}
+  set x(generic-covariant-impl core::Object x) → void {}
   method g() → void {
     super.{self::B::x} = self::f<dynamic>();
   }
diff --git a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.legacy.transformed.expect
index ae129dc..fec3618 100644
--- a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.legacy.transformed.expect
@@ -27,7 +27,7 @@
     ;
   get x() → self::E<asy::Future<self::C::U>>
     return null;
-  set x(core::Object x) → void {}
+  set x(generic-covariant-impl core::Object x) → void {}
   method g() → void {
     super.{self::B::x} = self::f<dynamic>();
   }
diff --git a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.outline.expect b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.outline.expect
index 1fa178c..cf71077 100644
--- a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.outline.expect
@@ -23,7 +23,7 @@
     ;
   get x() → self::E<asy::Future<self::C::U>>
     ;
-  set x(core::Object x) → void
+  set x(generic-covariant-impl core::Object x) → void
     ;
   method g() → void
     ;
diff --git a/pkg/front_end/testcases/inference/try_catch_promotion.dart.hierarchy.expect b/pkg/front_end/testcases/inference/try_catch_promotion.dart.hierarchy.expect
index 148400f..3a8a7d9 100644
--- a/pkg/front_end/testcases/inference/try_catch_promotion.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/inference/try_catch_promotion.dart.hierarchy.expect
@@ -58,7 +58,7 @@
     Object
   interfaces:
   classMembers:
-    Object.toString
+    StackTrace.Object.toString%StackTrace.toString
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
@@ -77,7 +77,7 @@
       -> StackTrace
   interfaces:
   classMembers:
-    Object.toString
+    StackTrace.Object.toString%StackTrace.toString
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.strong.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.strong.expect
index 1681eb9..2e9f7aa 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.strong.expect
@@ -2,14 +2,9 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart:20:5: Error: Can't infer the type of 'c': circularity found during type inference.
-// Specify the type explicitly.
-// var c = /*@returnType=invalid-type*/ () =>
-//     ^
-//
 // pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart:18:5: Error: Can't infer the type of 'b': circularity found during type inference.
 // Specify the type explicitly.
-// var b = /*@returnType=invalid-type*/ () =>
+// var b = /*@returnType=() -> invalid-type*/ () =>
 //     ^
 //
 import self as self;
@@ -25,8 +20,8 @@
     return 0;
 }
 static field self::A a = new self::A::•();
-static field invalid-type b = (() → invalid-type => self::a.{self::A::f}<invalid-type>(self::c)) as{TypeError} invalid-type;
-static field invalid-type c = (() → invalid-type => self::a.{self::A::f}<invalid-type>(self::b)) as{TypeError} invalid-type;
+static field invalid-type b = (() → () → invalid-type => self::a.{self::A::f}<() → invalid-type>(self::c)) as{TypeError} invalid-type;
+static field () → invalid-type c = () → invalid-type => self::a.{self::A::f}<invalid-type>(self::b);
 static field () → () → core::int d = () → () → core::int => self::a.{self::A::f}<() → core::int>(self::e);
 static field () → core::int e = () → core::int => self::a.{self::A::g}(self::d);
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.strong.transformed.expect
index 1681eb9..2e9f7aa 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.strong.transformed.expect
@@ -2,14 +2,9 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart:20:5: Error: Can't infer the type of 'c': circularity found during type inference.
-// Specify the type explicitly.
-// var c = /*@returnType=invalid-type*/ () =>
-//     ^
-//
 // pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart:18:5: Error: Can't infer the type of 'b': circularity found during type inference.
 // Specify the type explicitly.
-// var b = /*@returnType=invalid-type*/ () =>
+// var b = /*@returnType=() -> invalid-type*/ () =>
 //     ^
 //
 import self as self;
@@ -25,8 +20,8 @@
     return 0;
 }
 static field self::A a = new self::A::•();
-static field invalid-type b = (() → invalid-type => self::a.{self::A::f}<invalid-type>(self::c)) as{TypeError} invalid-type;
-static field invalid-type c = (() → invalid-type => self::a.{self::A::f}<invalid-type>(self::b)) as{TypeError} invalid-type;
+static field invalid-type b = (() → () → invalid-type => self::a.{self::A::f}<() → invalid-type>(self::c)) as{TypeError} invalid-type;
+static field () → invalid-type c = () → invalid-type => self::a.{self::A::f}<invalid-type>(self::b);
 static field () → () → core::int d = () → () → core::int => self::a.{self::A::f}<() → core::int>(self::e);
 static field () → core::int e = () → core::int => self::a.{self::A::g}(self::d);
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.strong.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.strong.expect
index f2657ee..88b2f85 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.strong.expect
@@ -2,11 +2,6 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:16:5: Error: Can't infer the type of 'b': circularity found during type inference.
-// Specify the type explicitly.
-// var b = a();
-//     ^
-//
 // pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:15:5: Error: Can't infer the type of 'a': circularity found during type inference.
 // Specify the type explicitly.
 // var a = /*@returnType=num*/ () => intValue /*@target=num::+*/ + b;
@@ -19,7 +14,7 @@
 static field core::num numValue = 0;
 static field core::double doubleValue = 0.0;
 static field invalid-type a = (() → core::num => self::intValue.{core::num::+}(self::b as{TypeError} core::num)) as{TypeError} invalid-type;
-static field invalid-type b = self::a.call() as{TypeError} invalid-type;
+static field dynamic b = self::a.call();
 static field () → core::num c = () → core::num => self::numValue.{core::num::+}(self::d);
 static field core::num d = self::c.call();
 static field () → core::double e = () → core::double => self::doubleValue.{core::double::+}(self::f);
diff --git a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.strong.expect b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.strong.expect
index e436c4f..4f2a4c9 100644
--- a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.strong.expect
@@ -7,11 +7,6 @@
 //   var x = /*@returnType=invalid-type*/ () => new B(). /*@target=B::x*/ x;
 //       ^
 //
-// pkg/front_end/testcases/inference_new/field_inference_circularity.dart:17:7: Error: Can't infer the type of 'x': circularity found during type inference.
-// Specify the type explicitly.
-//   var x;
-//       ^
-//
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.strong.transformed.expect
index e436c4f..4f2a4c9 100644
--- a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.strong.transformed.expect
@@ -7,11 +7,6 @@
 //   var x = /*@returnType=invalid-type*/ () => new B(). /*@target=B::x*/ x;
 //       ^
 //
-// pkg/front_end/testcases/inference_new/field_inference_circularity.dart:17:7: Error: Can't infer the type of 'x': circularity found during type inference.
-// Specify the type explicitly.
-//   var x;
-//       ^
-//
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.hierarchy.expect b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.hierarchy.expect
index 7848afa..cf2893f 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.hierarchy.expect
@@ -56,3 +56,460 @@
     Object.==
   classSetters:
     B.x
+
+Comparable:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Comparable.compareTo
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+    Comparable.compare
+  classSetters:
+
+num:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Comparable<num>
+  classMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  classSetters:
+  interfaceMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  interfaceSetters:
+
+double:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    double.~/
+    double.minPositive
+    num.<=
+    num._equalToInteger
+    double.maxFinite
+    num.isInfinite
+    num.<
+    double._tryParseDouble
+    double.Object.toString%double.toString
+    double.+
+    double.negativeInfinity
+    num.clamp
+    num.toDouble
+    double._nativeParse
+    double.ceil
+    double.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    double./
+    double.abs
+    double.nan
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    double.remainder
+    double.infinity
+    num.isFinite
+    num.toInt
+    double.%
+    double.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    double.floorToDouble
+    Object._identityHashCode
+    num.>
+    double.roundToDouble
+    double.round
+    double.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    double.truncate
+    double.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    double.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    double.truncateToDouble
+    double.parse
+    double.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    double._parse
+    double.*
+  classSetters:
+  interfaceMembers:
+    double.~/
+    double.minPositive
+    num.<=
+    num._equalToInteger
+    double.maxFinite
+    num.isInfinite
+    num.<
+    double._tryParseDouble
+    double.Object.toString%double.toString
+    double.+
+    double.negativeInfinity
+    num.clamp
+    num.toDouble
+    double._nativeParse
+    double.ceil
+    double.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    double./
+    double.abs
+    double.nan
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    double.remainder
+    double.infinity
+    num.isFinite
+    num.toInt
+    double.%
+    double.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    double.floorToDouble
+    Object._identityHashCode
+    num.>
+    double.roundToDouble
+    double.round
+    double.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    double.truncate
+    double.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    double.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    double.truncateToDouble
+    double.parse
+    double.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    double._parse
+    double.*
+  interfaceSetters:
+
+int:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  classSetters:
+  interfaceMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.legacy.expect b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.legacy.expect
index 30f357c..86fb4dd 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.legacy.expect
@@ -1,4 +1,12 @@
 library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:16:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -10,7 +18,7 @@
   abstract set x(core::double value) → void;
 }
 class B extends self::A {
-  field dynamic x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
diff --git a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.legacy.transformed.expect
index 30f357c..86fb4dd 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.legacy.transformed.expect
@@ -1,4 +1,12 @@
 library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:16:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -10,7 +18,7 @@
   abstract set x(core::double value) → void;
 }
 class B extends self::A {
-  field dynamic x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
diff --git a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.outline.expect
index 5006f0f..faa675a 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.outline.expect
@@ -1,4 +1,12 @@
 library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:16:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -9,7 +17,7 @@
   abstract set x(core::double value) → void;
 }
 class B extends self::A {
-  field dynamic x;
+  field invalid-type x;
   synthetic constructor •() → self::B
     ;
 }
diff --git a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.strong.expect b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.strong.expect
index 9a78098..86fb4dd 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.strong.expect
@@ -2,13 +2,10 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:16:7: Error: The return type of the method 'B.x' is 'int', which does not match the return type, 'double', of the overridden method, 'A.x'.
-// Change to a subtype of 'double'.
+// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:16:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
 //   var x;
 //       ^
-// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:10:12: Context: This is the overridden method ('x').
-//   void set x(double value);
-//            ^
 //
 import self as self;
 import "dart:core" as core;
@@ -21,7 +18,7 @@
   abstract set x(core::double value) → void;
 }
 class B extends self::A {
-  field core::int x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.hierarchy.expect b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.hierarchy.expect
new file mode 100644
index 0000000..b7417eb
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.hierarchy.expect
@@ -0,0 +1,85 @@
+Object:
+  superclasses:
+  interfaces:
+  classMembers:
+    Object._haveSameRuntimeType
+    Object.toString
+    Object.runtimeType
+    Object._toString
+    Object._simpleInstanceOf
+    Object._hashCodeRnd
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._objectHashCode
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+
+A:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    A.y
+    Object.toString
+    A.x
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+    A.y
+    A.x
+
+B:
+  superclasses:
+    Object
+      -> A
+  interfaces:
+  classMembers:
+    A.y
+    Object.toString
+    A.x
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+    A.y
+    A.x
+
+C:
+  superclasses:
+    Object
+      -> A
+        -> B
+  interfaces:
+  classMembers:
+    C.y
+    Object.toString
+    C.x
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+    C.y
+    C.x
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.legacy.expect b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.legacy.expect
new file mode 100644
index 0000000..0517fd9
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.legacy.expect
@@ -0,0 +1,34 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart:17:7: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var y;
+//       ^
+//
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  abstract get x() → self::A;
+  abstract set x(self::B value) → void;
+  abstract get y() → self::B;
+  abstract set y(self::A value) → void;
+}
+abstract class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+}
+class C extends self::B {
+  field self::A x = null;
+  field invalid-type y = null;
+  synthetic constructor •() → self::C
+    : super self::B::•()
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.legacy.transformed.expect
new file mode 100644
index 0000000..0517fd9
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.legacy.transformed.expect
@@ -0,0 +1,34 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart:17:7: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var y;
+//       ^
+//
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  abstract get x() → self::A;
+  abstract set x(self::B value) → void;
+  abstract get y() → self::B;
+  abstract set y(self::A value) → void;
+}
+abstract class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+}
+class C extends self::B {
+  field self::A x = null;
+  field invalid-type y = null;
+  synthetic constructor •() → self::C
+    : super self::B::•()
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.outline.expect
new file mode 100644
index 0000000..b6f7118
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.outline.expect
@@ -0,0 +1,32 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart:17:7: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var y;
+//       ^
+//
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    ;
+  abstract get x() → self::A;
+  abstract set x(self::B value) → void;
+  abstract get y() → self::B;
+  abstract set y(self::A value) → void;
+}
+abstract class B extends self::A {
+  synthetic constructor •() → self::B
+    ;
+}
+class C extends self::B {
+  field self::A x;
+  field invalid-type y;
+  synthetic constructor •() → self::C
+    ;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.strong.expect b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.strong.expect
new file mode 100644
index 0000000..0517fd9
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.strong.expect
@@ -0,0 +1,34 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart:17:7: Error: Can't infer a type for 'y' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var y;
+//       ^
+//
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+  abstract get x() → self::A;
+  abstract set x(self::B value) → void;
+  abstract get y() → self::B;
+  abstract set y(self::A value) → void;
+}
+abstract class B extends self::A {
+  synthetic constructor •() → self::B
+    : super self::A::•()
+    ;
+}
+class C extends self::B {
+  field self::A x = null;
+  field invalid-type y = null;
+  synthetic constructor •() → self::C
+    : super self::B::•()
+    ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.hierarchy.expect b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.hierarchy.expect
index 167e1f9..b0e92da 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.hierarchy.expect
@@ -76,3 +76,327 @@
     Object.==
   classSetters:
     C.x
+
+Comparable:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Comparable.compareTo
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+    Comparable.compare
+  classSetters:
+
+num:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Comparable<num>
+  classMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  classSetters:
+  interfaceMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  interfaceSetters:
+
+int:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  classSetters:
+  interfaceMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.legacy.expect b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.legacy.expect
index d397440..d21c794 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.legacy.expect
@@ -1,4 +1,12 @@
 library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart:19:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -15,7 +23,7 @@
   abstract get x() → core::int;
 }
 class C extends self::B {
-  field dynamic x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.legacy.transformed.expect
index d397440..d21c794 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.legacy.transformed.expect
@@ -1,4 +1,12 @@
 library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart:19:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -15,7 +23,7 @@
   abstract get x() → core::int;
 }
 class C extends self::B {
-  field dynamic x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.outline.expect
index c425d73..42cca77 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.outline.expect
@@ -1,4 +1,12 @@
 library test;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart:19:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
+//   var x;
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -13,7 +21,7 @@
   abstract get x() → core::int;
 }
 class C extends self::B {
-  field dynamic x;
+  field invalid-type x;
   synthetic constructor •() → self::C
     ;
 }
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.strong.expect b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.strong.expect
index 83026ec..d21c794 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.strong.expect
@@ -2,13 +2,10 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart:19:7: Error: The return type of the method 'C.x' is 'int', which does not match the return type, 'num', of the overridden method, 'A.x'.
-// Change to a subtype of 'num'.
+// pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart:19:7: Error: Can't infer a type for 'x' as some of the inherited members have different types.
+// Try adding an explicit type.
 //   var x;
 //       ^
-// pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart:9:12: Context: This is the overridden method ('x').
-//   void set x(num value);
-//            ^
 //
 import self as self;
 import "dart:core" as core;
@@ -26,7 +23,7 @@
   abstract get x() → core::int;
 }
 class C extends self::B {
-  field core::int x = null;
+  field invalid-type x = null;
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.hierarchy.expect b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.hierarchy.expect
index 3dbfb21..6c951d9 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.hierarchy.expect
@@ -76,3 +76,327 @@
     Object.==
   classSetters:
     C.x
+
+Comparable:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Comparable.compareTo
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+    Comparable.compare
+  classSetters:
+
+num:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Comparable<num>
+  classMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  classSetters:
+  interfaceMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  interfaceSetters:
+
+int:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  classSetters:
+  interfaceMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.legacy.expect b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.legacy.expect
index 24c6ed9..eec7015 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.legacy.expect
@@ -15,7 +15,7 @@
   abstract set x(core::int value) → void;
 }
 class C extends self::B {
-  field dynamic x = null;
+  field core::num x = null;
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.legacy.transformed.expect
index 24c6ed9..eec7015 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.legacy.transformed.expect
@@ -15,7 +15,7 @@
   abstract set x(core::int value) → void;
 }
 class C extends self::B {
-  field dynamic x = null;
+  field core::num x = null;
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.outline.expect
index 2d2fda0..ef2b978 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.outline.expect
@@ -13,7 +13,7 @@
   abstract set x(core::int value) → void;
 }
 class C extends self::B {
-  field dynamic x;
+  field core::num x;
   synthetic constructor •() → self::C
     ;
 }
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.strong.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.strong.expect
index 46baf2b..73a2dd9 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.strong.expect
@@ -4,25 +4,20 @@
 //
 // pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart:11:7: Error: Can't infer the type of 'b': circularity found during type inference.
 // Specify the type explicitly.
-//   var b = /*@returnType=invalid-type*/ () => x;
+//   var b = /*@returnType=() -> invalid-type*/ () => x;
 //       ^
 //
-// pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart:16:5: Error: Can't infer the type of 'x': circularity found during type inference.
-// Specify the type explicitly.
-// var x = /*@returnType=invalid-type*/ () => a. /*@target=A::b*/ b;
-//     ^
-//
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field invalid-type b = (() → invalid-type => self::x) as{TypeError} invalid-type;
-  field () → invalid-type c = () → invalid-type => self::x;
+  field invalid-type b = (() → () → invalid-type => self::x) as{TypeError} invalid-type;
+  field () → () → invalid-type c = () → () → invalid-type => self::x;
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
 }
 static field self::A a = new self::A::•();
-static field invalid-type x = (() → invalid-type => self::a.{self::A::b}) as{TypeError} invalid-type;
-static field () → () → invalid-type y = () → () → invalid-type => self::a.{self::A::c};
+static field () → invalid-type x = () → invalid-type => self::a.{self::A::b};
+static field () → () → () → invalid-type y = () → () → () → invalid-type => self::a.{self::A::c};
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.strong.transformed.expect
index 46baf2b..73a2dd9 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.strong.transformed.expect
@@ -4,25 +4,20 @@
 //
 // pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart:11:7: Error: Can't infer the type of 'b': circularity found during type inference.
 // Specify the type explicitly.
-//   var b = /*@returnType=invalid-type*/ () => x;
+//   var b = /*@returnType=() -> invalid-type*/ () => x;
 //       ^
 //
-// pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart:16:5: Error: Can't infer the type of 'x': circularity found during type inference.
-// Specify the type explicitly.
-// var x = /*@returnType=invalid-type*/ () => a. /*@target=A::b*/ b;
-//     ^
-//
 import self as self;
 import "dart:core" as core;
 
 class A extends core::Object {
-  field invalid-type b = (() → invalid-type => self::x) as{TypeError} invalid-type;
-  field () → invalid-type c = () → invalid-type => self::x;
+  field invalid-type b = (() → () → invalid-type => self::x) as{TypeError} invalid-type;
+  field () → () → invalid-type c = () → () → invalid-type => self::x;
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
 }
 static field self::A a = new self::A::•();
-static field invalid-type x = (() → invalid-type => self::a.{self::A::b}) as{TypeError} invalid-type;
-static field () → () → invalid-type y = () → () → invalid-type => self::a.{self::A::c};
+static field () → invalid-type x = () → invalid-type => self::a.{self::A::b};
+static field () → () → () → invalid-type y = () → () → () → invalid-type => self::a.{self::A::c};
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.legacy.expect b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.legacy.expect
index f8f9e8f..3493bd8 100644
--- a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.legacy.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  method f() → dynamic {}
+  method f() → void {}
 }
 static field dynamic x = new self::C::•().f();
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.legacy.transformed.expect
index f8f9e8f..3493bd8 100644
--- a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.legacy.transformed.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  method f() → dynamic {}
+  method f() → void {}
 }
 static field dynamic x = new self::C::•().f();
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.outline.expect b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.outline.expect
index ac467ff..fbaac00 100644
--- a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.outline.expect
@@ -11,7 +11,7 @@
 class C extends self::B {
   synthetic constructor •() → self::C
     ;
-  method f() → dynamic
+  method f() → void
     ;
 }
 static field dynamic x;
diff --git a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.hierarchy.expect b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.hierarchy.expect
index f92d773..5a9daa5 100644
--- a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.hierarchy.expect
@@ -72,7 +72,7 @@
     Object.==
   classSetters:
   interfaceMembers:
-    I1.f
+    C.I1.f%I2.f
     Object.toString
     Object.runtimeType
     Object._simpleInstanceOf
@@ -136,7 +136,7 @@
     Object.==
   classSetters:
   interfaceMembers:
-    I2.f
+    E.I2.f%I1.f
     Object.toString
     Object.runtimeType
     Object._simpleInstanceOf
@@ -181,3 +181,327 @@
     Object._simpleInstanceOfTrue
     Object.==
   interfaceSetters:
+
+Comparable:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Comparable.compareTo
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+    Comparable.compare
+  classSetters:
+
+num:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Comparable<num>
+  classMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  classSetters:
+  interfaceMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  interfaceSetters:
+
+int:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  classSetters:
+  interfaceMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.legacy.expect b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.legacy.expect
index 525f04b..e52d854 100644
--- a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.legacy.expect
@@ -18,6 +18,7 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
+  abstract forwarding-stub method f(core::Object o) → void;
 }
 class D extends self::C {
   synthetic constructor •() → self::D
diff --git a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.legacy.transformed.expect
index 525f04b..e52d854 100644
--- a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.legacy.transformed.expect
@@ -18,6 +18,7 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
+  abstract forwarding-stub method f(core::Object o) → void;
 }
 class D extends self::C {
   synthetic constructor •() → self::D
diff --git a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.outline.expect b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.outline.expect
index cbba19d..68748a3 100644
--- a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.outline.expect
+++ b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.outline.expect
@@ -15,6 +15,7 @@
 abstract class C extends core::Object implements self::I1, self::I2 {
   synthetic constructor •() → self::C
     ;
+  abstract forwarding-stub method f(core::Object o) → void;
 }
 class D extends self::C {
   synthetic constructor •() → self::D
diff --git a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.strong.expect b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.strong.expect
index 88bfdb0..b228e01 100644
--- a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.strong.expect
+++ b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.strong.expect
@@ -2,22 +2,17 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference_new/strongly_connected_component.dart:18:5: Error: Can't infer the type of 'y': circularity found during type inference.
-// Specify the type explicitly.
-// var y = /*@returnType=invalid-type*/ () => x;
-//     ^
-//
 // pkg/front_end/testcases/inference_new/strongly_connected_component.dart:17:5: Error: Can't infer the type of 'x': circularity found during type inference.
 // Specify the type explicitly.
-// var x = /*@returnType=invalid-type*/ () => f() ? y : z;
+// var x = /*@returnType=() -> invalid-type*/ () => f() ? y : z;
 //     ^
 //
 import self as self;
 import "dart:core" as core;
 
-static field invalid-type x = (() → invalid-type => self::f() ?{invalid-type} self::y : self::z) as{TypeError} invalid-type;
-static field invalid-type y = (() → invalid-type => self::x) as{TypeError} invalid-type;
-static field () → dynamic z = () → invalid-type => self::x;
+static field invalid-type x = (() → () → invalid-type => self::f() ?{() → invalid-type} self::y : self::z) as{TypeError} invalid-type;
+static field () → invalid-type y = () → invalid-type => self::x;
+static field () → invalid-type z = () → invalid-type => self::x;
 static method f() → core::bool
   return null;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.strong.transformed.expect b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.strong.transformed.expect
index 9a54331..b228e01 100644
--- a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.strong.transformed.expect
@@ -2,22 +2,17 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/inference_new/strongly_connected_component.dart:19:67: Error: Can't infer the type of 'y': circularity found during type inference.
+// pkg/front_end/testcases/inference_new/strongly_connected_component.dart:17:5: Error: Can't infer the type of 'x': circularity found during type inference.
 // Specify the type explicitly.
-// var  /*@error=CantInferTypeDueToCircularity*/ y = /*@returnType=dynamic*/ () =>
-//                                                                   ^
-//
-// pkg/front_end/testcases/inference_new/strongly_connected_component.dart:17:67: Error: Can't infer the type of 'x': circularity found during type inference.
-// Specify the type explicitly.
-// var  /*@error=CantInferTypeDueToCircularity*/ x = /*@returnType=dynamic*/ () =>
-//                                                                   ^
+// var x = /*@returnType=() -> invalid-type*/ () => f() ? y : z;
+//     ^
 //
 import self as self;
 import "dart:core" as core;
 
-static field dynamic x = () → dynamic => self::f() ?{dynamic} self::y : self::z;
-static field dynamic y = () → dynamic => self::x;
-static field () → dynamic z = () → dynamic => self::x;
+static field invalid-type x = (() → () → invalid-type => self::f() ?{() → invalid-type} self::y : self::z) as{TypeError} invalid-type;
+static field () → invalid-type y = () → invalid-type => self::x;
+static field () → invalid-type z = () → invalid-type => self::x;
 static method f() → core::bool
   return null;
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.legacy.expect b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.legacy.expect
index 0f54c8d..bae8810 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.legacy.expect
@@ -26,7 +26,7 @@
   synthetic constructor •() → self::C<self::C::U>
     : super self::B::•()
     ;
-  operator [](core::Object x) → self::E<asy::Future<self::C::U>>
+  operator [](generic-covariant-impl core::Object x) → self::E<asy::Future<self::C::U>>
     return null;
   method h() → void {
     dynamic x = super.{self::B::[]}(self::f<dynamic>());
diff --git a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.legacy.transformed.expect
index 0f54c8d..bae8810 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.legacy.transformed.expect
@@ -26,7 +26,7 @@
   synthetic constructor •() → self::C<self::C::U>
     : super self::B::•()
     ;
-  operator [](core::Object x) → self::E<asy::Future<self::C::U>>
+  operator [](generic-covariant-impl core::Object x) → self::E<asy::Future<self::C::U>>
     return null;
   method h() → void {
     dynamic x = super.{self::B::[]}(self::f<dynamic>());
diff --git a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.outline.expect b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.outline.expect
index 12ca495..482f685 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.outline.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.outline.expect
@@ -22,7 +22,7 @@
 class C<U extends core::Object = dynamic> extends self::B<asy::Future<self::C::U>> {
   synthetic constructor •() → self::C<self::C::U>
     ;
-  operator [](core::Object x) → self::E<asy::Future<self::C::U>>
+  operator [](generic-covariant-impl core::Object x) → self::E<asy::Future<self::C::U>>
     ;
   method h() → void
     ;
diff --git a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.hierarchy.expect b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.hierarchy.expect
index 00d3da3..59b9ccc 100644
--- a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.hierarchy.expect
@@ -148,7 +148,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    D.foo
+    G.D.foo%E.foo%F.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
diff --git a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.legacy.expect b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.legacy.expect
index cef6169..869fb78 100644
--- a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.legacy.expect
@@ -39,6 +39,7 @@
   synthetic constructor •() → self::G
     : super core::Object::•()
     ;
+  abstract forwarding-stub method foo() → self::B;
 }
 class H extends self::G {
   synthetic constructor •() → self::H
diff --git a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.legacy.transformed.expect
index cef6169..869fb78 100644
--- a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.legacy.transformed.expect
@@ -39,6 +39,7 @@
   synthetic constructor •() → self::G
     : super core::Object::•()
     ;
+  abstract forwarding-stub method foo() → self::B;
 }
 class H extends self::G {
   synthetic constructor •() → self::H
diff --git a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.outline.expect b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.outline.expect
index 8801b74..b028b33 100644
--- a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.outline.expect
+++ b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.outline.expect
@@ -32,6 +32,7 @@
 abstract class G extends core::Object implements self::D, self::E, self::F {
   synthetic constructor •() → self::G
     ;
+  abstract forwarding-stub method foo() → self::B;
 }
 class H extends self::G {
   synthetic constructor •() → self::H
diff --git a/pkg/front_end/testcases/issue129167943.dart.hierarchy.expect b/pkg/front_end/testcases/issue129167943.dart.hierarchy.expect
new file mode 100644
index 0000000..5b7b04e
--- /dev/null
+++ b/pkg/front_end/testcases/issue129167943.dart.hierarchy.expect
@@ -0,0 +1,778 @@
+Object:
+  superclasses:
+  interfaces:
+  classMembers:
+    Object._haveSameRuntimeType
+    Object.toString
+    Object.runtimeType
+    Object._toString
+    Object._simpleInstanceOf
+    Object._hashCodeRnd
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._objectHashCode
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+
+A:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+
+B:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    B.foo
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+
+C:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: B
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    C.foo
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+  interfaceMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    C.foo
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  interfaceSetters:
+
+D1:
+  Longest path to Object: 3
+  superclasses:
+    Object
+  interfaces: A, C, B
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    D1.foo
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+  interfaceMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    D1.foo
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  interfaceSetters:
+
+D2:
+  Longest path to Object: 3
+  superclasses:
+    Object
+  interfaces: A, C, B
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    D2.foo
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+  interfaceMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    D2.foo
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  interfaceSetters:
+
+D3:
+  Longest path to Object: 3
+  superclasses:
+    Object
+  interfaces: A, C, B
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+  interfaceMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    D3.C.foo%B.foo
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  interfaceSetters:
+
+D4:
+  Longest path to Object: 3
+  superclasses:
+    Object
+  interfaces: A, C, B
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    D4.foo
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+  interfaceMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    D4.foo
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  interfaceSetters:
+
+D5:
+  Longest path to Object: 3
+  superclasses:
+    Object
+  interfaces: A, C, B
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    D5.foo
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+  interfaceMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    D5.foo
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  interfaceSetters:
+
+E:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+    E.foo
+
+G:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: E
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+    G.foo
+  interfaceMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  interfaceSetters:
+    G.foo
+
+H1:
+  Longest path to Object: 3
+  superclasses:
+    Object
+  interfaces: A, E, G
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+    H1.foo
+  interfaceMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  interfaceSetters:
+    H1.foo
+
+H2:
+  Longest path to Object: 3
+  superclasses:
+    Object
+  interfaces: A, E, G
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+    H2.foo
+  interfaceMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  interfaceSetters:
+    H2.foo
+
+H3:
+  Longest path to Object: 3
+  superclasses:
+    Object
+  interfaces: A, E, G
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+  interfaceMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  interfaceSetters:
+    H3.E.foo%G.foo
+
+H4:
+  Longest path to Object: 3
+  superclasses:
+    Object
+  interfaces: A, E, G
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+    H4.foo
+  interfaceMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  interfaceSetters:
+    H4.foo
+
+H5:
+  Longest path to Object: 3
+  superclasses:
+    Object
+  interfaces: A, E, G
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  classSetters:
+    H5.foo
+  interfaceMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+  interfaceSetters:
+    H5.foo
+
+Comparable:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Comparable.compareTo
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+    Comparable.compare
+  classSetters:
+
+num:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Comparable<num>
+  classMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  classSetters:
+  interfaceMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  interfaceSetters:
+
+int:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  classSetters:
+  interfaceMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/issue129167943.dart.legacy.expect b/pkg/front_end/testcases/issue129167943.dart.legacy.expect
new file mode 100644
index 0000000..5e60b76
--- /dev/null
+++ b/pkg/front_end/testcases/issue129167943.dart.legacy.expect
@@ -0,0 +1,94 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+}
+abstract class B extends core::Object {
+  synthetic constructor •() → self::B
+    : super core::Object::•()
+    ;
+  abstract method foo(core::num x) → void;
+}
+abstract class C extends core::Object implements self::B {
+  synthetic constructor •() → self::C
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+abstract class D1 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D1
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+class D2 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D2
+    : super core::Object::•()
+    ;
+  method foo(covariant core::int x) → void {}
+}
+abstract class D3 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D3
+    : super core::Object::•()
+    ;
+  abstract forwarding-stub method foo(covariant core::num x) → void;
+}
+abstract class D4 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D4
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+abstract class D5 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D5
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::num x) → void;
+}
+abstract class E extends core::Object {
+  synthetic constructor •() → self::E
+    : super core::Object::•()
+    ;
+  abstract set foo(core::num x) → void;
+}
+abstract class G extends core::Object implements self::E {
+  synthetic constructor •() → self::G
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+abstract class H1 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H1
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+class H2 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H2
+    : super core::Object::•()
+    ;
+  set foo(covariant core::int x) → void {}
+}
+abstract class H3 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H3
+    : super core::Object::•()
+    ;
+  abstract forwarding-stub set foo(covariant core::num x) → void;
+}
+abstract class H4 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H4
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+abstract class H5 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H5
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::num x) → void;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/issue129167943.dart.legacy.transformed.expect b/pkg/front_end/testcases/issue129167943.dart.legacy.transformed.expect
new file mode 100644
index 0000000..5e60b76
--- /dev/null
+++ b/pkg/front_end/testcases/issue129167943.dart.legacy.transformed.expect
@@ -0,0 +1,94 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+}
+abstract class B extends core::Object {
+  synthetic constructor •() → self::B
+    : super core::Object::•()
+    ;
+  abstract method foo(core::num x) → void;
+}
+abstract class C extends core::Object implements self::B {
+  synthetic constructor •() → self::C
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+abstract class D1 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D1
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+class D2 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D2
+    : super core::Object::•()
+    ;
+  method foo(covariant core::int x) → void {}
+}
+abstract class D3 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D3
+    : super core::Object::•()
+    ;
+  abstract forwarding-stub method foo(covariant core::num x) → void;
+}
+abstract class D4 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D4
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+abstract class D5 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D5
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::num x) → void;
+}
+abstract class E extends core::Object {
+  synthetic constructor •() → self::E
+    : super core::Object::•()
+    ;
+  abstract set foo(core::num x) → void;
+}
+abstract class G extends core::Object implements self::E {
+  synthetic constructor •() → self::G
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+abstract class H1 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H1
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+class H2 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H2
+    : super core::Object::•()
+    ;
+  set foo(covariant core::int x) → void {}
+}
+abstract class H3 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H3
+    : super core::Object::•()
+    ;
+  abstract forwarding-stub set foo(covariant core::num x) → void;
+}
+abstract class H4 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H4
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+abstract class H5 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H5
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::num x) → void;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/issue129167943.dart.outline.expect b/pkg/front_end/testcases/issue129167943.dart.outline.expect
new file mode 100644
index 0000000..f6d1af6
--- /dev/null
+++ b/pkg/front_end/testcases/issue129167943.dart.outline.expect
@@ -0,0 +1,82 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    ;
+}
+abstract class B extends core::Object {
+  synthetic constructor •() → self::B
+    ;
+  abstract method foo(core::num x) → void;
+}
+abstract class C extends core::Object implements self::B {
+  synthetic constructor •() → self::C
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+abstract class D1 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D1
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+class D2 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D2
+    ;
+  method foo(covariant core::int x) → void
+    ;
+}
+abstract class D3 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D3
+    ;
+  abstract forwarding-stub method foo(covariant core::num x) → void;
+}
+abstract class D4 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D4
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+abstract class D5 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D5
+    ;
+  abstract method foo(covariant core::num x) → void;
+}
+abstract class E extends core::Object {
+  synthetic constructor •() → self::E
+    ;
+  abstract set foo(core::num x) → void;
+}
+abstract class G extends core::Object implements self::E {
+  synthetic constructor •() → self::G
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+abstract class H1 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H1
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+class H2 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H2
+    ;
+  set foo(covariant core::int x) → void
+    ;
+}
+abstract class H3 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H3
+    ;
+  abstract forwarding-stub set foo(covariant core::num x) → void;
+}
+abstract class H4 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H4
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+abstract class H5 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H5
+    ;
+  abstract set foo(covariant core::num x) → void;
+}
+static method main() → dynamic
+  ;
diff --git a/pkg/front_end/testcases/issue129167943.dart.strong.expect b/pkg/front_end/testcases/issue129167943.dart.strong.expect
new file mode 100644
index 0000000..5e60b76
--- /dev/null
+++ b/pkg/front_end/testcases/issue129167943.dart.strong.expect
@@ -0,0 +1,94 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+}
+abstract class B extends core::Object {
+  synthetic constructor •() → self::B
+    : super core::Object::•()
+    ;
+  abstract method foo(core::num x) → void;
+}
+abstract class C extends core::Object implements self::B {
+  synthetic constructor •() → self::C
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+abstract class D1 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D1
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+class D2 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D2
+    : super core::Object::•()
+    ;
+  method foo(covariant core::int x) → void {}
+}
+abstract class D3 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D3
+    : super core::Object::•()
+    ;
+  abstract forwarding-stub method foo(covariant core::num x) → void;
+}
+abstract class D4 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D4
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+abstract class D5 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D5
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::num x) → void;
+}
+abstract class E extends core::Object {
+  synthetic constructor •() → self::E
+    : super core::Object::•()
+    ;
+  abstract set foo(core::num x) → void;
+}
+abstract class G extends core::Object implements self::E {
+  synthetic constructor •() → self::G
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+abstract class H1 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H1
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+class H2 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H2
+    : super core::Object::•()
+    ;
+  set foo(covariant core::int x) → void {}
+}
+abstract class H3 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H3
+    : super core::Object::•()
+    ;
+  abstract forwarding-stub set foo(covariant core::num x) → void;
+}
+abstract class H4 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H4
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+abstract class H5 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H5
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::num x) → void;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/issue129167943.dart.strong.transformed.expect b/pkg/front_end/testcases/issue129167943.dart.strong.transformed.expect
new file mode 100644
index 0000000..5e60b76
--- /dev/null
+++ b/pkg/front_end/testcases/issue129167943.dart.strong.transformed.expect
@@ -0,0 +1,94 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+abstract class A extends core::Object {
+  synthetic constructor •() → self::A
+    : super core::Object::•()
+    ;
+}
+abstract class B extends core::Object {
+  synthetic constructor •() → self::B
+    : super core::Object::•()
+    ;
+  abstract method foo(core::num x) → void;
+}
+abstract class C extends core::Object implements self::B {
+  synthetic constructor •() → self::C
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+abstract class D1 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D1
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+class D2 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D2
+    : super core::Object::•()
+    ;
+  method foo(covariant core::int x) → void {}
+}
+abstract class D3 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D3
+    : super core::Object::•()
+    ;
+  abstract forwarding-stub method foo(covariant core::num x) → void;
+}
+abstract class D4 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D4
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::int x) → void;
+}
+abstract class D5 extends core::Object implements self::A, self::C, self::B {
+  synthetic constructor •() → self::D5
+    : super core::Object::•()
+    ;
+  abstract method foo(covariant core::num x) → void;
+}
+abstract class E extends core::Object {
+  synthetic constructor •() → self::E
+    : super core::Object::•()
+    ;
+  abstract set foo(core::num x) → void;
+}
+abstract class G extends core::Object implements self::E {
+  synthetic constructor •() → self::G
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+abstract class H1 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H1
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+class H2 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H2
+    : super core::Object::•()
+    ;
+  set foo(covariant core::int x) → void {}
+}
+abstract class H3 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H3
+    : super core::Object::•()
+    ;
+  abstract forwarding-stub set foo(covariant core::num x) → void;
+}
+abstract class H4 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H4
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::int x) → void;
+}
+abstract class H5 extends core::Object implements self::A, self::E, self::G {
+  synthetic constructor •() → self::H5
+    : super core::Object::•()
+    ;
+  abstract set foo(covariant core::num x) → void;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/mixin_application_override.dart.hierarchy.expect b/pkg/front_end/testcases/mixin_application_override.dart.hierarchy.expect
index 8351797..bec105b 100644
--- a/pkg/front_end/testcases/mixin_application_override.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/mixin_application_override.dart.hierarchy.expect
@@ -193,7 +193,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    A1.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -292,7 +292,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    A2.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -422,7 +422,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    _A1X&S&M1 with M.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -456,7 +456,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    A1X.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -555,7 +555,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    _A2X&S&M1&M2 with M.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -590,7 +590,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    A2X.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -720,7 +720,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    _B1&S&M1 with M.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -754,7 +754,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    B1.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -853,7 +853,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    _B2&S&M1&M2 with M.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -888,7 +888,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    B2.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -1052,7 +1052,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    _B1X&S&M1 with M.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -1086,7 +1086,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    _B1X&S&M1&M with MX.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -1121,7 +1121,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    B1X.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -1220,7 +1220,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    _B2X&S&M1&M2 with M.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -1255,7 +1255,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    _B2X&S&M1&M2&M with MX.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -1291,7 +1291,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    M.foo
+    B2X.M.foo%S.foo
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
diff --git a/pkg/front_end/testcases/mixin_application_override.dart.legacy.expect b/pkg/front_end/testcases/mixin_application_override.dart.legacy.expect
index b5c4a61..0900d21 100644
--- a/pkg/front_end/testcases/mixin_application_override.dart.legacy.expect
+++ b/pkg/front_end/testcases/mixin_application_override.dart.legacy.expect
@@ -122,6 +122,66 @@
 // class B2X extends S with M1, M2, M, MX {}
 //       ^^^
 //
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:26:7: Context: Override was introduced in the mixin application class 'A1X'.
+// class A1X = S with M1, M, MX;
+//       ^^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:27:7: Context: Override was introduced in the mixin application class 'A2X'.
+// class A2X = S with M1, M2, M, MX;
+//       ^^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:31:7: Context: Both members are inherited by the non-abstract class 'B1'.
+// class B1 extends S with M1, M {}
+//       ^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:33:7: Context: Both members are inherited by the non-abstract class 'B2'.
+// class B2 extends S with M1, M2, M {}
+//       ^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:37:7: Context: Both members are inherited by the non-abstract class 'B1X'.
+// class B1X extends S with M1, M, MX {}
+//       ^^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:39:7: Context: Both members are inherited by the non-abstract class 'B2X'.
+// class B2X extends S with M1, M2, M, MX {}
+//       ^^^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -166,6 +226,7 @@
   synthetic constructor •() → self::A1
     : super self::_A1&S&M1::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _A2&S&M1 = self::S with self::M1 {
   synthetic constructor •() → self::_A2&S&M1
@@ -181,6 +242,7 @@
   synthetic constructor •() → self::A2
     : super self::_A2&S&M1&M2::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _A0X&S&M = self::S with self::M {
   synthetic constructor •() → self::_A0X&S&M
@@ -201,11 +263,13 @@
   synthetic constructor •() → self::_A1X&S&M1&M
     : super self::_A1X&S&M1::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 class A1X = self::_A1X&S&M1&M with self::MX {
   synthetic constructor •() → self::A1X
     : super self::_A1X&S&M1&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _A2X&S&M1 = self::S with self::M1 {
   synthetic constructor •() → self::_A2X&S&M1
@@ -221,11 +285,13 @@
   synthetic constructor •() → self::_A2X&S&M1&M2&M
     : super self::_A2X&S&M1&M2::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 class A2X = self::_A2X&S&M1&M2&M with self::MX {
   synthetic constructor •() → self::A2X
     : super self::_A2X&S&M1&M2&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _B0&S&M = self::S with self::M {
   synthetic constructor •() → self::_B0&S&M
@@ -246,11 +312,13 @@
   synthetic constructor •() → self::_B1&S&M1&M
     : super self::_B1&S&M1::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 class B1 extends self::_B1&S&M1&M {
   synthetic constructor •() → self::B1
     : super self::_B1&S&M1&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _B2&S&M1 = self::S with self::M1 {
   synthetic constructor •() → self::_B2&S&M1
@@ -266,11 +334,13 @@
   synthetic constructor •() → self::_B2&S&M1&M2&M
     : super self::_B2&S&M1&M2::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 class B2 extends self::_B2&S&M1&M2&M {
   synthetic constructor •() → self::B2
     : super self::_B2&S&M1&M2&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _B0X&S&M = self::S with self::M {
   synthetic constructor •() → self::_B0X&S&M
@@ -296,16 +366,19 @@
   synthetic constructor •() → self::_B1X&S&M1&M
     : super self::_B1X&S&M1::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _B1X&S&M1&M&MX = self::_B1X&S&M1&M with self::MX {
   synthetic constructor •() → self::_B1X&S&M1&M&MX
     : super self::_B1X&S&M1&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 class B1X extends self::_B1X&S&M1&M&MX {
   synthetic constructor •() → self::B1X
     : super self::_B1X&S&M1&M&MX::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _B2X&S&M1 = self::S with self::M1 {
   synthetic constructor •() → self::_B2X&S&M1
@@ -321,15 +394,18 @@
   synthetic constructor •() → self::_B2X&S&M1&M2&M
     : super self::_B2X&S&M1&M2::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _B2X&S&M1&M2&M&MX = self::_B2X&S&M1&M2&M with self::MX {
   synthetic constructor •() → self::_B2X&S&M1&M2&M&MX
     : super self::_B2X&S&M1&M2&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 class B2X extends self::_B2X&S&M1&M2&M&MX {
   synthetic constructor •() → self::B2X
     : super self::_B2X&S&M1&M2&M&MX::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/mixin_application_override.dart.legacy.transformed.expect b/pkg/front_end/testcases/mixin_application_override.dart.legacy.transformed.expect
index c5a8827..49aba4d 100644
--- a/pkg/front_end/testcases/mixin_application_override.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/mixin_application_override.dart.legacy.transformed.expect
@@ -122,6 +122,66 @@
 // class B2X extends S with M1, M2, M, MX {}
 //       ^^^
 //
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:26:7: Context: Override was introduced in the mixin application class 'A1X'.
+// class A1X = S with M1, M, MX;
+//       ^^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:27:7: Context: Override was introduced in the mixin application class 'A2X'.
+// class A2X = S with M1, M2, M, MX;
+//       ^^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:31:7: Context: Both members are inherited by the non-abstract class 'B1'.
+// class B1 extends S with M1, M {}
+//       ^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:33:7: Context: Both members are inherited by the non-abstract class 'B2'.
+// class B2 extends S with M1, M2, M {}
+//       ^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:37:7: Context: Both members are inherited by the non-abstract class 'B1X'.
+// class B1X extends S with M1, M, MX {}
+//       ^^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:39:7: Context: Both members are inherited by the non-abstract class 'B2X'.
+// class B2X extends S with M1, M2, M, MX {}
+//       ^^^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -167,7 +227,7 @@
   synthetic constructor •() → self::A1
     : super self::_A1&S&M1::•()
     ;
-  method foo() → dynamic {}
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _A2&S&M1 extends self::S implements self::M1 {
   synthetic constructor •() → self::_A2&S&M1
@@ -183,7 +243,7 @@
   synthetic constructor •() → self::A2
     : super self::_A2&S&M1&M2::•()
     ;
-  method foo() → dynamic {}
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _A0X&S&M extends self::S implements self::M {
   synthetic constructor •() → self::_A0X&S&M
@@ -205,12 +265,13 @@
   synthetic constructor •() → self::_A1X&S&M1&M
     : super self::_A1X&S&M1::•()
     ;
-  method foo() → dynamic {}
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 class A1X extends self::_A1X&S&M1&M implements self::MX {
   synthetic constructor •() → self::A1X
     : super self::_A1X&S&M1&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _A2X&S&M1 extends self::S implements self::M1 {
   synthetic constructor •() → self::_A2X&S&M1
@@ -226,12 +287,13 @@
   synthetic constructor •() → self::_A2X&S&M1&M2&M
     : super self::_A2X&S&M1&M2::•()
     ;
-  method foo() → dynamic {}
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 class A2X extends self::_A2X&S&M1&M2&M implements self::MX {
   synthetic constructor •() → self::A2X
     : super self::_A2X&S&M1&M2&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _B0&S&M extends self::S implements self::M {
   synthetic constructor •() → self::_B0&S&M
@@ -253,12 +315,13 @@
   synthetic constructor •() → self::_B1&S&M1&M
     : super self::_B1&S&M1::•()
     ;
-  method foo() → dynamic {}
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 class B1 extends self::_B1&S&M1&M {
   synthetic constructor •() → self::B1
     : super self::_B1&S&M1&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _B2&S&M1 extends self::S implements self::M1 {
   synthetic constructor •() → self::_B2&S&M1
@@ -274,12 +337,13 @@
   synthetic constructor •() → self::_B2&S&M1&M2&M
     : super self::_B2&S&M1&M2::•()
     ;
-  method foo() → dynamic {}
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 class B2 extends self::_B2&S&M1&M2&M {
   synthetic constructor •() → self::B2
     : super self::_B2&S&M1&M2&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _B0X&S&M extends self::S implements self::M {
   synthetic constructor •() → self::_B0X&S&M
@@ -306,17 +370,19 @@
   synthetic constructor •() → self::_B1X&S&M1&M
     : super self::_B1X&S&M1::•()
     ;
-  method foo() → dynamic {}
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _B1X&S&M1&M&MX extends self::_B1X&S&M1&M implements self::MX {
   synthetic constructor •() → self::_B1X&S&M1&M&MX
     : super self::_B1X&S&M1&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 class B1X extends self::_B1X&S&M1&M&MX {
   synthetic constructor •() → self::B1X
     : super self::_B1X&S&M1&M&MX::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _B2X&S&M1 extends self::S implements self::M1 {
   synthetic constructor •() → self::_B2X&S&M1
@@ -332,16 +398,18 @@
   synthetic constructor •() → self::_B2X&S&M1&M2&M
     : super self::_B2X&S&M1&M2::•()
     ;
-  method foo() → dynamic {}
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 abstract class _B2X&S&M1&M2&M&MX extends self::_B2X&S&M1&M2&M implements self::MX {
   synthetic constructor •() → self::_B2X&S&M1&M2&M&MX
     : super self::_B2X&S&M1&M2&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 class B2X extends self::_B2X&S&M1&M2&M&MX {
   synthetic constructor •() → self::B2X
     : super self::_B2X&S&M1&M2&M&MX::•()
     ;
+  abstract forwarding-stub method foo([dynamic x = null]) → dynamic;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/mixin_application_override.dart.outline.expect b/pkg/front_end/testcases/mixin_application_override.dart.outline.expect
index 9983cfb..90453d9 100644
--- a/pkg/front_end/testcases/mixin_application_override.dart.outline.expect
+++ b/pkg/front_end/testcases/mixin_application_override.dart.outline.expect
@@ -122,6 +122,66 @@
 // class B2X extends S with M1, M2, M, MX {}
 //       ^^^
 //
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:26:7: Context: Override was introduced in the mixin application class 'A1X'.
+// class A1X = S with M1, M, MX;
+//       ^^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:27:7: Context: Override was introduced in the mixin application class 'A2X'.
+// class A2X = S with M1, M2, M, MX;
+//       ^^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:31:7: Context: Both members are inherited by the non-abstract class 'B1'.
+// class B1 extends S with M1, M {}
+//       ^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:33:7: Context: Both members are inherited by the non-abstract class 'B2'.
+// class B2 extends S with M1, M2, M {}
+//       ^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:37:7: Context: Both members are inherited by the non-abstract class 'B1X'.
+// class B1X extends S with M1, M, MX {}
+//       ^^^
+//
+// pkg/front_end/testcases/mixin_application_override.dart:12:3: Warning: The method 'M.foo' has fewer positional arguments than those of overridden method 'S.foo'.
+//   foo() {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:8:3: Context: This is the overridden method ('foo').
+//   foo([x]) {}
+//   ^
+// pkg/front_end/testcases/mixin_application_override.dart:39:7: Context: Both members are inherited by the non-abstract class 'B2X'.
+// class B2X extends S with M1, M2, M, MX {}
+//       ^^^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -163,6 +223,7 @@
   synthetic constructor •() → self::A1
     : super self::_A1&S&M1::•()
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 abstract class _A2&S&M1 = self::S with self::M1 {
   synthetic constructor •() → self::_A2&S&M1
@@ -178,6 +239,7 @@
   synthetic constructor •() → self::A2
     : super self::_A2&S&M1&M2::•()
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 abstract class _A0X&S&M = self::S with self::M {
   synthetic constructor •() → self::_A0X&S&M
@@ -198,11 +260,13 @@
   synthetic constructor •() → self::_A1X&S&M1&M
     : super self::_A1X&S&M1::•()
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 class A1X = self::_A1X&S&M1&M with self::MX {
   synthetic constructor •() → self::A1X
     : super self::_A1X&S&M1&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 abstract class _A2X&S&M1 = self::S with self::M1 {
   synthetic constructor •() → self::_A2X&S&M1
@@ -218,11 +282,13 @@
   synthetic constructor •() → self::_A2X&S&M1&M2&M
     : super self::_A2X&S&M1&M2::•()
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 class A2X = self::_A2X&S&M1&M2&M with self::MX {
   synthetic constructor •() → self::A2X
     : super self::_A2X&S&M1&M2&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 abstract class _B0&S&M = self::S with self::M {
   synthetic constructor •() → self::_B0&S&M
@@ -242,10 +308,12 @@
   synthetic constructor •() → self::_B1&S&M1&M
     : super self::_B1&S&M1::•()
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 class B1 extends self::_B1&S&M1&M {
   synthetic constructor •() → self::B1
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 abstract class _B2&S&M1 = self::S with self::M1 {
   synthetic constructor •() → self::_B2&S&M1
@@ -261,10 +329,12 @@
   synthetic constructor •() → self::_B2&S&M1&M2&M
     : super self::_B2&S&M1&M2::•()
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 class B2 extends self::_B2&S&M1&M2&M {
   synthetic constructor •() → self::B2
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 abstract class _B0X&S&M = self::S with self::M {
   synthetic constructor •() → self::_B0X&S&M
@@ -289,15 +359,18 @@
   synthetic constructor •() → self::_B1X&S&M1&M
     : super self::_B1X&S&M1::•()
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 abstract class _B1X&S&M1&M&MX = self::_B1X&S&M1&M with self::MX {
   synthetic constructor •() → self::_B1X&S&M1&M&MX
     : super self::_B1X&S&M1&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 class B1X extends self::_B1X&S&M1&M&MX {
   synthetic constructor •() → self::B1X
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 abstract class _B2X&S&M1 = self::S with self::M1 {
   synthetic constructor •() → self::_B2X&S&M1
@@ -313,15 +386,18 @@
   synthetic constructor •() → self::_B2X&S&M1&M2&M
     : super self::_B2X&S&M1&M2::•()
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 abstract class _B2X&S&M1&M2&M&MX = self::_B2X&S&M1&M2&M with self::MX {
   synthetic constructor •() → self::_B2X&S&M1&M2&M&MX
     : super self::_B2X&S&M1&M2&M::•()
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 class B2X extends self::_B2X&S&M1&M2&M&MX {
   synthetic constructor •() → self::B2X
     ;
+  abstract forwarding-stub method foo([dynamic x]) → dynamic;
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/native_as_name.dart.legacy.expect b/pkg/front_end/testcases/native_as_name.dart.legacy.expect
index 52a151a..b2691b8 100644
--- a/pkg/front_end/testcases/native_as_name.dart.legacy.expect
+++ b/pkg/front_end/testcases/native_as_name.dart.legacy.expect
@@ -34,7 +34,7 @@
   synthetic constructor •() → self::Z
     : super core::Object::•()
     ;
-  set native(core::String s) → dynamic
+  set native(core::String s) → void
     return this.{self::Z::f} = s;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/native_as_name.dart.legacy.transformed.expect b/pkg/front_end/testcases/native_as_name.dart.legacy.transformed.expect
index 52a151a..b2691b8 100644
--- a/pkg/front_end/testcases/native_as_name.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/native_as_name.dart.legacy.transformed.expect
@@ -34,7 +34,7 @@
   synthetic constructor •() → self::Z
     : super core::Object::•()
     ;
-  set native(core::String s) → dynamic
+  set native(core::String s) → void
     return this.{self::Z::f} = s;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/native_as_name.dart.outline.expect b/pkg/front_end/testcases/native_as_name.dart.outline.expect
index b78f8ae..c2df01d 100644
--- a/pkg/front_end/testcases/native_as_name.dart.outline.expect
+++ b/pkg/front_end/testcases/native_as_name.dart.outline.expect
@@ -29,7 +29,7 @@
   field core::String f;
   synthetic constructor •() → self::Z
     ;
-  set native(core::String s) → dynamic
+  set native(core::String s) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.legacy.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.legacy.expect
index 11c8d48..d420935 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.legacy.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.legacy.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     return "bar";
   no-such-method-forwarder get foo() → core::int
     return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 1, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} core::int;
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.legacy.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.legacy.transformed.expect
index 11c8d48..d420935 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.legacy.transformed.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     return "bar";
   no-such-method-forwarder get foo() → core::int
     return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 1, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} core::int;
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.outline.expect
index 1756340..e7230a4 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.outline.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.outline.expect
@@ -10,7 +10,7 @@
 class A extends core::Object implements self::I {
   synthetic constructor •() → self::A
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     ;
   no-such-method-forwarder get foo() → core::int
     return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 1, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} core::int;
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.strong.expect
index 2e65c41..8387d6d 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.strong.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.strong.expect
@@ -34,6 +34,6 @@
 }
 static method main() → dynamic {
   self::A a = new self::A::•();
-  self::expectTypeError(() → core::int => a.{self::A::foo});
+  self::expectTypeError(() → core::int => a.{self::I::foo});
   self::expectTypeError(() → core::String => (a as dynamic).foo = "bar");
 }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.strong.transformed.expect
index 2e65c41..8387d6d 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field.dart.strong.transformed.expect
@@ -34,6 +34,6 @@
 }
 static method main() → dynamic {
   self::A a = new self::A::•();
-  self::expectTypeError(() → core::int => a.{self::A::foo});
+  self::expectTypeError(() → core::int => a.{self::I::foo});
   self::expectTypeError(() → core::String => (a as dynamic).foo = "bar");
 }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.legacy.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.legacy.expect
index 0e0e756..fa7bf1f 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.legacy.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.legacy.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic i) → dynamic {
+  method noSuchMethod(core::Invocation i) → dynamic {
     self::count = self::count.+(1);
     return null;
   }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.legacy.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.legacy.transformed.expect
index e0f993c..dae5f70 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.legacy.transformed.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic i) → dynamic {
+  method noSuchMethod(core::Invocation i) → dynamic {
     self::count = self::count.+(1);
     return null;
   }
@@ -25,7 +25,7 @@
   const synthetic constructor •() → self::_C&Object&B
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic i) → dynamic {
+  method noSuchMethod(core::Invocation i) → dynamic {
     self::count = self::count.+(1);
     return null;
   }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.outline.expect
index d92df10..11ba2e6 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.outline.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.outline.expect
@@ -10,7 +10,7 @@
 class B extends core::Object implements self::A {
   synthetic constructor •() → self::B
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     ;
   no-such-method-forwarder get foo() → core::int
     return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 1, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} core::int;
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.legacy.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.legacy.expect
index c7fedd2..b172437 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.legacy.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.legacy.expect
@@ -14,7 +14,7 @@
     ;
   get foo() → core::int
     return 42;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     return "bar";
 }
 class C extends self::B {
@@ -29,7 +29,7 @@
     : super core::Object::•()
     ;
   set foo(core::int value) → void {}
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     return "bar";
 }
 class E extends self::D {
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.legacy.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.legacy.transformed.expect
index c7fedd2..b172437 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.legacy.transformed.expect
@@ -14,7 +14,7 @@
     ;
   get foo() → core::int
     return 42;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     return "bar";
 }
 class C extends self::B {
@@ -29,7 +29,7 @@
     : super core::Object::•()
     ;
   set foo(core::int value) → void {}
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     return "bar";
 }
 class E extends self::D {
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.outline.expect
index 523367d..ed38e84 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.outline.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.outline.expect
@@ -12,7 +12,7 @@
     ;
   get foo() → core::int
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     ;
 }
 class C extends self::B {
@@ -26,7 +26,7 @@
     ;
   set foo(core::int value) → void
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     ;
 }
 class E extends self::D {
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.strong.expect
index cb4a71e..7417039 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.strong.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.strong.expect
@@ -51,5 +51,5 @@
   self::C c = new self::C::•();
   self::expectTypeError(() → core::String => (c as dynamic).foo = "bar");
   self::E e = new self::E::•();
-  self::expectTypeError(() → core::int => e.{self::E::foo});
+  self::expectTypeError(() → core::int => e.{self::A::foo});
 }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.strong.transformed.expect
index cb4a71e..7417039 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_one_defined.dart.strong.transformed.expect
@@ -51,5 +51,5 @@
   self::C c = new self::C::•();
   self::expectTypeError(() → core::String => (c as dynamic).foo = "bar");
   self::E e = new self::E::•();
-  self::expectTypeError(() → core::int => e.{self::E::foo});
+  self::expectTypeError(() → core::int => e.{self::A::foo});
 }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.legacy.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.legacy.expect
index ed949f6..3daf444 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.legacy.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.legacy.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     return <dynamic>[];
   no-such-method-forwarder get foo() → core::List<core::int>
     return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 1, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} core::List<core::int>;
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.legacy.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.legacy.transformed.expect
index ed949f6..3daf444 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.legacy.transformed.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     return <dynamic>[];
   no-such-method-forwarder get foo() → core::List<core::int>
     return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 1, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} core::List<core::int>;
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.outline.expect
index 9679fbf..0cdcb88 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.outline.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.outline.expect
@@ -10,7 +10,7 @@
 class B extends core::Object implements self::A<core::int> {
   synthetic constructor •() → self::B
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     ;
   no-such-method-forwarder get foo() → core::List<core::int>
     return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 1, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} core::List<core::int>;
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.strong.expect
index 0b0b415..a705020 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.strong.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.strong.expect
@@ -29,6 +29,6 @@
 }
 static method main() → dynamic {
   self::B b = new self::B::•();
-  self::expectTypeError(() → core::List<core::int> => b.{self::B::foo});
+  self::expectTypeError(() → core::List<core::int> => b.{self::A::foo});
   self::expectTypeError(() → core::List<dynamic> => (b as dynamic).foo = <dynamic>[]);
 }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.strong.transformed.expect
index 0b0b415..a705020 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_with_substitution.dart.strong.transformed.expect
@@ -29,6 +29,6 @@
 }
 static method main() → dynamic {
   self::B b = new self::B::•();
-  self::expectTypeError(() → core::List<core::int> => b.{self::B::foo});
+  self::expectTypeError(() → core::List<core::int> => b.{self::A::foo});
   self::expectTypeError(() → core::List<dynamic> => (b as dynamic).foo = <dynamic>[]);
 }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.legacy.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.legacy.expect
index 521bedd..b71a516 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.legacy.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.legacy.expect
@@ -18,7 +18,7 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     return null;
   no-such-method-forwarder method foo() → dynamic
     return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} dynamic;
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.legacy.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.legacy.transformed.expect
index 528ca88..7cd29a7 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.legacy.transformed.expect
@@ -18,7 +18,7 @@
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     return null;
   no-such-method-forwarder method foo() → dynamic
     return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} dynamic;
@@ -27,7 +27,7 @@
   synthetic constructor •() → self::_C&A&B
     : super self::A::•()
     ;
-  method noSuchMethod(dynamic _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     return null;
 }
 class C extends self::_C&A&B {
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.outline.expect
index 8007c45..f04505e 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.outline.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.outline.expect
@@ -16,7 +16,7 @@
 class B extends core::Object implements self::I {
   synthetic constructor •() → self::B
     ;
-  method noSuchMethod(dynamic _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     ;
   no-such-method-forwarder method foo() → dynamic
     return this.{self::B::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} dynamic;
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/default_argument_values.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/default_argument_values.dart.strong.expect
index 5f6f35b..075405d 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/default_argument_values.dart.strong.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/default_argument_values.dart.strong.expect
@@ -31,10 +31,10 @@
 static method main() → dynamic {
   self::B b = new self::B::•();
   dynamic value;
-  if(!(value = b.{self::B::foo}()).{core::String::==}("baz")) {
+  if(!(value = b.{self::A::foo}()).{core::String::==}("baz")) {
     throw "Unexpected value: '${value}'; expected 'baz'.";
   }
-  if(!(value = b.{self::B::hest}()).{core::num::==}(42)) {
+  if(!(value = b.{self::A::hest}()).{core::num::==}(42)) {
     throw "Unexpected value: '${value}'; expected '42'.";
   }
 }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/default_argument_values.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/default_argument_values.dart.strong.transformed.expect
index 5f6f35b..075405d 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/default_argument_values.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/default_argument_values.dart.strong.transformed.expect
@@ -31,10 +31,10 @@
 static method main() → dynamic {
   self::B b = new self::B::•();
   dynamic value;
-  if(!(value = b.{self::B::foo}()).{core::String::==}("baz")) {
+  if(!(value = b.{self::A::foo}()).{core::String::==}("baz")) {
     throw "Unexpected value: '${value}'; expected 'baz'.";
   }
-  if(!(value = b.{self::B::hest}()).{core::num::==}(42)) {
+  if(!(value = b.{self::A::hest}()).{core::num::==}(42)) {
     throw "Unexpected value: '${value}'; expected '42'.";
   }
 }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes.dart.legacy.expect b/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes.dart.legacy.expect
index f0470a5..f405f12 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes.dart.legacy.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes.dart.legacy.expect
@@ -6,7 +6,7 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     return null;
   abstract method foo() → void;
 }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes.dart.legacy.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes.dart.legacy.transformed.expect
index f0470a5..f405f12 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes.dart.legacy.transformed.expect
@@ -6,7 +6,7 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     return null;
   abstract method foo() → void;
 }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes.dart.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes.dart.outline.expect
index 32e8f80..e5f2ba8 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes.dart.outline.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes.dart.outline.expect
@@ -5,7 +5,7 @@
 abstract class A extends core::Object {
   synthetic constructor •() → self::A
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     ;
   abstract method foo() → void;
 }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes_chain.dart.legacy.expect b/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes_chain.dart.legacy.expect
index bf620af..05f2839 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes_chain.dart.legacy.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes_chain.dart.legacy.expect
@@ -6,7 +6,7 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     return null;
   abstract method foo() → void;
 }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes_chain.dart.legacy.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes_chain.dart.legacy.transformed.expect
index bf620af..05f2839 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes_chain.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes_chain.dart.legacy.transformed.expect
@@ -6,7 +6,7 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     return null;
   abstract method foo() → void;
 }
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes_chain.dart.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes_chain.dart.outline.expect
index e72d0cf..df83640 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes_chain.dart.outline.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/no_forwarders_for_abstract_classes_chain.dart.outline.expect
@@ -5,7 +5,7 @@
 abstract class A extends core::Object {
   synthetic constructor •() → self::A
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     ;
   abstract method foo() → void;
 }
diff --git a/pkg/front_end/testcases/operators.dart.legacy.expect b/pkg/front_end/testcases/operators.dart.legacy.expect
index 9760fe2..639223b 100644
--- a/pkg/front_end/testcases/operators.dart.legacy.expect
+++ b/pkg/front_end/testcases/operators.dart.legacy.expect
@@ -18,7 +18,7 @@
     return null;
   operator /(dynamic other) → dynamic
     return null;
-  operator ==(dynamic other) → dynamic
+  operator ==(dynamic other) → core::bool
     return null;
   operator >(dynamic other) → dynamic
     return null;
diff --git a/pkg/front_end/testcases/operators.dart.legacy.transformed.expect b/pkg/front_end/testcases/operators.dart.legacy.transformed.expect
index 9760fe2..639223b 100644
--- a/pkg/front_end/testcases/operators.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/operators.dart.legacy.transformed.expect
@@ -18,7 +18,7 @@
     return null;
   operator /(dynamic other) → dynamic
     return null;
-  operator ==(dynamic other) → dynamic
+  operator ==(dynamic other) → core::bool
     return null;
   operator >(dynamic other) → dynamic
     return null;
diff --git a/pkg/front_end/testcases/operators.dart.outline.expect b/pkg/front_end/testcases/operators.dart.outline.expect
index 22aa8c4..68ed1ff 100644
--- a/pkg/front_end/testcases/operators.dart.outline.expect
+++ b/pkg/front_end/testcases/operators.dart.outline.expect
@@ -17,7 +17,7 @@
     ;
   operator /(dynamic other) → dynamic
     ;
-  operator ==(dynamic other) → dynamic
+  operator ==(dynamic other) → core::bool
     ;
   operator >(dynamic other) → dynamic
     ;
diff --git a/pkg/front_end/testcases/optional.dart.outline.expect b/pkg/front_end/testcases/optional.dart.outline.expect
index 0f681fd..03d2b6e 100644
--- a/pkg/front_end/testcases/optional.dart.outline.expect
+++ b/pkg/front_end/testcases/optional.dart.outline.expect
@@ -22,13 +22,13 @@
 class TestListener extends self::Listener {
   synthetic constructor •() → self::TestListener
     ;
-  method event(dynamic input, [dynamic x, dynamic y]) → void
+  method event(core::String input, [core::int x, core::int y]) → void
     ;
 }
 class ExtendedListener extends self::Listener {
   synthetic constructor •() → self::ExtendedListener
     ;
-  method event(dynamic input, [dynamic x, dynamic y, dynamic z]) → void
+  method event(core::String input, [core::int x, core::int y, dynamic z]) → void
     ;
 }
 class InvalidListener extends core::Object {
diff --git a/pkg/front_end/testcases/override_check_accessor_after_inference.dart.legacy.expect b/pkg/front_end/testcases/override_check_accessor_after_inference.dart.legacy.expect
index cf84a61..b8259ec 100644
--- a/pkg/front_end/testcases/override_check_accessor_after_inference.dart.legacy.expect
+++ b/pkg/front_end/testcases/override_check_accessor_after_inference.dart.legacy.expect
@@ -24,8 +24,8 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  set x(dynamic value) → void {}
-  get y() → dynamic
+  set x(self::A value) → void {}
+  get y() → self::B
     return null;
 }
 class E extends self::D {
diff --git a/pkg/front_end/testcases/override_check_accessor_after_inference.dart.legacy.transformed.expect b/pkg/front_end/testcases/override_check_accessor_after_inference.dart.legacy.transformed.expect
index cf84a61..b8259ec 100644
--- a/pkg/front_end/testcases/override_check_accessor_after_inference.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/override_check_accessor_after_inference.dart.legacy.transformed.expect
@@ -24,8 +24,8 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  set x(dynamic value) → void {}
-  get y() → dynamic
+  set x(self::A value) → void {}
+  get y() → self::B
     return null;
 }
 class E extends self::D {
diff --git a/pkg/front_end/testcases/override_check_accessor_after_inference.dart.outline.expect b/pkg/front_end/testcases/override_check_accessor_after_inference.dart.outline.expect
index 98a1f1b..f6baaa1 100644
--- a/pkg/front_end/testcases/override_check_accessor_after_inference.dart.outline.expect
+++ b/pkg/front_end/testcases/override_check_accessor_after_inference.dart.outline.expect
@@ -21,9 +21,9 @@
 class D extends self::C {
   synthetic constructor •() → self::D
     ;
-  set x(dynamic value) → void
+  set x(self::A value) → void
     ;
-  get y() → dynamic
+  get y() → self::B
     ;
 }
 class E extends self::D {
diff --git a/pkg/front_end/testcases/override_check_accessor_with_covariant_modifier.dart.legacy.expect b/pkg/front_end/testcases/override_check_accessor_with_covariant_modifier.dart.legacy.expect
index 7a03141..ec9f575 100644
--- a/pkg/front_end/testcases/override_check_accessor_with_covariant_modifier.dart.legacy.expect
+++ b/pkg/front_end/testcases/override_check_accessor_with_covariant_modifier.dart.legacy.expect
@@ -27,7 +27,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  set x1(self::B value) → void {}
+  set x1(covariant self::B value) → void {}
   set x2(covariant self::B value) → void {}
   set x3(covariant self::B value) → void {}
   set x4(self::B value) → void {}
diff --git a/pkg/front_end/testcases/override_check_accessor_with_covariant_modifier.dart.legacy.transformed.expect b/pkg/front_end/testcases/override_check_accessor_with_covariant_modifier.dart.legacy.transformed.expect
index 7a03141..ec9f575 100644
--- a/pkg/front_end/testcases/override_check_accessor_with_covariant_modifier.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/override_check_accessor_with_covariant_modifier.dart.legacy.transformed.expect
@@ -27,7 +27,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  set x1(self::B value) → void {}
+  set x1(covariant self::B value) → void {}
   set x2(covariant self::B value) → void {}
   set x3(covariant self::B value) → void {}
   set x4(self::B value) → void {}
diff --git a/pkg/front_end/testcases/override_check_accessor_with_covariant_modifier.dart.outline.expect b/pkg/front_end/testcases/override_check_accessor_with_covariant_modifier.dart.outline.expect
index f5ae95c..eb8c429 100644
--- a/pkg/front_end/testcases/override_check_accessor_with_covariant_modifier.dart.outline.expect
+++ b/pkg/front_end/testcases/override_check_accessor_with_covariant_modifier.dart.outline.expect
@@ -29,7 +29,7 @@
 class D extends self::C {
   synthetic constructor •() → self::D
     ;
-  set x1(self::B value) → void
+  set x1(covariant self::B value) → void
     ;
   set x2(covariant self::B value) → void
     ;
diff --git a/pkg/front_end/testcases/override_check_after_inference.dart.legacy.expect b/pkg/front_end/testcases/override_check_after_inference.dart.legacy.expect
index deaf420..adf56f6 100644
--- a/pkg/front_end/testcases/override_check_after_inference.dart.legacy.expect
+++ b/pkg/front_end/testcases/override_check_after_inference.dart.legacy.expect
@@ -22,7 +22,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method f(dynamic x) → void {}
+  method f(self::A x) → void {}
 }
 class E extends self::D {
   synthetic constructor •() → self::E
diff --git a/pkg/front_end/testcases/override_check_after_inference.dart.legacy.transformed.expect b/pkg/front_end/testcases/override_check_after_inference.dart.legacy.transformed.expect
index deaf420..adf56f6 100644
--- a/pkg/front_end/testcases/override_check_after_inference.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/override_check_after_inference.dart.legacy.transformed.expect
@@ -22,7 +22,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method f(dynamic x) → void {}
+  method f(self::A x) → void {}
 }
 class E extends self::D {
   synthetic constructor •() → self::E
diff --git a/pkg/front_end/testcases/override_check_after_inference.dart.outline.expect b/pkg/front_end/testcases/override_check_after_inference.dart.outline.expect
index 82c9ce4..6f3f1e6 100644
--- a/pkg/front_end/testcases/override_check_after_inference.dart.outline.expect
+++ b/pkg/front_end/testcases/override_check_after_inference.dart.outline.expect
@@ -19,7 +19,7 @@
 class D extends self::C {
   synthetic constructor •() → self::D
     ;
-  method f(dynamic x) → void
+  method f(self::A x) → void
     ;
 }
 class E extends self::D {
diff --git a/pkg/front_end/testcases/override_check_two_substitutions.dart.legacy.expect b/pkg/front_end/testcases/override_check_two_substitutions.dart.legacy.expect
index dd0c4d5..05d92ea 100644
--- a/pkg/front_end/testcases/override_check_two_substitutions.dart.legacy.expect
+++ b/pkg/front_end/testcases/override_check_two_substitutions.dart.legacy.expect
@@ -12,6 +12,6 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  method f<V extends core::Object = dynamic>(core::Map<core::String, self::B::f::V> m) → void {}
+  method f<V extends core::Object = dynamic>(generic-covariant-impl core::Map<core::String, self::B::f::V> m) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/override_check_two_substitutions.dart.legacy.transformed.expect b/pkg/front_end/testcases/override_check_two_substitutions.dart.legacy.transformed.expect
index dd0c4d5..05d92ea 100644
--- a/pkg/front_end/testcases/override_check_two_substitutions.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/override_check_two_substitutions.dart.legacy.transformed.expect
@@ -12,6 +12,6 @@
   synthetic constructor •() → self::B
     : super self::A::•()
     ;
-  method f<V extends core::Object = dynamic>(core::Map<core::String, self::B::f::V> m) → void {}
+  method f<V extends core::Object = dynamic>(generic-covariant-impl core::Map<core::String, self::B::f::V> m) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/override_check_two_substitutions.dart.outline.expect b/pkg/front_end/testcases/override_check_two_substitutions.dart.outline.expect
index e836ac4..713595c 100644
--- a/pkg/front_end/testcases/override_check_two_substitutions.dart.outline.expect
+++ b/pkg/front_end/testcases/override_check_two_substitutions.dart.outline.expect
@@ -11,7 +11,7 @@
 class B extends self::A<core::String> {
   synthetic constructor •() → self::B
     ;
-  method f<V extends core::Object = dynamic>(core::Map<core::String, self::B::f::V> m) → void
+  method f<V extends core::Object = dynamic>(generic-covariant-impl core::Map<core::String, self::B::f::V> m) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/override_check_with_covariant_modifier.dart.legacy.expect b/pkg/front_end/testcases/override_check_with_covariant_modifier.dart.legacy.expect
index bd8f94e..30f268c 100644
--- a/pkg/front_end/testcases/override_check_with_covariant_modifier.dart.legacy.expect
+++ b/pkg/front_end/testcases/override_check_with_covariant_modifier.dart.legacy.expect
@@ -27,7 +27,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method f1(self::B x) → void {}
+  method f1(covariant self::B x) → void {}
   method f2(covariant self::B x) → void {}
   method f3(covariant self::B x) → void {}
   method f4(self::B x) → void {}
diff --git a/pkg/front_end/testcases/override_check_with_covariant_modifier.dart.legacy.transformed.expect b/pkg/front_end/testcases/override_check_with_covariant_modifier.dart.legacy.transformed.expect
index bd8f94e..30f268c 100644
--- a/pkg/front_end/testcases/override_check_with_covariant_modifier.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/override_check_with_covariant_modifier.dart.legacy.transformed.expect
@@ -27,7 +27,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method f1(self::B x) → void {}
+  method f1(covariant self::B x) → void {}
   method f2(covariant self::B x) → void {}
   method f3(covariant self::B x) → void {}
   method f4(self::B x) → void {}
diff --git a/pkg/front_end/testcases/override_check_with_covariant_modifier.dart.outline.expect b/pkg/front_end/testcases/override_check_with_covariant_modifier.dart.outline.expect
index 2d4aa32..5ff196d 100644
--- a/pkg/front_end/testcases/override_check_with_covariant_modifier.dart.outline.expect
+++ b/pkg/front_end/testcases/override_check_with_covariant_modifier.dart.outline.expect
@@ -29,7 +29,7 @@
 class D extends self::C {
   synthetic constructor •() → self::D
     ;
-  method f1(self::B x) → void
+  method f1(covariant self::B x) → void
     ;
   method f2(covariant self::B x) → void
     ;
diff --git a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.legacy.expect b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.legacy.expect
index 5a47079..ad364e1 100644
--- a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.legacy.expect
+++ b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.legacy.expect
@@ -15,7 +15,7 @@
   C() : field = null;
         ^^^^^"
     ;
-  set field(dynamic value) → dynamic {}
+  set field(dynamic value) → void {}
 }
 static method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.legacy.transformed.expect b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.legacy.transformed.expect
index 5a47079..ad364e1 100644
--- a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.legacy.transformed.expect
@@ -15,7 +15,7 @@
   C() : field = null;
         ^^^^^"
     ;
-  set field(dynamic value) → dynamic {}
+  set field(dynamic value) → void {}
 }
 static method main() → dynamic {
   new self::C::•();
diff --git a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.outline.expect b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.outline.expect
index 97d6cdd..1f58e29 100644
--- a/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.outline.expect
+++ b/pkg/front_end/testcases/rasta/bad_setter_initializer.dart.outline.expect
@@ -5,7 +5,7 @@
 class C extends core::Object {
   constructor •() → self::C
     ;
-  set field(dynamic value) → dynamic
+  set field(dynamic value) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/rasta/issue_000025.dart.legacy.expect b/pkg/front_end/testcases/rasta/issue_000025.dart.legacy.expect
index 5fabc15..3be7ccc 100644
--- a/pkg/front_end/testcases/rasta/issue_000025.dart.legacy.expect
+++ b/pkg/front_end/testcases/rasta/issue_000025.dart.legacy.expect
@@ -4,7 +4,7 @@
 
 static get x() → dynamic
   return 42;
-static set x(dynamic val) → dynamic {}
+static set x(dynamic val) → void {}
 static method main() → dynamic {
   core::print(self::x);
   core::print(self::x = 87);
diff --git a/pkg/front_end/testcases/rasta/issue_000025.dart.legacy.transformed.expect b/pkg/front_end/testcases/rasta/issue_000025.dart.legacy.transformed.expect
index 5fabc15..3be7ccc 100644
--- a/pkg/front_end/testcases/rasta/issue_000025.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000025.dart.legacy.transformed.expect
@@ -4,7 +4,7 @@
 
 static get x() → dynamic
   return 42;
-static set x(dynamic val) → dynamic {}
+static set x(dynamic val) → void {}
 static method main() → dynamic {
   core::print(self::x);
   core::print(self::x = 87);
diff --git a/pkg/front_end/testcases/rasta/issue_000025.dart.outline.expect b/pkg/front_end/testcases/rasta/issue_000025.dart.outline.expect
index aab1950..8ee979d 100644
--- a/pkg/front_end/testcases/rasta/issue_000025.dart.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000025.dart.outline.expect
@@ -3,7 +3,7 @@
 
 static get x() → dynamic
   ;
-static set x(dynamic val) → dynamic
+static set x(dynamic val) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/rasta/issue_000053.dart.legacy.expect b/pkg/front_end/testcases/rasta/issue_000053.dart.legacy.expect
index 230c10b..4dbd973 100644
--- a/pkg/front_end/testcases/rasta/issue_000053.dart.legacy.expect
+++ b/pkg/front_end/testcases/rasta/issue_000053.dart.legacy.expect
@@ -6,7 +6,7 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  operator ==(dynamic other) → dynamic
+  operator ==(dynamic other) → core::bool
     return throw "x";
   method test() → dynamic {
     super.{core::Object::==}(null);
diff --git a/pkg/front_end/testcases/rasta/issue_000053.dart.legacy.transformed.expect b/pkg/front_end/testcases/rasta/issue_000053.dart.legacy.transformed.expect
index 230c10b..4dbd973 100644
--- a/pkg/front_end/testcases/rasta/issue_000053.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000053.dart.legacy.transformed.expect
@@ -6,7 +6,7 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  operator ==(dynamic other) → dynamic
+  operator ==(dynamic other) → core::bool
     return throw "x";
   method test() → dynamic {
     super.{core::Object::==}(null);
diff --git a/pkg/front_end/testcases/rasta/issue_000053.dart.outline.expect b/pkg/front_end/testcases/rasta/issue_000053.dart.outline.expect
index bc032b0..f3f1fd5 100644
--- a/pkg/front_end/testcases/rasta/issue_000053.dart.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000053.dart.outline.expect
@@ -5,7 +5,7 @@
 class C extends core::Object {
   synthetic constructor •() → self::C
     ;
-  operator ==(dynamic other) → dynamic
+  operator ==(dynamic other) → core::bool
     ;
   method test() → dynamic
     ;
diff --git a/pkg/front_end/testcases/rasta/issue_000081.dart.outline.expect b/pkg/front_end/testcases/rasta/issue_000081.dart.outline.expect
index cb7bd6b..b12559d 100644
--- a/pkg/front_end/testcases/rasta/issue_000081.dart.outline.expect
+++ b/pkg/front_end/testcases/rasta/issue_000081.dart.outline.expect
@@ -11,7 +11,7 @@
   field core::int _hashCode;
   synthetic constructor •() → self::Sub
     ;
-  get hashCode() → dynamic
+  get hashCode() → core::int
     ;
   method foo() → dynamic
     ;
diff --git a/pkg/front_end/testcases/rasta/native_is_illegal.dart.outline.expect b/pkg/front_end/testcases/rasta/native_is_illegal.dart.outline.expect
index a7ea25b..fc3831b 100644
--- a/pkg/front_end/testcases/rasta/native_is_illegal.dart.outline.expect
+++ b/pkg/front_end/testcases/rasta/native_is_illegal.dart.outline.expect
@@ -5,7 +5,7 @@
 class Bar extends core::Object {
   get x() → self::Bar
     ;
-  set x(self::Bar value) → dynamic
+  set x(self::Bar value) → void
     ;
   method f() → dynamic
     ;
diff --git a/pkg/front_end/testcases/rasta/static.dart.legacy.expect b/pkg/front_end/testcases/rasta/static.dart.legacy.expect
index 70d0f8c..b9c1b3e 100644
--- a/pkg/front_end/testcases/rasta/static.dart.legacy.expect
+++ b/pkg/front_end/testcases/rasta/static.dart.legacy.expect
@@ -150,7 +150,7 @@
   static method staticFunction() → dynamic {}
   static get staticGetter() → dynamic
     return null;
-  static set staticSetter(dynamic _) → dynamic {}
+  static set staticSetter(dynamic _) → void {}
 }
 static method use(dynamic x) → dynamic {
   if(x.==(new core::DateTime::now().millisecondsSinceEpoch))
diff --git a/pkg/front_end/testcases/rasta/static.dart.legacy.transformed.expect b/pkg/front_end/testcases/rasta/static.dart.legacy.transformed.expect
index 70d0f8c..b9c1b3e 100644
--- a/pkg/front_end/testcases/rasta/static.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/rasta/static.dart.legacy.transformed.expect
@@ -150,7 +150,7 @@
   static method staticFunction() → dynamic {}
   static get staticGetter() → dynamic
     return null;
-  static set staticSetter(dynamic _) → dynamic {}
+  static set staticSetter(dynamic _) → void {}
 }
 static method use(dynamic x) → dynamic {
   if(x.==(new core::DateTime::now().millisecondsSinceEpoch))
diff --git a/pkg/front_end/testcases/rasta/static.dart.outline.expect b/pkg/front_end/testcases/rasta/static.dart.outline.expect
index f9b177a..2e9d362 100644
--- a/pkg/front_end/testcases/rasta/static.dart.outline.expect
+++ b/pkg/front_end/testcases/rasta/static.dart.outline.expect
@@ -11,7 +11,7 @@
     ;
   static get staticGetter() → dynamic
     ;
-  static set staticSetter(dynamic _) → dynamic
+  static set staticSetter(dynamic _) → void
     ;
 }
 static method use(dynamic x) → dynamic
diff --git a/pkg/front_end/testcases/rasta/super.dart.legacy.expect b/pkg/front_end/testcases/rasta/super.dart.legacy.expect
index 55dfd57..dbd7908 100644
--- a/pkg/front_end/testcases/rasta/super.dart.legacy.expect
+++ b/pkg/front_end/testcases/rasta/super.dart.legacy.expect
@@ -253,24 +253,24 @@
     ;
   get e() → dynamic
     return null;
-  set g(dynamic _) → dynamic {}
+  set g(dynamic _) → void {}
   get h() → dynamic
     return null;
-  set h(dynamic _) → dynamic {}
+  set h(dynamic _) → void {}
   get i() → dynamic
     return null;
   operator [](dynamic _) → dynamic
     return null;
-  operator []=(dynamic a, dynamic b) → dynamic {}
+  operator []=(dynamic a, dynamic b) → void {}
   operator ~() → dynamic
     return 117;
   operator unary-() → dynamic
     return 117;
-  operator ==(dynamic other) → dynamic
+  operator ==(dynamic other) → core::bool
     return true;
   method m() → void {}
   method n() → void {}
-  set n(dynamic _) → dynamic {}
+  set n(dynamic _) → void {}
 }
 class B extends self::A {
   final field dynamic d = null;
@@ -279,8 +279,8 @@
     ;
   get b() → dynamic
     return null;
-  set c(dynamic x) → dynamic {}
-  set i(dynamic x) → dynamic {}
+  set c(dynamic x) → void {}
+  set i(dynamic x) → void {}
 }
 class C extends self::B {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/rasta/super.dart.legacy.transformed.expect b/pkg/front_end/testcases/rasta/super.dart.legacy.transformed.expect
index 55dfd57..dbd7908 100644
--- a/pkg/front_end/testcases/rasta/super.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/rasta/super.dart.legacy.transformed.expect
@@ -253,24 +253,24 @@
     ;
   get e() → dynamic
     return null;
-  set g(dynamic _) → dynamic {}
+  set g(dynamic _) → void {}
   get h() → dynamic
     return null;
-  set h(dynamic _) → dynamic {}
+  set h(dynamic _) → void {}
   get i() → dynamic
     return null;
   operator [](dynamic _) → dynamic
     return null;
-  operator []=(dynamic a, dynamic b) → dynamic {}
+  operator []=(dynamic a, dynamic b) → void {}
   operator ~() → dynamic
     return 117;
   operator unary-() → dynamic
     return 117;
-  operator ==(dynamic other) → dynamic
+  operator ==(dynamic other) → core::bool
     return true;
   method m() → void {}
   method n() → void {}
-  set n(dynamic _) → dynamic {}
+  set n(dynamic _) → void {}
 }
 class B extends self::A {
   final field dynamic d = null;
@@ -279,8 +279,8 @@
     ;
   get b() → dynamic
     return null;
-  set c(dynamic x) → dynamic {}
-  set i(dynamic x) → dynamic {}
+  set c(dynamic x) → void {}
+  set i(dynamic x) → void {}
 }
 class C extends self::B {
   synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/rasta/super.dart.outline.expect b/pkg/front_end/testcases/rasta/super.dart.outline.expect
index d668783..9b0da41 100644
--- a/pkg/front_end/testcases/rasta/super.dart.outline.expect
+++ b/pkg/front_end/testcases/rasta/super.dart.outline.expect
@@ -22,29 +22,29 @@
     ;
   get e() → dynamic
     ;
-  set g(dynamic _) → dynamic
+  set g(dynamic _) → void
     ;
   get h() → dynamic
     ;
-  set h(dynamic _) → dynamic
+  set h(dynamic _) → void
     ;
   get i() → dynamic
     ;
   operator [](dynamic _) → dynamic
     ;
-  operator []=(dynamic a, dynamic b) → dynamic
+  operator []=(dynamic a, dynamic b) → void
     ;
   operator ~() → dynamic
     ;
   operator unary-() → dynamic
     ;
-  operator ==(dynamic other) → dynamic
+  operator ==(dynamic other) → core::bool
     ;
   method m() → void
     ;
   method n() → void
     ;
-  set n(dynamic _) → dynamic
+  set n(dynamic _) → void
     ;
 }
 class B extends self::A {
@@ -53,9 +53,9 @@
     ;
   get b() → dynamic
     ;
-  set c(dynamic x) → dynamic
+  set c(dynamic x) → void
     ;
-  set i(dynamic x) → dynamic
+  set i(dynamic x) → void
     ;
 }
 class C extends self::B {
diff --git a/pkg/front_end/testcases/rasta/super_operator.dart.outline.expect b/pkg/front_end/testcases/rasta/super_operator.dart.outline.expect
index d0ecc4d..01e59ad 100644
--- a/pkg/front_end/testcases/rasta/super_operator.dart.outline.expect
+++ b/pkg/front_end/testcases/rasta/super_operator.dart.outline.expect
@@ -9,7 +9,7 @@
     ;
   operator [](dynamic i) → dynamic
     ;
-  operator []=(dynamic i, dynamic val) → dynamic
+  operator []=(dynamic i, dynamic val) → void
     ;
 }
 class B extends self::A {
@@ -19,7 +19,7 @@
     ;
   operator [](dynamic i) → dynamic
     ;
-  operator []=(dynamic i, dynamic val) → dynamic
+  operator []=(dynamic i, dynamic val) → void
     ;
 }
 class Autobianchi extends core::Object {
diff --git a/pkg/front_end/testcases/redirection_chain_type_arguments.dart.legacy.expect b/pkg/front_end/testcases/redirection_chain_type_arguments.dart.legacy.expect
index bba4f23..32a5b17 100644
--- a/pkg/front_end/testcases/redirection_chain_type_arguments.dart.legacy.expect
+++ b/pkg/front_end/testcases/redirection_chain_type_arguments.dart.legacy.expect
@@ -25,7 +25,7 @@
   constructor •() → self::C<self::C::V, self::C::S, self::C::R>
     : super self::B::empty()
     ;
-  method toString() → dynamic
+  method toString() → core::String
     return "${self::C::V},${self::C::S},${self::C::R}";
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/redirection_chain_type_arguments.dart.legacy.transformed.expect b/pkg/front_end/testcases/redirection_chain_type_arguments.dart.legacy.transformed.expect
index bba4f23..32a5b17 100644
--- a/pkg/front_end/testcases/redirection_chain_type_arguments.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/redirection_chain_type_arguments.dart.legacy.transformed.expect
@@ -25,7 +25,7 @@
   constructor •() → self::C<self::C::V, self::C::S, self::C::R>
     : super self::B::empty()
     ;
-  method toString() → dynamic
+  method toString() → core::String
     return "${self::C::V},${self::C::S},${self::C::R}";
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/redirection_chain_type_arguments.dart.outline.expect b/pkg/front_end/testcases/redirection_chain_type_arguments.dart.outline.expect
index 3b0ee19..d4a0e63 100644
--- a/pkg/front_end/testcases/redirection_chain_type_arguments.dart.outline.expect
+++ b/pkg/front_end/testcases/redirection_chain_type_arguments.dart.outline.expect
@@ -21,7 +21,7 @@
 class C<V extends core::Object = dynamic, S extends core::Object = dynamic, R extends core::Object = dynamic> extends self::B<self::C::V, self::C::S> {
   constructor •() → self::C<self::C::V, self::C::S, self::C::R>
     ;
-  method toString() → dynamic
+  method toString() → core::String
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/redirection_chain_type_arguments_subst.dart.legacy.expect b/pkg/front_end/testcases/redirection_chain_type_arguments_subst.dart.legacy.expect
index cee4e10..09e1d27 100644
--- a/pkg/front_end/testcases/redirection_chain_type_arguments_subst.dart.legacy.expect
+++ b/pkg/front_end/testcases/redirection_chain_type_arguments_subst.dart.legacy.expect
@@ -25,7 +25,7 @@
   constructor •() → self::C<self::C::V, self::C::S, self::C::R>
     : super self::B::empty()
     ;
-  method toString() → dynamic
+  method toString() → core::String
     return "${self::C::V},${self::C::S},${self::C::R}";
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/redirection_chain_type_arguments_subst.dart.legacy.transformed.expect b/pkg/front_end/testcases/redirection_chain_type_arguments_subst.dart.legacy.transformed.expect
index cee4e10..09e1d27 100644
--- a/pkg/front_end/testcases/redirection_chain_type_arguments_subst.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/redirection_chain_type_arguments_subst.dart.legacy.transformed.expect
@@ -25,7 +25,7 @@
   constructor •() → self::C<self::C::V, self::C::S, self::C::R>
     : super self::B::empty()
     ;
-  method toString() → dynamic
+  method toString() → core::String
     return "${self::C::V},${self::C::S},${self::C::R}";
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/redirection_chain_type_arguments_subst.dart.outline.expect b/pkg/front_end/testcases/redirection_chain_type_arguments_subst.dart.outline.expect
index 2b481ac..f9db296 100644
--- a/pkg/front_end/testcases/redirection_chain_type_arguments_subst.dart.outline.expect
+++ b/pkg/front_end/testcases/redirection_chain_type_arguments_subst.dart.outline.expect
@@ -21,7 +21,7 @@
 class C<V extends core::Object = dynamic, S extends core::Object = dynamic, R extends core::Object = dynamic> extends self::B<self::C::V, self::C::S> {
   constructor •() → self::C<self::C::V, self::C::S, self::C::R>
     ;
-  method toString() → dynamic
+  method toString() → core::String
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/redirection_type_arguments.dart.legacy.expect b/pkg/front_end/testcases/redirection_type_arguments.dart.legacy.expect
index 2fff34d..0dc1e9e 100644
--- a/pkg/front_end/testcases/redirection_type_arguments.dart.legacy.expect
+++ b/pkg/front_end/testcases/redirection_type_arguments.dart.legacy.expect
@@ -17,7 +17,7 @@
   const constructor •() → self::B<self::B::T>
     : super self::A::empty()
     ;
-  method toString() → dynamic
+  method toString() → core::String
     return "${self::B::T}";
 }
 static method main() → void {
diff --git a/pkg/front_end/testcases/redirection_type_arguments.dart.legacy.transformed.expect b/pkg/front_end/testcases/redirection_type_arguments.dart.legacy.transformed.expect
index 2fff34d..0dc1e9e 100644
--- a/pkg/front_end/testcases/redirection_type_arguments.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/redirection_type_arguments.dart.legacy.transformed.expect
@@ -17,7 +17,7 @@
   const constructor •() → self::B<self::B::T>
     : super self::A::empty()
     ;
-  method toString() → dynamic
+  method toString() → core::String
     return "${self::B::T}";
 }
 static method main() → void {
diff --git a/pkg/front_end/testcases/redirection_type_arguments.dart.outline.expect b/pkg/front_end/testcases/redirection_type_arguments.dart.outline.expect
index 4e65df8..0fcea3e 100644
--- a/pkg/front_end/testcases/redirection_type_arguments.dart.outline.expect
+++ b/pkg/front_end/testcases/redirection_type_arguments.dart.outline.expect
@@ -14,7 +14,7 @@
 class B<T extends core::Object = dynamic> extends self::A {
   const constructor •() → self::B<self::B::T>
     ;
-  method toString() → dynamic
+  method toString() → core::String
     ;
 }
 static method main() → void
diff --git a/pkg/front_end/testcases/regress/issue_30834.dart.legacy.expect b/pkg/front_end/testcases/regress/issue_30834.dart.legacy.expect
index d90c580..2f3e686 100644
--- a/pkg/front_end/testcases/regress/issue_30834.dart.legacy.expect
+++ b/pkg/front_end/testcases/regress/issue_30834.dart.legacy.expect
@@ -13,7 +13,7 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  set A(dynamic v) → dynamic {}
+  set A(dynamic v) → void {}
 }
 static method main() → dynamic {
   dynamic a = new self::A::•();
diff --git a/pkg/front_end/testcases/regress/issue_30834.dart.legacy.transformed.expect b/pkg/front_end/testcases/regress/issue_30834.dart.legacy.transformed.expect
index d90c580..2f3e686 100644
--- a/pkg/front_end/testcases/regress/issue_30834.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_30834.dart.legacy.transformed.expect
@@ -13,7 +13,7 @@
   synthetic constructor •() → self::A
     : super core::Object::•()
     ;
-  set A(dynamic v) → dynamic {}
+  set A(dynamic v) → void {}
 }
 static method main() → dynamic {
   dynamic a = new self::A::•();
diff --git a/pkg/front_end/testcases/regress/issue_30834.dart.outline.expect b/pkg/front_end/testcases/regress/issue_30834.dart.outline.expect
index b7a0c48..f48580b 100644
--- a/pkg/front_end/testcases/regress/issue_30834.dart.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_30834.dart.outline.expect
@@ -12,7 +12,7 @@
 class A extends core::Object {
   synthetic constructor •() → self::A
     ;
-  set A(dynamic v) → dynamic
+  set A(dynamic v) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart.hierarchy.expect b/pkg/front_end/testcases/regress/issue_32660.dart.hierarchy.expect
index 5c7b6fa..3cbcc36 100644
--- a/pkg/front_end/testcases/regress/issue_32660.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/regress/issue_32660.dart.hierarchy.expect
@@ -77,7 +77,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    A.foo
+    C.A.foo%B.foo
     C.noSuchMethod
     Object._identityHashCode
     Object.hashCode
@@ -114,7 +114,7 @@
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
-    D.foo
+    E.D.foo%E.foo
     E.noSuchMethod
     Object._identityHashCode
     Object.hashCode
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart.legacy.expect b/pkg/front_end/testcases/regress/issue_32660.dart.legacy.expect
index 46f8dc2..e4d64d6 100644
--- a/pkg/front_end/testcases/regress/issue_32660.dart.legacy.expect
+++ b/pkg/front_end/testcases/regress/issue_32660.dart.legacy.expect
@@ -1,4 +1,27 @@
 library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_32660.dart:21:3: Warning: The method 'D.foo' has fewer named arguments than those of overridden method 'E.foo'.
+//   foo(int x) => x;
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:25:3: Context: This is the overridden method ('foo').
+//   foo(int x, {int y});
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:24:7: Context: Both members are inherited by the non-abstract class 'E'.
+// class E extends D {
+//       ^
+//
+// pkg/front_end/testcases/regress/issue_32660.dart:6:3: Warning: The method 'A.foo' has fewer named arguments than those of overridden method 'B.foo'.
+//   foo(int x) => x;
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:10:3: Context: This is the overridden method ('foo').
+//   foo(int x, {int y}) => y;
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:13:7: Context: Both members are inherited by the non-abstract class 'C'.
+// class C extends A implements B {
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -20,10 +43,11 @@
   synthetic constructor •() → self::C
     : super self::A::•()
     ;
-  method noSuchMethod(dynamic i) → dynamic {
+  method noSuchMethod(core::Invocation i) → dynamic {
     core::print("No such method!");
     return 42;
   }
+  abstract forwarding-stub method foo(core::int x, {core::int y = null}) → dynamic;
 }
 class D extends core::Object {
   synthetic constructor •() → self::D
@@ -37,7 +61,7 @@
     : super self::D::•()
     ;
   abstract method foo(core::int x, {core::int y = null}) → dynamic;
-  method noSuchMethod(dynamic i) → dynamic {
+  method noSuchMethod(core::Invocation i) → dynamic {
     core::print(i.namedArguments);
     return 42;
   }
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart.legacy.transformed.expect b/pkg/front_end/testcases/regress/issue_32660.dart.legacy.transformed.expect
index 46f8dc2..e4d64d6 100644
--- a/pkg/front_end/testcases/regress/issue_32660.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_32660.dart.legacy.transformed.expect
@@ -1,4 +1,27 @@
 library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_32660.dart:21:3: Warning: The method 'D.foo' has fewer named arguments than those of overridden method 'E.foo'.
+//   foo(int x) => x;
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:25:3: Context: This is the overridden method ('foo').
+//   foo(int x, {int y});
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:24:7: Context: Both members are inherited by the non-abstract class 'E'.
+// class E extends D {
+//       ^
+//
+// pkg/front_end/testcases/regress/issue_32660.dart:6:3: Warning: The method 'A.foo' has fewer named arguments than those of overridden method 'B.foo'.
+//   foo(int x) => x;
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:10:3: Context: This is the overridden method ('foo').
+//   foo(int x, {int y}) => y;
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:13:7: Context: Both members are inherited by the non-abstract class 'C'.
+// class C extends A implements B {
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -20,10 +43,11 @@
   synthetic constructor •() → self::C
     : super self::A::•()
     ;
-  method noSuchMethod(dynamic i) → dynamic {
+  method noSuchMethod(core::Invocation i) → dynamic {
     core::print("No such method!");
     return 42;
   }
+  abstract forwarding-stub method foo(core::int x, {core::int y = null}) → dynamic;
 }
 class D extends core::Object {
   synthetic constructor •() → self::D
@@ -37,7 +61,7 @@
     : super self::D::•()
     ;
   abstract method foo(core::int x, {core::int y = null}) → dynamic;
-  method noSuchMethod(dynamic i) → dynamic {
+  method noSuchMethod(core::Invocation i) → dynamic {
     core::print(i.namedArguments);
     return 42;
   }
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart.outline.expect b/pkg/front_end/testcases/regress/issue_32660.dart.outline.expect
index 9dc571a..7b9f48b 100644
--- a/pkg/front_end/testcases/regress/issue_32660.dart.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_32660.dart.outline.expect
@@ -1,4 +1,27 @@
 library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_32660.dart:21:3: Warning: The method 'D.foo' has fewer named arguments than those of overridden method 'E.foo'.
+//   foo(int x) => x;
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:25:3: Context: This is the overridden method ('foo').
+//   foo(int x, {int y});
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:24:7: Context: Both members are inherited by the non-abstract class 'E'.
+// class E extends D {
+//       ^
+//
+// pkg/front_end/testcases/regress/issue_32660.dart:6:3: Warning: The method 'A.foo' has fewer named arguments than those of overridden method 'B.foo'.
+//   foo(int x) => x;
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:10:3: Context: This is the overridden method ('foo').
+//   foo(int x, {int y}) => y;
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:13:7: Context: Both members are inherited by the non-abstract class 'C'.
+// class C extends A implements B {
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
@@ -17,8 +40,9 @@
 class C extends self::A implements self::B {
   synthetic constructor •() → self::C
     ;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     ;
+  abstract forwarding-stub method foo(core::int x, {core::int y}) → dynamic;
 }
 class D extends core::Object {
   synthetic constructor •() → self::D
@@ -30,7 +54,7 @@
   synthetic constructor •() → self::E
     ;
   abstract method foo(core::int x, {core::int y}) → dynamic;
-  method noSuchMethod(dynamic i) → dynamic
+  method noSuchMethod(core::Invocation i) → dynamic
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart.strong.expect b/pkg/front_end/testcases/regress/issue_32660.dart.strong.expect
index 910fc65..73b1b6a 100644
--- a/pkg/front_end/testcases/regress/issue_32660.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_32660.dart.strong.expect
@@ -2,16 +2,6 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_32660.dart:6:3: Error: The method 'A.foo' has fewer named arguments than those of overridden method 'B.foo'.
-//   foo(int x) => x;
-//   ^
-// pkg/front_end/testcases/regress/issue_32660.dart:10:3: Context: This is the overridden method ('foo').
-//   foo(int x, {int y}) => y;
-//   ^
-// pkg/front_end/testcases/regress/issue_32660.dart:13:7: Context: Both members are inherited by the non-abstract class 'C'.
-// class C extends A implements B {
-//       ^
-//
 // pkg/front_end/testcases/regress/issue_32660.dart:21:3: Error: The method 'D.foo' has fewer named arguments than those of overridden method 'E.foo'.
 //   foo(int x) => x;
 //   ^
@@ -22,6 +12,16 @@
 // class E extends D {
 //       ^
 //
+// pkg/front_end/testcases/regress/issue_32660.dart:6:3: Error: The method 'A.foo' has fewer named arguments than those of overridden method 'B.foo'.
+//   foo(int x) => x;
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:10:3: Context: This is the overridden method ('foo').
+//   foo(int x, {int y}) => y;
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:13:7: Context: Both members are inherited by the non-abstract class 'C'.
+// class C extends A implements B {
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/regress/issue_32660.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_32660.dart.strong.transformed.expect
index 910fc65..73b1b6a 100644
--- a/pkg/front_end/testcases/regress/issue_32660.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_32660.dart.strong.transformed.expect
@@ -2,16 +2,6 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/regress/issue_32660.dart:6:3: Error: The method 'A.foo' has fewer named arguments than those of overridden method 'B.foo'.
-//   foo(int x) => x;
-//   ^
-// pkg/front_end/testcases/regress/issue_32660.dart:10:3: Context: This is the overridden method ('foo').
-//   foo(int x, {int y}) => y;
-//   ^
-// pkg/front_end/testcases/regress/issue_32660.dart:13:7: Context: Both members are inherited by the non-abstract class 'C'.
-// class C extends A implements B {
-//       ^
-//
 // pkg/front_end/testcases/regress/issue_32660.dart:21:3: Error: The method 'D.foo' has fewer named arguments than those of overridden method 'E.foo'.
 //   foo(int x) => x;
 //   ^
@@ -22,6 +12,16 @@
 // class E extends D {
 //       ^
 //
+// pkg/front_end/testcases/regress/issue_32660.dart:6:3: Error: The method 'A.foo' has fewer named arguments than those of overridden method 'B.foo'.
+//   foo(int x) => x;
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:10:3: Context: This is the overridden method ('foo').
+//   foo(int x, {int y}) => y;
+//   ^
+// pkg/front_end/testcases/regress/issue_32660.dart:13:7: Context: Both members are inherited by the non-abstract class 'C'.
+// class C extends A implements B {
+//       ^
+//
 import self as self;
 import "dart:core" as core;
 
diff --git a/pkg/front_end/testcases/regress/issue_34225.dart.legacy.expect b/pkg/front_end/testcases/regress/issue_34225.dart.legacy.expect
index 24e8a2a..1b764c6 100644
--- a/pkg/front_end/testcases/regress/issue_34225.dart.legacy.expect
+++ b/pkg/front_end/testcases/regress/issue_34225.dart.legacy.expect
@@ -17,13 +17,13 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  static set C(dynamic v) → dynamic {}
+  static set C(dynamic v) → void {}
 }
 class D extends core::Object {
   synthetic constructor •() → self::D
     : super core::Object::•()
     ;
-  set D(dynamic v) → dynamic {}
+  set D(dynamic v) → void {}
 }
 static method main() → dynamic {
   dynamic c = new self::C::•();
diff --git a/pkg/front_end/testcases/regress/issue_34225.dart.legacy.transformed.expect b/pkg/front_end/testcases/regress/issue_34225.dart.legacy.transformed.expect
index 24e8a2a..1b764c6 100644
--- a/pkg/front_end/testcases/regress/issue_34225.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_34225.dart.legacy.transformed.expect
@@ -17,13 +17,13 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  static set C(dynamic v) → dynamic {}
+  static set C(dynamic v) → void {}
 }
 class D extends core::Object {
   synthetic constructor •() → self::D
     : super core::Object::•()
     ;
-  set D(dynamic v) → dynamic {}
+  set D(dynamic v) → void {}
 }
 static method main() → dynamic {
   dynamic c = new self::C::•();
diff --git a/pkg/front_end/testcases/regress/issue_34225.dart.outline.expect b/pkg/front_end/testcases/regress/issue_34225.dart.outline.expect
index 4582fae..5cfdb48 100644
--- a/pkg/front_end/testcases/regress/issue_34225.dart.outline.expect
+++ b/pkg/front_end/testcases/regress/issue_34225.dart.outline.expect
@@ -16,13 +16,13 @@
 class C extends core::Object {
   synthetic constructor •() → self::C
     ;
-  static set C(dynamic v) → dynamic
+  static set C(dynamic v) → void
     ;
 }
 class D extends core::Object {
   synthetic constructor •() → self::D
     ;
-  set D(dynamic v) → dynamic
+  set D(dynamic v) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.legacy.expect
index 96700b1..2092b43 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.legacy.expect
@@ -13,15 +13,15 @@
   synthetic constructor •() → self::C<self::C::U>
     : super core::Object::•()
     ;
-  method f1(core::int x) → void {}
-  method f2(core::int x, [generic-covariant-impl self::C::U y = null]) → void {}
+  method f1(generic-covariant-impl core::int x) → void {}
+  method f2(generic-covariant-impl core::int x, [generic-covariant-impl self::C::U y = null]) → void {}
 }
 class D<U extends core::Object = dynamic> extends self::C<self::D::U> {
   synthetic constructor •() → self::D<self::D::U>
     : super self::C::•()
     ;
-  method f1(core::int x) → void {}
-  method f2(core::int x, [generic-covariant-impl self::D::U y = null]) → void {}
+  method f1(generic-covariant-impl core::int x) → void {}
+  method f2(generic-covariant-impl core::int x, [generic-covariant-impl self::D::U y = null]) → void {}
 }
 static method g1(self::C<core::num> c) → void {
   c.f1(1);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.legacy.transformed.expect
index 96700b1..2092b43 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.legacy.transformed.expect
@@ -13,15 +13,15 @@
   synthetic constructor •() → self::C<self::C::U>
     : super core::Object::•()
     ;
-  method f1(core::int x) → void {}
-  method f2(core::int x, [generic-covariant-impl self::C::U y = null]) → void {}
+  method f1(generic-covariant-impl core::int x) → void {}
+  method f2(generic-covariant-impl core::int x, [generic-covariant-impl self::C::U y = null]) → void {}
 }
 class D<U extends core::Object = dynamic> extends self::C<self::D::U> {
   synthetic constructor •() → self::D<self::D::U>
     : super self::C::•()
     ;
-  method f1(core::int x) → void {}
-  method f2(core::int x, [generic-covariant-impl self::D::U y = null]) → void {}
+  method f1(generic-covariant-impl core::int x) → void {}
+  method f2(generic-covariant-impl core::int x, [generic-covariant-impl self::D::U y = null]) → void {}
 }
 static method g1(self::C<core::num> c) → void {
   c.f1(1);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.outline.expect
index fe2f698..9779f69 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface.dart.outline.expect
@@ -11,17 +11,17 @@
 class C<U extends core::Object = dynamic> extends core::Object implements self::I<core::int> {
   synthetic constructor •() → self::C<self::C::U>
     ;
-  method f1(core::int x) → void
+  method f1(generic-covariant-impl core::int x) → void
     ;
-  method f2(core::int x, [generic-covariant-impl self::C::U y]) → void
+  method f2(generic-covariant-impl core::int x, [generic-covariant-impl self::C::U y]) → void
     ;
 }
 class D<U extends core::Object = dynamic> extends self::C<self::D::U> {
   synthetic constructor •() → self::D<self::D::U>
     ;
-  method f1(core::int x) → void
+  method f1(generic-covariant-impl core::int x) → void
     ;
-  method f2(core::int x, [generic-covariant-impl self::D::U y]) → void
+  method f2(generic-covariant-impl core::int x, [generic-covariant-impl self::D::U y]) → void
     ;
 }
 static method g1(self::C<core::num> c) → void
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.hierarchy.expect
index 6ad21c9..eee2991 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.hierarchy.expect
@@ -91,7 +91,7 @@
     Object.==
   classSetters:
   interfaceMembers:
-    M.f
+    C.M.f%I.f
     Object.toString
     Object.runtimeType
     Object._simpleInstanceOf
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.legacy.expect
index 144807a..226d14a 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.legacy.expect
@@ -24,6 +24,8 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x) → void
+    return super.{self::B::f}(x);
 }
 static method g1(self::C c) → void {
   c.f(1);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.legacy.transformed.expect
index 20d3a2e..9af26fa 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.legacy.transformed.expect
@@ -24,7 +24,7 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  method f(core::int x) → void {}
+  method f(generic-covariant-impl core::int x) → void {}
 }
 static method g1(self::C c) → void {
   c.f(1);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.outline.expect
index 10f6ea9..db72bce 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.outline.expect
@@ -23,6 +23,8 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x) → void
+    return super.{self::B::f}(x);
 }
 static method g1(self::C c) → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.hierarchy.expect
index c6a5468..66e9deb 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.hierarchy.expect
@@ -73,7 +73,7 @@
     Object.==
   classSetters:
   interfaceMembers:
-    B.f
+    C.B.f%I.f
     Object.toString
     Object.runtimeType
     Object._simpleInstanceOf
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.legacy.expect
index ca44867..dd05793 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.legacy.expect
@@ -18,6 +18,8 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x) → void
+    return super.{self::B::f}(x);
 }
 static method g1(self::C c) → void {
   c.f(1);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.legacy.transformed.expect
index ca44867..dd05793 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.legacy.transformed.expect
@@ -18,6 +18,8 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x) → void
+    return super.{self::B::f}(x);
 }
 static method g1(self::C c) → void {
   c.f(1);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.outline.expect
index ee14e2c..bd1c5ab 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super.dart.outline.expect
@@ -16,6 +16,8 @@
 class C extends self::B implements self::I<core::int> {
   synthetic constructor •() → self::C
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x) → void
+    return super.{self::B::f}(x);
 }
 static method g1(self::C c) → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.hierarchy.expect
index 3b034c6..63ed69c 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.hierarchy.expect
@@ -90,7 +90,7 @@
     Object.==
   classSetters:
   interfaceMembers:
-    B.f
+    C.B.f%I.f
     Object.toString
     Object.runtimeType
     Object._simpleInstanceOf
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.legacy.expect
index 45abbbf..b31bd2e 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.legacy.expect
@@ -23,6 +23,8 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x) → void
+    return super.{self::B::f}(x);
 }
 static method g1(self::C c) → void {
   c.f(1);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.legacy.transformed.expect
index 0e61a92..1fb19f0 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.legacy.transformed.expect
@@ -23,6 +23,8 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x) → void
+    return super.{self::B::f}(x);
 }
 static method g1(self::C c) → void {
   c.f(1);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.outline.expect
index 926b281..97f802d 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.outline.expect
@@ -21,6 +21,8 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x) → void
+    return super.{self::B::f}(x);
 }
 static method g1(self::C c) → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.legacy.expect
index 31aa1f7..9faa7e3 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.legacy.expect
@@ -19,7 +19,7 @@
   synthetic constructor •() → self::E
     : super self::D::•()
     ;
-  method f(core::int x) → void {}
+  method f(covariant core::int x) → void {}
 }
 static method g1(self::C c) → void {
   c.f(1.5);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.legacy.transformed.expect
index 31aa1f7..9faa7e3 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.legacy.transformed.expect
@@ -19,7 +19,7 @@
   synthetic constructor •() → self::E
     : super self::D::•()
     ;
-  method f(core::int x) → void {}
+  method f(covariant core::int x) → void {}
 }
 static method g1(self::C c) → void {
   c.f(1.5);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.outline.expect
index 3303a29..dd2a7ad 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword.dart.outline.expect
@@ -18,7 +18,7 @@
 class E extends self::D {
   synthetic constructor •() → self::E
     ;
-  method f(core::int x) → void
+  method f(covariant core::int x) → void
     ;
 }
 static method g1(self::C c) → void
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.legacy.expect
index 306dd42..1f3710c 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.legacy.expect
@@ -15,7 +15,7 @@
     ;
 }
 class E extends core::Object implements self::D {
-  field core::int x = null;
+  covariant field core::int x = null;
   synthetic constructor •() → self::E
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.legacy.transformed.expect
index 306dd42..1f3710c 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.legacy.transformed.expect
@@ -15,7 +15,7 @@
     ;
 }
 class E extends core::Object implements self::D {
-  field core::int x = null;
+  covariant field core::int x = null;
   synthetic constructor •() → self::E
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.outline.expect
index 643c93c..063eafe 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field.dart.outline.expect
@@ -13,7 +13,7 @@
     ;
 }
 class E extends core::Object implements self::D {
-  field core::int x;
+  covariant field core::int x;
   synthetic constructor •() → self::E
     ;
 }
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.legacy.expect
index 4e1a3ad..760a9dc 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.legacy.expect
@@ -20,6 +20,6 @@
     ;
   get x() → core::int
     return 0;
-  set x(core::int value) → void {}
+  set x(covariant core::int value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.legacy.transformed.expect
index 4e1a3ad..760a9dc 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.legacy.transformed.expect
@@ -20,6 +20,6 @@
     ;
   get x() → core::int
     return 0;
-  set x(core::int value) → void {}
+  set x(covariant core::int value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.outline.expect
index 358009c..0bc780e 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_field_inherited_by_setter.dart.outline.expect
@@ -17,7 +17,7 @@
     ;
   get x() → core::int
     ;
-  set x(core::int value) → void
+  set x(covariant core::int value) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.legacy.expect
index d5f7a72..cc9e3d7 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.legacy.expect
@@ -18,6 +18,6 @@
   synthetic constructor •() → self::E
     : super self::D::•()
     ;
-  set x(core::int value) → void {}
+  set x(covariant core::int value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.legacy.transformed.expect
index d5f7a72..cc9e3d7 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.legacy.transformed.expect
@@ -18,6 +18,6 @@
   synthetic constructor •() → self::E
     : super self::D::•()
     ;
-  set x(core::int value) → void {}
+  set x(covariant core::int value) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.outline.expect
index 8f94f9e..840f751 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter.dart.outline.expect
@@ -17,7 +17,7 @@
 class E extends self::D {
   synthetic constructor •() → self::E
     ;
-  set x(core::int value) → void
+  set x(covariant core::int value) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.legacy.expect
index 79a95bb..492c9a2 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.legacy.expect
@@ -15,7 +15,7 @@
   set x(covariant core::int value) → void {}
 }
 class E extends core::Object implements self::D {
-  field core::int x = null;
+  covariant field core::int x = null;
   synthetic constructor •() → self::E
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.legacy.transformed.expect
index 79a95bb..492c9a2 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.legacy.transformed.expect
@@ -15,7 +15,7 @@
   set x(covariant core::int value) → void {}
 }
 class E extends core::Object implements self::D {
-  field core::int x = null;
+  covariant field core::int x = null;
   synthetic constructor •() → self::E
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.outline.expect
index 97331e8..809ec55 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_keyword_setter_inherited_by_field.dart.outline.expect
@@ -15,7 +15,7 @@
     ;
 }
 class E extends core::Object implements self::D {
-  field core::int x;
+  covariant field core::int x;
   synthetic constructor •() → self::E
     ;
 }
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.legacy.expect
index 2efc919..a6d4f4c 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.legacy.expect
@@ -13,7 +13,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method f1(covariant core::int x) → void {}
+  method f1(covariant generic-covariant-impl core::int x) → void {}
 }
 static method g1(dynamic d) → void {
   d.f1(1.5);
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.legacy.transformed.expect
index 2efc919..a6d4f4c 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.legacy.transformed.expect
@@ -13,7 +13,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method f1(covariant core::int x) → void {}
+  method f1(covariant generic-covariant-impl core::int x) → void {}
 }
 static method g1(dynamic d) → void {
   d.f1(1.5);
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.outline.expect
index 87b6f89..6d8aa4a 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation.dart.outline.expect
@@ -13,7 +13,7 @@
 class D extends self::C<core::num> {
   synthetic constructor •() → self::D
     ;
-  method f1(covariant core::int x) → void
+  method f1(covariant generic-covariant-impl core::int x) → void
     ;
 }
 static method g1(dynamic d) → void
diff --git a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.hierarchy.expect
index 1153bca..7869c3b 100644
--- a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.hierarchy.expect
@@ -77,7 +77,7 @@
     C.x
   interfaceMembers:
     Object.toString
-    C.x
+    D.C.x%B.x
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
@@ -88,4 +88,4 @@
     Object._simpleInstanceOfTrue
     Object.==
   interfaceSetters:
-    C.x
+    D.C.x%B.x
diff --git a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.legacy.expect
index 084024b..4a50297 100644
--- a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.legacy.expect
@@ -18,5 +18,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
+  forwarding-stub set x(generic-covariant-impl core::num _) → void
+    return super.{self::C::x} = _;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.legacy.transformed.expect
index 084024b..4a50297 100644
--- a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.legacy.transformed.expect
@@ -18,5 +18,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
+  forwarding-stub set x(generic-covariant-impl core::num _) → void
+    return super.{self::C::x} = _;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.outline.expect
index d696974..8bf7b77 100644
--- a/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/field_forwarding_stub_generic_covariant.dart.outline.expect
@@ -15,6 +15,8 @@
 class D extends self::C implements self::B<core::num> {
   synthetic constructor •() → self::D
     ;
+  forwarding-stub set x(generic-covariant-impl core::num _) → void
+    return super.{self::C::x} = _;
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.hierarchy.expect
index 389c831..8993132 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.hierarchy.expect
@@ -82,7 +82,7 @@
   classSetters:
     B._x
   interfaceMembers:
-    B.f
+    C.B.f%I.f
     Object.toString
     B._x
     Object.runtimeType
@@ -91,7 +91,7 @@
     Object.noSuchMethod
     Object._identityHashCode
     Object.hashCode
-    B.g
+    C.B.g%I.g
     B.check
     Object._simpleInstanceOfFalse
     Object._simpleInstanceOfTrue
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.legacy.expect
index 82a32ab..339d3dc 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.legacy.expect
@@ -30,6 +30,10 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f([generic-covariant-impl core::num x = 10]) → void
+    return super.{self::B::f}(x);
+  forwarding-stub method g({generic-covariant-impl core::num x = 20}) → void
+    return super.{self::B::g}(x: x);
 }
 static method main() → dynamic {
   self::C c = new self::C::•();
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.legacy.transformed.expect
index 82a32ab..339d3dc 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.legacy.transformed.expect
@@ -30,6 +30,10 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f([generic-covariant-impl core::num x = 10]) → void
+    return super.{self::B::f}(x);
+  forwarding-stub method g({generic-covariant-impl core::num x = 20}) → void
+    return super.{self::B::g}(x: x);
 }
 static method main() → dynamic {
   self::C c = new self::C::•();
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.outline.expect
index 5998e7f..d95ebff 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_default_values.dart.outline.expect
@@ -22,6 +22,10 @@
 class C extends self::B implements self::I<core::num> {
   synthetic constructor •() → self::C
     ;
+  forwarding-stub method f([generic-covariant-impl core::num x]) → void
+    return super.{self::B::f}(x);
+  forwarding-stub method g({generic-covariant-impl core::num x}) → void
+    return super.{self::B::g}(x: x);
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.hierarchy.expect
index c6a5468..66e9deb 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.hierarchy.expect
@@ -73,7 +73,7 @@
     Object.==
   classSetters:
   interfaceMembers:
-    B.f
+    C.B.f%I.f
     Object.toString
     Object.runtimeType
     Object._simpleInstanceOf
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.legacy.expect
index 5486a15..760fd0e 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.legacy.expect
@@ -18,5 +18,7 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x, core::int y) → void
+    return super.{self::B::f}(x, y);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.legacy.transformed.expect
index 5486a15..760fd0e 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.legacy.transformed.expect
@@ -18,5 +18,7 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x, core::int y) → void
+    return super.{self::B::f}(x, y);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.outline.expect
index a0b2b04..32a8732 100644
--- a/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/forwarding_stub_with_non_covariant_param.dart.outline.expect
@@ -16,6 +16,8 @@
 class C extends self::B implements self::I<core::int> {
   synthetic constructor •() → self::C
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x, core::int y) → void
+    return super.{self::B::f}(x, y);
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.legacy.expect
index 121a90b..add41b9 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.legacy.expect
@@ -10,8 +10,8 @@
   set x(generic-covariant-impl self::C::T t) → void {}
 }
 class D extends core::Object implements self::C<core::num> {
-  field core::num x = null;
-  field core::num y = null;
+  generic-covariant-impl field core::num x = null;
+  generic-covariant-impl field core::num y = null;
   synthetic constructor •() → self::D
     : super core::Object::•()
     ;
@@ -20,9 +20,9 @@
   synthetic constructor •() → self::E
     : super core::Object::•()
     ;
-  set x(core::num t) → void {}
+  set x(generic-covariant-impl core::num t) → void {}
   get y() → core::num
     return null;
-  set y(core::num t) → void {}
+  set y(generic-covariant-impl core::num t) → void {}
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.legacy.transformed.expect
index 121a90b..add41b9 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.legacy.transformed.expect
@@ -10,8 +10,8 @@
   set x(generic-covariant-impl self::C::T t) → void {}
 }
 class D extends core::Object implements self::C<core::num> {
-  field core::num x = null;
-  field core::num y = null;
+  generic-covariant-impl field core::num x = null;
+  generic-covariant-impl field core::num y = null;
   synthetic constructor •() → self::D
     : super core::Object::•()
     ;
@@ -20,9 +20,9 @@
   synthetic constructor •() → self::E
     : super core::Object::•()
     ;
-  set x(core::num t) → void {}
+  set x(generic-covariant-impl core::num t) → void {}
   get y() → core::num
     return null;
-  set y(core::num t) → void {}
+  set y(generic-covariant-impl core::num t) → void {}
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.outline.expect
index bf98c8f..53b0ab7 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_covariance_inheritance_setter_field.dart.outline.expect
@@ -10,19 +10,19 @@
     ;
 }
 class D extends core::Object implements self::C<core::num> {
-  field core::num x;
-  field core::num y;
+  generic-covariant-impl field core::num x;
+  generic-covariant-impl field core::num y;
   synthetic constructor •() → self::D
     ;
 }
 class E extends core::Object implements self::C<core::num> {
   synthetic constructor •() → self::E
     ;
-  set x(core::num t) → void
+  set x(generic-covariant-impl core::num t) → void
     ;
   get y() → core::num
     ;
-  set y(core::num t) → void
+  set y(generic-covariant-impl core::num t) → void
     ;
 }
 static method main() → void
diff --git a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.legacy.expect
index fc559f4..d50d07e 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.legacy.expect
@@ -9,17 +9,17 @@
   abstract set x(covariant core::Object value) → void;
 }
 class B extends core::Object implements self::A {
-  field core::Object x = null;
+  covariant field core::Object x = null;
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
   method f(covariant core::Object x) → void {}
 }
 class C<T extends core::Object = dynamic> extends core::Object implements self::B {
-  generic-covariant-impl field self::C::T x = null;
+  covariant generic-covariant-impl field self::C::T x = null;
   synthetic constructor •() → self::C<self::C::T>
     : super core::Object::•()
     ;
-  method f(generic-covariant-impl self::C::T x) → void {}
+  method f(covariant generic-covariant-impl self::C::T x) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.legacy.transformed.expect
index fc559f4..d50d07e 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.legacy.transformed.expect
@@ -9,17 +9,17 @@
   abstract set x(covariant core::Object value) → void;
 }
 class B extends core::Object implements self::A {
-  field core::Object x = null;
+  covariant field core::Object x = null;
   synthetic constructor •() → self::B
     : super core::Object::•()
     ;
   method f(covariant core::Object x) → void {}
 }
 class C<T extends core::Object = dynamic> extends core::Object implements self::B {
-  generic-covariant-impl field self::C::T x = null;
+  covariant generic-covariant-impl field self::C::T x = null;
   synthetic constructor •() → self::C<self::C::T>
     : super core::Object::•()
     ;
-  method f(generic-covariant-impl self::C::T x) → void {}
+  method f(covariant generic-covariant-impl self::C::T x) → void {}
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.outline.expect b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.outline.expect
index 4ed0cca..037ffa8 100644
--- a/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/generic_vs_explicit_covariance.dart.outline.expect
@@ -8,17 +8,17 @@
   abstract set x(covariant core::Object value) → void;
 }
 class B extends core::Object implements self::A {
-  field core::Object x;
+  covariant field core::Object x;
   synthetic constructor •() → self::B
     ;
   method f(covariant core::Object x) → void
     ;
 }
 class C<T extends core::Object = dynamic> extends core::Object implements self::B {
-  generic-covariant-impl field self::C::T x;
+  covariant generic-covariant-impl field self::C::T x;
   synthetic constructor •() → self::C<self::C::T>
     ;
-  method f(generic-covariant-impl self::C::T x) → void
+  method f(covariant generic-covariant-impl self::C::T x) → void
     ;
 }
 static method main() → dynamic
diff --git a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.hierarchy.expect
index c844506..0bd7033 100644
--- a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.hierarchy.expect
@@ -60,7 +60,7 @@
       -> B
   interfaces: I<num>
   classMembers:
-    B.f
+    C.B.f%C.f
     Object.toString
     Object.runtimeType
     Object._simpleInstanceOf
@@ -73,7 +73,7 @@
     Object.==
   classSetters:
   interfaceMembers:
-    B.f
+    C.B.f%C.f
     Object.toString
     Object.runtimeType
     Object._simpleInstanceOf
diff --git a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.legacy.expect
index 95fdf8b..5862850 100644
--- a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.legacy.expect
@@ -18,6 +18,7 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  abstract method f(core::num x) → void;
+  forwarding-stub forwarding-semi-stub method f(generic-covariant-impl core::num x) → void
+    return super.{self::B::f}(x);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.legacy.transformed.expect
index 95fdf8b..5862850 100644
--- a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.legacy.transformed.expect
@@ -18,6 +18,7 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
-  abstract method f(core::num x) → void;
+  forwarding-stub forwarding-semi-stub method f(generic-covariant-impl core::num x) → void
+    return super.{self::B::f}(x);
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.outline.expect
index 8b7ff11..c8141fe 100644
--- a/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/abstract_override_becomes_forwarding_stub.dart.outline.expect
@@ -16,7 +16,8 @@
 class C extends self::B implements self::I<core::num> {
   synthetic constructor •() → self::C
     ;
-  abstract method f(core::num x) → void;
+  forwarding-stub forwarding-semi-stub method f(generic-covariant-impl core::num x) → void
+    return super.{self::B::f}(x);
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.legacy.expect
index f9eaac1..2a7623e 100644
--- a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.legacy.expect
@@ -29,7 +29,7 @@
   synthetic constructor •() → self::E
     : super self::C::•()
     ;
-  method f(covariant core::int x) → void {}
+  method f(covariant generic-covariant-impl core::int x) → void {}
 }
 static method test() → dynamic {
   dynamic x = new self::D::•().g4() as (core::Object) → dynamic;
diff --git a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.legacy.transformed.expect
index f9eaac1..2a7623e 100644
--- a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.legacy.transformed.expect
@@ -29,7 +29,7 @@
   synthetic constructor •() → self::E
     : super self::C::•()
     ;
-  method f(covariant core::int x) → void {}
+  method f(covariant generic-covariant-impl core::int x) → void {}
 }
 static method test() → dynamic {
   dynamic x = new self::D::•().g4() as (core::Object) → dynamic;
diff --git a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.outline.expect
index 0c9d1ca..1f6aacf 100644
--- a/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/call_through_this.dart.outline.expect
@@ -24,7 +24,7 @@
 class E extends self::C<core::num> {
   synthetic constructor •() → self::E
     ;
-  method f(covariant core::int x) → void
+  method f(covariant generic-covariant-impl core::int x) → void
     ;
 }
 static method test() → dynamic
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.hierarchy.expect
index d6381e8..54bc8ea 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.hierarchy.expect
@@ -77,7 +77,7 @@
     C.x
   interfaceMembers:
     Object.toString
-    C.x
+    D.C.x%B.x
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
@@ -88,4 +88,328 @@
     Object._simpleInstanceOfTrue
     Object.==
   interfaceSetters:
-    C.x
+    D.C.x%B.x
+
+Comparable:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Comparable.compareTo
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+    Comparable.compare
+  classSetters:
+
+num:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Comparable<num>
+  classMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  classSetters:
+  interfaceMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  interfaceSetters:
+
+int:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  classSetters:
+  interfaceMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.legacy.expect
index 3f2338c..eea0f36 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.legacy.expect
@@ -18,5 +18,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
+  forwarding-stub set x(covariant core::num _) → void
+    return super.{self::C::x} = _;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.legacy.transformed.expect
index 3f2338c..eea0f36 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.legacy.transformed.expect
@@ -18,5 +18,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
+  forwarding-stub set x(covariant core::num _) → void
+    return super.{self::C::x} = _;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.outline.expect
index 64163de..d8da134 100644
--- a/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/field_forwarding_stub_explicit_covariant.dart.outline.expect
@@ -15,6 +15,8 @@
 class D extends self::C implements self::B {
   synthetic constructor •() → self::D
     ;
+  forwarding-stub set x(covariant core::num _) → void
+    return super.{self::C::x} = _;
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.legacy.expect
index a959413..f6be89d 100644
--- a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.legacy.expect
@@ -10,19 +10,19 @@
     ;
 }
 abstract class C<T extends core::Object = dynamic> extends core::Object implements self::B<core::num> {
-  field dynamic x = null;
+  generic-covariant-impl field core::num x = null;
   synthetic constructor •() → self::C<self::C::T>
     : super core::Object::•()
     ;
-  abstract get y() → dynamic;
-  abstract set y(dynamic value) → dynamic;
+  abstract get y() → core::num;
+  abstract set y(generic-covariant-impl core::num value) → void;
 }
 abstract class D<T extends core::Object = dynamic> extends core::Object implements self::B<self::D::T> {
-  field dynamic x = null;
+  generic-covariant-impl field self::D::T x = null;
   synthetic constructor •() → self::D<self::D::T>
     : super core::Object::•()
     ;
-  abstract get y() → dynamic;
-  abstract set y(dynamic value) → dynamic;
+  abstract get y() → self::D::T;
+  abstract set y(generic-covariant-impl self::D::T value) → void;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.legacy.transformed.expect
index a959413..f6be89d 100644
--- a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.legacy.transformed.expect
@@ -10,19 +10,19 @@
     ;
 }
 abstract class C<T extends core::Object = dynamic> extends core::Object implements self::B<core::num> {
-  field dynamic x = null;
+  generic-covariant-impl field core::num x = null;
   synthetic constructor •() → self::C<self::C::T>
     : super core::Object::•()
     ;
-  abstract get y() → dynamic;
-  abstract set y(dynamic value) → dynamic;
+  abstract get y() → core::num;
+  abstract set y(generic-covariant-impl core::num value) → void;
 }
 abstract class D<T extends core::Object = dynamic> extends core::Object implements self::B<self::D::T> {
-  field dynamic x = null;
+  generic-covariant-impl field self::D::T x = null;
   synthetic constructor •() → self::D<self::D::T>
     : super core::Object::•()
     ;
-  abstract get y() → dynamic;
-  abstract set y(dynamic value) → dynamic;
+  abstract get y() → self::D::T;
+  abstract set y(generic-covariant-impl self::D::T value) → void;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.outline.expect
index 60525b9..2696bf4 100644
--- a/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/generic_covariance_based_on_inference.dart.outline.expect
@@ -9,18 +9,18 @@
     ;
 }
 abstract class C<T extends core::Object = dynamic> extends core::Object implements self::B<core::num> {
-  field dynamic x;
+  generic-covariant-impl field core::num x;
   synthetic constructor •() → self::C<self::C::T>
     ;
-  abstract get y() → dynamic;
-  abstract set y(dynamic value) → dynamic;
+  abstract get y() → core::num;
+  abstract set y(generic-covariant-impl core::num value) → void;
 }
 abstract class D<T extends core::Object = dynamic> extends core::Object implements self::B<self::D::T> {
-  field dynamic x;
+  generic-covariant-impl field self::D::T x;
   synthetic constructor •() → self::D<self::D::T>
     ;
-  abstract get y() → dynamic;
-  abstract set y(dynamic value) → dynamic;
+  abstract get y() → self::D::T;
+  abstract set y(generic-covariant-impl self::D::T value) → void;
 }
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.hierarchy.expect
index 94c8b5c..df047dc 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.hierarchy.expect
@@ -103,9 +103,9 @@
     M.y
     M.x
   interfaceMembers:
-    M.y
+    C.M.y%I.y
     Object.toString
-    M.x
+    C.M.x%I.x
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
@@ -116,5 +116,329 @@
     Object._simpleInstanceOfTrue
     Object.==
   interfaceSetters:
-    M.y
-    M.x
+    C.M.y%I.y
+    C.M.x%I.x
+
+Comparable:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Comparable.compareTo
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+    Comparable.compare
+  classSetters:
+
+num:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Comparable<num>
+  classMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  classSetters:
+  interfaceMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  interfaceSetters:
+
+int:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  classSetters:
+  interfaceMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.outline.expect
index 4978034..b99aea3 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.outline.expect
@@ -32,6 +32,10 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub set y(covariant core::Object value) → void
+    return super.{self::B::y} = value;
+  forwarding-stub set x(generic-covariant-impl core::int _) → void
+    return super.{self::B::x} = _;
 }
 static method expectTypeError(() → void callback) → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.hierarchy.expect
index 94c8b5c..df047dc 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.hierarchy.expect
@@ -103,9 +103,9 @@
     M.y
     M.x
   interfaceMembers:
-    M.y
+    C.M.y%I.y
     Object.toString
-    M.x
+    C.M.x%I.x
     Object.runtimeType
     Object._simpleInstanceOf
     Object._instanceOf
@@ -116,5 +116,329 @@
     Object._simpleInstanceOfTrue
     Object.==
   interfaceSetters:
-    M.y
-    M.x
+    C.M.y%I.y
+    C.M.x%I.x
+
+Comparable:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Comparable.compareTo
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+    Comparable.compare
+  classSetters:
+
+num:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Comparable<num>
+  classMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  classSetters:
+  interfaceMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  interfaceSetters:
+
+int:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  classSetters:
+  interfaceMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.outline.expect
index 4b6371a..782ccf3 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.outline.expect
@@ -38,6 +38,10 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub set y(covariant core::Object value) → void
+    return super.{self::B::y} = value;
+  forwarding-stub set x(generic-covariant-impl core::int value) → void
+    return super.{self::B::x} = value;
 }
 static method expectTypeError(() → void callback) → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.hierarchy.expect
index 5459bc4..dbd4f79 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.hierarchy.expect
@@ -73,7 +73,7 @@
     Object.==
   classSetters:
   interfaceMembers:
-    B.f
+    C.B.f%I.f
     Object.toString
     Object.runtimeType
     Object._simpleInstanceOf
@@ -85,3 +85,327 @@
     Object._simpleInstanceOfTrue
     Object.==
   interfaceSetters:
+
+Comparable:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Comparable.compareTo
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+    Comparable.compare
+  classSetters:
+
+num:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Comparable<num>
+  classMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  classSetters:
+  interfaceMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  interfaceSetters:
+
+int:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  classSetters:
+  interfaceMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.outline.expect
index 4e4266a..91a76ee 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_checked_via_target.dart.outline.expect
@@ -16,6 +16,8 @@
 class C extends self::B implements self::I {
   synthetic constructor •() → self::C
     ;
+  forwarding-stub method f(covariant core::Object x) → core::int
+    return super.{self::B::f}(x);
 }
 static method expectTypeError(() → void callback) → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.hierarchy.expect
index c6a5468..f7b0451 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.hierarchy.expect
@@ -73,7 +73,7 @@
     Object.==
   classSetters:
   interfaceMembers:
-    B.f
+    C.B.f%I.f
     Object.toString
     Object.runtimeType
     Object._simpleInstanceOf
@@ -85,3 +85,327 @@
     Object._simpleInstanceOfTrue
     Object.==
   interfaceSetters:
+
+Comparable:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Comparable.compareTo
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+    Comparable.compare
+  classSetters:
+
+num:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Comparable<num>
+  classMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  classSetters:
+  interfaceMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  interfaceSetters:
+
+int:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  classSetters:
+  interfaceMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.legacy.expect
index 3334045..082a15f 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.legacy.expect
@@ -18,5 +18,7 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.legacy.transformed.expect
index 3334045..082a15f 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.legacy.transformed.expect
@@ -18,5 +18,7 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.outline.expect
index 205776d..5890db1 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_interface.dart.outline.expect
@@ -16,6 +16,8 @@
 abstract class C extends self::B implements self::I<core::int> {
   synthetic constructor •() → self::C
     ;
+  forwarding-stub method f(generic-covariant-impl core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y);
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.hierarchy.expect
index 2defd9d..578a89f 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.hierarchy.expect
@@ -73,7 +73,7 @@
     Object.==
   classSetters:
   interfaceMembers:
-    B.f
+    C.B.f%I.f
     Object.toString
     Object.runtimeType
     Object._simpleInstanceOf
@@ -85,3 +85,327 @@
     Object._simpleInstanceOfTrue
     Object.==
   interfaceSetters:
+
+Comparable:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Comparable.compareTo
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+    Comparable.compare
+  classSetters:
+
+num:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Comparable<num>
+  classMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  classSetters:
+  interfaceMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  interfaceSetters:
+
+int:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  classSetters:
+  interfaceMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.legacy.expect
index 3038f0e..04bbcf3 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.legacy.expect
@@ -18,5 +18,6 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  abstract forwarding-stub method f(generic-covariant-impl core::int x, core::Object y) → void;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.legacy.transformed.expect
index 3038f0e..04bbcf3 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.legacy.transformed.expect
@@ -18,5 +18,6 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  abstract forwarding-stub method f(generic-covariant-impl core::int x, core::Object y) → void;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.outline.expect
index 9e7de41..5c37f4b 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariantImpl_from_super.dart.outline.expect
@@ -16,6 +16,7 @@
 abstract class C extends self::B<core::int> implements self::I {
   synthetic constructor •() → self::C
     ;
+  abstract forwarding-stub method f(generic-covariant-impl core::int x, core::Object y) → void;
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.hierarchy.expect
index 5459bc4..dbd4f79 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.hierarchy.expect
@@ -73,7 +73,7 @@
     Object.==
   classSetters:
   interfaceMembers:
-    B.f
+    C.B.f%I.f
     Object.toString
     Object.runtimeType
     Object._simpleInstanceOf
@@ -85,3 +85,327 @@
     Object._simpleInstanceOfTrue
     Object.==
   interfaceSetters:
+
+Comparable:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Comparable.compareTo
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+    Comparable.compare
+  classSetters:
+
+num:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Comparable<num>
+  classMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  classSetters:
+  interfaceMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  interfaceSetters:
+
+int:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  classSetters:
+  interfaceMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.legacy.expect
index 22a66005..ed5aa28 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.legacy.expect
@@ -18,5 +18,7 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f(covariant core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.legacy.transformed.expect
index 22a66005..ed5aa28 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.legacy.transformed.expect
@@ -18,5 +18,7 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  forwarding-stub method f(covariant core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y);
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.outline.expect
index 91a90a9..ac22acd 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_interface.dart.outline.expect
@@ -16,6 +16,8 @@
 abstract class C extends self::B implements self::I {
   synthetic constructor •() → self::C
     ;
+  forwarding-stub method f(covariant core::int x, core::Object y) → void
+    return super.{self::B::f}(x, y);
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.hierarchy.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.hierarchy.expect
index 5459bc4..dbd4f79 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.hierarchy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.hierarchy.expect
@@ -73,7 +73,7 @@
     Object.==
   classSetters:
   interfaceMembers:
-    B.f
+    C.B.f%I.f
     Object.toString
     Object.runtimeType
     Object._simpleInstanceOf
@@ -85,3 +85,327 @@
     Object._simpleInstanceOfTrue
     Object.==
   interfaceSetters:
+
+Comparable:
+  superclasses:
+    Object
+  interfaces:
+  classMembers:
+    Object.toString
+    Object.runtimeType
+    Object._simpleInstanceOf
+    Object._instanceOf
+    Object.noSuchMethod
+    Object._identityHashCode
+    Comparable.compareTo
+    Object.hashCode
+    Object._simpleInstanceOfFalse
+    Object._simpleInstanceOfTrue
+    Object.==
+    Comparable.compare
+  classSetters:
+
+num:
+  Longest path to Object: 2
+  superclasses:
+    Object
+  interfaces: Comparable<num>
+  classMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  classSetters:
+  interfaceMembers:
+    num.~/
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    num._returnDoubleNull
+    num.Object.toString%num.toString
+    num._returnIntNull
+    num.+
+    num.clamp
+    num.toDouble
+    num.ceil
+    num.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    num.toStringAsExponential
+    num./
+    num.abs
+    num._moduloFromInteger
+    num._subFromInteger
+    num._addFromInteger
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    num.sign
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    num.floorToDouble
+    Object._identityHashCode
+    num.>
+    num.roundToDouble
+    num.round
+    num.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    num.truncate
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    num.ceilToDouble
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    num.truncateToDouble
+    num.parse
+    num.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    num.*
+  interfaceSetters:
+
+int:
+  Longest path to Object: 3
+  superclasses:
+    Object
+      -> num
+  interfaces: Comparable<num>
+  classMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  classSetters:
+  interfaceMembers:
+    int._minInt64
+    num.~/
+    int.toSigned
+    int._shrFromInteger
+    int._throwFormatException
+    int._parseBlock
+    num.<=
+    num._equalToInteger
+    num.isInfinite
+    num.<
+    int._int64OverflowLimits
+    int._parseRadix
+    int.Object.toString%int.toString
+    int._PARSE_LIMITS
+    int._kNull
+    num.+
+    num.clamp
+    num.toDouble
+    int.ceil
+    int.unary-
+    num._mulFromInteger
+    num.>=
+    Object.runtimeType
+    Object._simpleInstanceOf
+    num.isNegative
+    num.isNaN
+    int._initInt64OverflowLimits
+    int.isEven
+    num.toStringAsExponential
+    num./
+    int.abs
+    int._bitAndFromSmi
+    int.|
+    num._moduloFromInteger
+    int.gcd
+    int._int64UnsignedOverflowLimits
+    int.<<
+    num._subFromInteger
+    num._addFromInteger
+    int.toUnsigned
+    int.toRadixString
+    int._int64UnsignedSmiOverflowLimits
+    Object._instanceOf
+    num.remainder
+    num.isFinite
+    num.toInt
+    num.%
+    int._tryParseSmi
+    int.sign
+    int.>>
+    Object.noSuchMethod
+    num.toStringAsPrecision
+    int.modInverse
+    int.floorToDouble
+    Object._identityHashCode
+    num.>
+    int.roundToDouble
+    int.round
+    int._maxInt64
+    int.floor
+    num.compareTo
+    num.Object.hashCode%num.hashCode
+    num._truncDivFromInteger
+    int.truncate
+    int.^
+    int._shlFromInteger
+    int.&
+    num.-
+    Object._simpleInstanceOfFalse
+    num._greaterThanFromInteger
+    int.bitLength
+    int.ceilToDouble
+    int.modPow
+    int.isOdd
+    int._bitAndFromInteger
+    Object._simpleInstanceOfTrue
+    num.Object.==%num.==
+    int._bitOrFromInteger
+    int.truncateToDouble
+    int._bitXorFromInteger
+    int.parse
+    int.tryParse
+    num.toStringAsFixed
+    num._remainderFromInteger
+    int._parse
+    num.*
+    int.~
+  interfaceSetters:
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.legacy.expect
index cf870cc..1ce982c 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.legacy.expect
@@ -18,5 +18,6 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  abstract forwarding-stub method f(covariant core::int x, core::Object y) → void;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.legacy.transformed.expect
index cf870cc..1ce982c 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.legacy.transformed.expect
@@ -18,5 +18,6 @@
   synthetic constructor •() → self::C
     : super self::B::•()
     ;
+  abstract forwarding-stub method f(covariant core::int x, core::Object y) → void;
 }
 static method main() → void {}
diff --git a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.outline.expect b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.outline.expect
index d4b0825..9c7aa8f 100644
--- a/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/stub_from_interface_covariant_from_super.dart.outline.expect
@@ -16,6 +16,7 @@
 abstract class C extends self::B implements self::I {
   synthetic constructor •() → self::C
     ;
+  abstract forwarding-stub method f(covariant core::int x, core::Object y) → void;
 }
 static method main() → void
   ;
diff --git a/pkg/front_end/testcases/static_setter.dart.legacy.expect b/pkg/front_end/testcases/static_setter.dart.legacy.expect
index 05125e5..055ed11 100644
--- a/pkg/front_end/testcases/static_setter.dart.legacy.expect
+++ b/pkg/front_end/testcases/static_setter.dart.legacy.expect
@@ -7,7 +7,7 @@
     : super core::Object::•()
     ;
 }
-static set foo(dynamic x) → dynamic {}
+static set foo(dynamic x) → void {}
 static method main() → dynamic {
   self::foo = new self::Foo::•();
 }
diff --git a/pkg/front_end/testcases/static_setter.dart.legacy.transformed.expect b/pkg/front_end/testcases/static_setter.dart.legacy.transformed.expect
index 05125e5..055ed11 100644
--- a/pkg/front_end/testcases/static_setter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/static_setter.dart.legacy.transformed.expect
@@ -7,7 +7,7 @@
     : super core::Object::•()
     ;
 }
-static set foo(dynamic x) → dynamic {}
+static set foo(dynamic x) → void {}
 static method main() → dynamic {
   self::foo = new self::Foo::•();
 }
diff --git a/pkg/front_end/testcases/static_setter.dart.outline.expect b/pkg/front_end/testcases/static_setter.dart.outline.expect
index 13eaefe..0c46d4c 100644
--- a/pkg/front_end/testcases/static_setter.dart.outline.expect
+++ b/pkg/front_end/testcases/static_setter.dart.outline.expect
@@ -6,7 +6,7 @@
   synthetic constructor •() → self::Foo
     ;
 }
-static set foo(dynamic x) → dynamic
+static set foo(dynamic x) → void
   ;
 static method main() → dynamic
   ;
diff --git a/pkg/front_end/testcases/strong.status b/pkg/front_end/testcases/strong.status
index 04a59b2..23300d4 100644
--- a/pkg/front_end/testcases/strong.status
+++ b/pkg/front_end/testcases/strong.status
@@ -25,11 +25,12 @@
 extension_methods: TypeCheckError
 external_import: RuntimeError # The native extension to import doesn't exist. This is ok.
 fallthrough: ExpectationFileMismatch
+ignore_function: TypeCheckError
 incomplete_field_formal_parameter: RuntimeError
 inference/abstract_class_instantiation: InstrumentationMismatch # Issue #30040
 inference/conflicting_fields: TypeCheckError
-inference/conflicts_can_happen: TypeCheckError
 inference/conflicts_can_happen2: TypeCheckError
+inference/conflicts_can_happen: TypeCheckError
 inference/constructors_infer_from_arguments_argument_not_assignable: TypeCheckError
 inference/constructors_too_many_positional_arguments: InstrumentationMismatch # Issue #30040
 inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer: TypeCheckError
@@ -45,8 +46,10 @@
 inference/generic_methods_do_not_infer_invalid_override_of_generic_method: TypeCheckError
 inference/generic_methods_handle_override_of_non_generic_with_generic: TypeCheckError
 inference/generic_methods_infer_js_builtin: InstrumentationMismatch # Issue #30029
+inference/inconsistent_overrides: TypeCheckError
 inference/infer_field_override_multiple: TypeCheckError
 inference/infer_from_complex_expressions_if_outer_most_value_is_precise: TypeCheckError # Issue #35630
+inference/infer_method_missing_params: ExpectationFileMismatch # Not supposed to be able to infer types if supertypes disagree on number of parameters. An error may be missing as C.f and B.f are not compatible at all.
 inference/infer_method_missing_params: TypeCheckError
 inference/infer_type_regardless_of_declaration_order_or_cycles: RuntimeError
 inference/infer_types_on_generic_instantiations_4: RuntimeError
@@ -67,15 +70,16 @@
 inference_new/infer_assign_to_index_upwards: TypeCheckError
 inference_new/infer_assign_to_property_custom: TypeCheckError
 inference_new/infer_field_getter_setter_mismatch: TypeCheckError
+inference_new/infer_field_override_accessors: TypeCheckError
 inference_new/infer_field_override_getter_overrides_setter: TypeCheckError
 inference_new/invalid_assignment_during_toplevel_inference: TypeCheckError
-inference_new/strongly_connected_component: TypeCheckError
 instantiate_to_bound/non_simple_class_parametrized_typedef_cycle: RuntimeError # Expected
 instantiate_to_bound/non_simple_generic_function_in_bound_regress: RuntimeError # Expected
 invalid_type: TypeCheckError
 invocations: RuntimeError
 issue34899: TypeCheckError
 micro: RuntimeError
+mixin_application_override: ExpectationFileMismatch # Too many errors.
 mixin_application_override: TypeCheckError
 nnbd/nullable_param: RuntimeError
 operator_method_not_found: RuntimeError # Expected
diff --git a/pkg/front_end/testcases/super_nsm.dart.legacy.expect b/pkg/front_end/testcases/super_nsm.dart.legacy.expect
index a0c7a8c..eb7ebeb 100644
--- a/pkg/front_end/testcases/super_nsm.dart.legacy.expect
+++ b/pkg/front_end/testcases/super_nsm.dart.legacy.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     return "C";
   no-such-method-forwarder method interfaceMethod() → dynamic
     return this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} dynamic;
@@ -21,7 +21,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method noSuchMethod(dynamic _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     return "D";
   method dMethod() → dynamic
     return super.{self::C::interfaceMethod}();
diff --git a/pkg/front_end/testcases/super_nsm.dart.legacy.transformed.expect b/pkg/front_end/testcases/super_nsm.dart.legacy.transformed.expect
index a0c7a8c..eb7ebeb 100644
--- a/pkg/front_end/testcases/super_nsm.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/super_nsm.dart.legacy.transformed.expect
@@ -12,7 +12,7 @@
   synthetic constructor •() → self::C
     : super core::Object::•()
     ;
-  method noSuchMethod(dynamic _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     return "C";
   no-such-method-forwarder method interfaceMethod() → dynamic
     return this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} dynamic;
@@ -21,7 +21,7 @@
   synthetic constructor •() → self::D
     : super self::C::•()
     ;
-  method noSuchMethod(dynamic _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     return "D";
   method dMethod() → dynamic
     return super.{self::C::interfaceMethod}();
diff --git a/pkg/front_end/testcases/super_nsm.dart.outline.expect b/pkg/front_end/testcases/super_nsm.dart.outline.expect
index de7c531..6ec8595 100644
--- a/pkg/front_end/testcases/super_nsm.dart.outline.expect
+++ b/pkg/front_end/testcases/super_nsm.dart.outline.expect
@@ -10,7 +10,7 @@
 class C extends core::Object implements self::I {
   synthetic constructor •() → self::C
     ;
-  method noSuchMethod(dynamic _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     ;
   no-such-method-forwarder method interfaceMethod() → dynamic
     return this.{self::C::noSuchMethod}(new core::_InvocationMirror::_withType(#interfaceMethod, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{}))) as{TypeError} dynamic;
@@ -18,7 +18,7 @@
 class D extends self::C {
   synthetic constructor •() → self::D
     ;
-  method noSuchMethod(dynamic _) → dynamic
+  method noSuchMethod(core::Invocation _) → dynamic
     ;
   method dMethod() → dynamic
     ;
diff --git a/pkg/front_end/testcases/void_methods.dart.outline.expect b/pkg/front_end/testcases/void_methods.dart.outline.expect
index b73833b..881f4a6 100644
--- a/pkg/front_end/testcases/void_methods.dart.outline.expect
+++ b/pkg/front_end/testcases/void_methods.dart.outline.expect
@@ -6,9 +6,9 @@
   field core::List<dynamic> list;
   synthetic constructor •() → self::Foo
     ;
-  set first(dynamic x) → dynamic
+  set first(dynamic x) → void
     ;
-  operator []=(dynamic x, dynamic y) → dynamic
+  operator []=(dynamic x, dynamic y) → void
     ;
   method clear() → void
     ;
diff --git a/tests/language_2/language_2_kernel.status b/tests/language_2/language_2_kernel.status
index 5953301..1920b97 100644
--- a/tests/language_2/language_2_kernel.status
+++ b/tests/language_2/language_2_kernel.status
@@ -135,7 +135,6 @@
 web_int_literals_test/*: SkipByDesign # Test applies only to JavaScript targets
 
 [ $compiler == dartdevk ]
-mixin_method_override_test/G5: Skip # Issue 34354
 private_method_tearoff_test: RuntimeError
 
 [ $compiler == dartkp ]
@@ -236,7 +235,6 @@
 mixin_illegal_superclass_test/28: MissingCompileTimeError
 mixin_illegal_superclass_test/29: MissingCompileTimeError
 mixin_illegal_superclass_test/30: MissingCompileTimeError
-mixin_method_override_test/G4: Crash # Assertion error: mixin_full_resolution.dart': 'src.typeParameters.length == dst.typeParameters.length': is not true.
 multiline_newline_test/04: MissingCompileTimeError
 multiline_newline_test/04r: MissingCompileTimeError
 multiline_newline_test/05: MissingCompileTimeError
@@ -275,21 +273,13 @@
 f_bounded_quantification4_test: CompileTimeError # Issue 34583
 issue31596_super_test/02: MissingCompileTimeError # Issue 31596
 issue31596_super_test/04: MissingCompileTimeError # Issue 31596
-issue34488_test/01: MissingCompileTimeError # Issue 34488
-issue34488_test/02: MissingCompileTimeError # Issue 34488
-issue34488_test/03: MissingCompileTimeError # Issue 34488
-issue34488_test/04: MissingCompileTimeError # Issue 34488
-issue34488_test/05: MissingCompileTimeError # Issue 34488
-issue34488_test/06: MissingCompileTimeError # Issue 34488
 mixin_declaration/mixin_declaration_invalid_override_test/08: MissingCompileTimeError
 mixin_declaration/mixin_declaration_superinvocation_application_test/04: MissingCompileTimeError
 mixin_declaration/mixin_declaration_superinvocation_application_test/05: MissingCompileTimeError
 mixin_declaration/mixin_declaration_superinvocation_application_test/06: MissingCompileTimeError
 mixin_declaration/mixin_declaration_superinvocation_application_test/07: MissingCompileTimeError
 mixin_declaration/mixin_declaration_superinvocation_application_test/08: MissingCompileTimeError
-mixin_method_override_test/G5: Crash # Issue 34354
 nnbd/*: Skip
-override_inheritance_field_test/42: MissingCompileTimeError
 regress_22976_test/*: CompileTimeError # Issue 31935
 set_literals/invalid_set_literal_test/08: MissingCompileTimeError # Requires constant evaluation
 set_literals/invalid_set_literal_test/09: MissingCompileTimeError # Requires constant evaluation
