Reland [fasta] Invoke constructors of mixin applications in super invocations

Reland of https://dart-review.googlesource.com/c/sdk/+/86200.

TBR=aam@google.com

Change-Id: Id3137cf5c7f87492db5bf3aabb505ac04529fa2c
Reviewed-on: https://dart-review.googlesource.com/c/87079
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
diff --git a/pkg/compiler/lib/src/ssa/builder_kernel.dart b/pkg/compiler/lib/src/ssa/builder_kernel.dart
index 1f40b69..d5a20c0 100644
--- a/pkg/compiler/lib/src/ssa/builder_kernel.dart
+++ b/pkg/compiler/lib/src/ssa/builder_kernel.dart
@@ -894,10 +894,6 @@
     ir.Class callerClass = caller.enclosingClass;
     ir.Supertype supertype = callerClass.supertype;
 
-    if (callerClass.mixedInType != null) {
-      _collectFieldValues(callerClass.mixedInType.classNode, constructorData);
-    }
-
     // The class of the super-constructor may not be the supertype class. In
     // this case, we must go up the class hierarchy until we reach the class
     // containing the super-constructor.
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index 70f7382..5d3ad9e 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -1576,9 +1576,6 @@
     Class cls = classBuilder.cls;
     if (isSuper) {
       cls = cls.superclass;
-      while (cls.isMixinApplication) {
-        cls = cls.superclass;
-      }
     }
     if (cls != null) {
       for (Constructor constructor in cls.constructors) {
@@ -1605,9 +1602,6 @@
 
       if (isSuper) {
         builder = getSuperclass(builder)?.origin;
-        while (builder?.isMixinApplication ?? false) {
-          builder = getSuperclass(builder)?.origin;
-        }
       }
       if (builder != null) {
         Class target = builder.target;
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
index ad36388..7a62b1a 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
@@ -822,14 +822,13 @@
 /// arguments.
 Constructor defaultSuperConstructor(Class cls) {
   Class superclass = cls.superclass;
-  while (superclass != null && superclass.isMixinApplication) {
-    superclass = superclass.superclass;
-  }
-  for (Constructor constructor in superclass.constructors) {
-    if (constructor.name.name.isEmpty) {
-      return constructor.function.requiredParameterCount == 0
-          ? constructor
-          : null;
+  if (superclass != null) {
+    for (Constructor constructor in superclass.constructors) {
+      if (constructor.name.name.isEmpty) {
+        return constructor.function.requiredParameterCount == 0
+            ? constructor
+            : null;
+      }
     }
   }
   return null;
diff --git a/pkg/front_end/testcases/bug33099.dart.strong.expect b/pkg/front_end/testcases/bug33099.dart.strong.expect
index 4293417..c745439 100644
--- a/pkg/front_end/testcases/bug33099.dart.strong.expect
+++ b/pkg/front_end/testcases/bug33099.dart.strong.expect
@@ -22,7 +22,7 @@
 }
 class MyTest2 extends self::_MyTest2&Object&MyTest {
   synthetic constructor •() → self::MyTest2
-    : super core::Object::•()
+    : super self::_MyTest2&Object&MyTest::•()
     ;
 }
 static const field self::_FailingTest failingTest = const self::_FailingTest::•();
diff --git a/pkg/front_end/testcases/bug33099.dart.strong.transformed.expect b/pkg/front_end/testcases/bug33099.dart.strong.transformed.expect
index a8c371a..a2f4a98 100644
--- a/pkg/front_end/testcases/bug33099.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/bug33099.dart.strong.transformed.expect
@@ -24,7 +24,7 @@
 }
 class MyTest2 extends self::_MyTest2&Object&MyTest {
   synthetic constructor •() → self::MyTest2
-    : super core::Object::•()
+    : super self::_MyTest2&Object&MyTest::•()
     ;
 }
 static const field self::_FailingTest failingTest = const self::_FailingTest::•();
diff --git a/pkg/front_end/testcases/bug34511.dart.legacy.expect b/pkg/front_end/testcases/bug34511.dart.legacy.expect
index ebad4e6..c3b2cc5 100644
--- a/pkg/front_end/testcases/bug34511.dart.legacy.expect
+++ b/pkg/front_end/testcases/bug34511.dart.legacy.expect
@@ -14,7 +14,7 @@
 }
 class B<Z extends core::Object = dynamic> extends self::_B&Object&A<self::B::Z> {
   synthetic constructor •() → self::B<self::B::Z>
-    : super core::Object::•()
+    : super self::_B&Object&A::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/bug34511.dart.legacy.transformed.expect b/pkg/front_end/testcases/bug34511.dart.legacy.transformed.expect
index 739a1e4..2f2a19d 100644
--- a/pkg/front_end/testcases/bug34511.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/bug34511.dart.legacy.transformed.expect
@@ -14,7 +14,7 @@
 }
 class B<Z extends core::Object = dynamic> extends self::_B&Object&A<self::B::Z> {
   synthetic constructor •() → self::B<self::B::Z>
-    : super core::Object::•()
+    : super self::_B&Object&A::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/bug34511.dart.strong.expect b/pkg/front_end/testcases/bug34511.dart.strong.expect
index ebad4e6..c3b2cc5 100644
--- a/pkg/front_end/testcases/bug34511.dart.strong.expect
+++ b/pkg/front_end/testcases/bug34511.dart.strong.expect
@@ -14,7 +14,7 @@
 }
 class B<Z extends core::Object = dynamic> extends self::_B&Object&A<self::B::Z> {
   synthetic constructor •() → self::B<self::B::Z>
-    : super core::Object::•()
+    : super self::_B&Object&A::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/bug34511.dart.strong.transformed.expect b/pkg/front_end/testcases/bug34511.dart.strong.transformed.expect
index 739a1e4..2f2a19d 100644
--- a/pkg/front_end/testcases/bug34511.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/bug34511.dart.strong.transformed.expect
@@ -14,7 +14,7 @@
 }
 class B<Z extends core::Object = dynamic> extends self::_B&Object&A<self::B::Z> {
   synthetic constructor •() → self::B<self::B::Z>
-    : super core::Object::•()
+    : super self::_B&Object&A::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/clone_function_type.dart.legacy.expect b/pkg/front_end/testcases/clone_function_type.dart.legacy.expect
index a1b55e6..52b22ab 100644
--- a/pkg/front_end/testcases/clone_function_type.dart.legacy.expect
+++ b/pkg/front_end/testcases/clone_function_type.dart.legacy.expect
@@ -76,7 +76,7 @@
 }
 class Bm1<Z extends core::Object = dynamic> extends self::_Bm1&Object&Am1<self::Bm1::Z> {
   synthetic constructor •() → self::Bm1<self::Bm1::Z>
-    : super core::Object::•()
+    : super self::_Bm1&Object&Am1::•()
     ;
 }
 abstract class _Cm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::_Cm1&Object&Am1::Z> {
@@ -86,7 +86,7 @@
 }
 class Cm1<Z extends core::Object = dynamic> extends self::_Cm1&Object&Am1<self::Cm1::Z> {
   synthetic constructor •() → self::Cm1<self::Cm1::Z>
-    : super core::Object::•()
+    : super self::_Cm1&Object&Am1::•()
     ;
 }
 abstract class _Dm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<() → core::int, self::_Dm1&Object&Am1::Z> {
@@ -96,7 +96,7 @@
 }
 class Dm1<Z extends core::Object = dynamic> extends self::_Dm1&Object&Am1<self::Dm1::Z> {
   synthetic constructor •() → self::Dm1<self::Dm1::Z>
-    : super core::Object::•()
+    : super self::_Dm1&Object&Am1::•()
     ;
 }
 abstract class _Em1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<() → dynamic, self::_Em1&Object&Am1::Z> {
@@ -106,7 +106,7 @@
 }
 class Em1<Z extends core::Object = dynamic> extends self::_Em1&Object&Am1<self::Em1::Z> {
   synthetic constructor •() → self::Em1<self::Em1::Z>
-    : super core::Object::•()
+    : super self::_Em1&Object&Am1::•()
     ;
 }
 abstract class _Fm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<() → dynamic, self::_Fm1&Object&Am1::Z> {
@@ -116,7 +116,7 @@
 }
 class Fm1<Z extends core::Object = dynamic> extends self::_Fm1&Object&Am1<self::Fm1::Z> {
   synthetic constructor •() → self::Fm1<self::Fm1::Z>
-    : super core::Object::•()
+    : super self::_Fm1&Object&Am1::•()
     ;
 }
 abstract class _Gm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<({x: core::int}) → dynamic, self::_Gm1&Object&Am1::Z> {
@@ -126,7 +126,7 @@
 }
 class Gm1<Z extends core::Object = dynamic> extends self::_Gm1&Object&Am1<self::Gm1::Z> {
   synthetic constructor •() → self::Gm1<self::Gm1::Z>
-    : super core::Object::•()
+    : super self::_Gm1&Object&Am1::•()
     ;
 }
 abstract class _Hm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::_Hm1&Object&Am1::Z> {
@@ -136,7 +136,7 @@
 }
 class Hm1<Z extends core::Object = dynamic> extends self::_Hm1&Object&Am1<self::Hm1::Z> {
   synthetic constructor •() → self::Hm1<self::Hm1::Z>
-    : super core::Object::•()
+    : super self::_Hm1&Object&Am1::•()
     ;
 }
 abstract class _Im1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::_Im1&Object&Am1::Z> {
@@ -146,7 +146,7 @@
 }
 class Im1<Z extends core::Object = dynamic> extends self::_Im1&Object&Am1<self::Im1::Z> {
   synthetic constructor •() → self::Im1<self::Im1::Z>
-    : super core::Object::•()
+    : super self::_Im1&Object&Am1::•()
     ;
 }
 abstract class _Jm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<core::Function, self::_Jm1&Object&Am1::Z> {
@@ -156,7 +156,7 @@
 }
 class Jm1<Z extends core::Object = dynamic> extends self::_Jm1&Object&Am1<self::Jm1::Z> {
   synthetic constructor •() → self::Jm1<self::Jm1::Z>
-    : super core::Object::•()
+    : super self::_Jm1&Object&Am1::•()
     ;
 }
 abstract class _Km1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<(core::Function) → dynamic, self::_Km1&Object&Am1::Z> {
@@ -166,7 +166,7 @@
 }
 class Km1<Z extends core::Object = dynamic> extends self::_Km1&Object&Am1<self::Km1::Z> {
   synthetic constructor •() → self::Km1<self::Km1::Z>
-    : super core::Object::•()
+    : super self::_Km1&Object&Am1::•()
     ;
 }
 abstract class _Lm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<() → (() → core::Function) → dynamic, self::_Lm1&Object&Am1::Z> {
@@ -176,7 +176,7 @@
 }
 class Lm1<Z extends core::Object = dynamic> extends self::_Lm1&Object&Am1<self::Lm1::Z> {
   synthetic constructor •() → self::Lm1<self::Lm1::Z>
-    : super core::Object::•()
+    : super self::_Lm1&Object&Am1::•()
     ;
 }
 class Mm1<Z extends core::Object = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::Mm1::Z> {
@@ -246,7 +246,7 @@
 }
 class Bm2<Z extends core::Object = dynamic> extends self::_Bm2&Object&Am2<self::Bm2::Z> {
   synthetic constructor •() → self::Bm2<self::Bm2::Z>
-    : super core::Object::•()
+    : super self::_Bm2&Object&Am2::•()
     ;
 }
 abstract class _Cm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::_Cm2&Object&Am2::Z> {
@@ -256,7 +256,7 @@
 }
 class Cm2<Z extends core::Object = dynamic> extends self::_Cm2&Object&Am2<self::Cm2::Z> {
   synthetic constructor •() → self::Cm2<self::Cm2::Z>
-    : super core::Object::•()
+    : super self::_Cm2&Object&Am2::•()
     ;
 }
 abstract class _Dm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<() → core::int, self::_Dm2&Object&Am2::Z> {
@@ -266,7 +266,7 @@
 }
 class Dm2<Z extends core::Object = dynamic> extends self::_Dm2&Object&Am2<self::Dm2::Z> {
   synthetic constructor •() → self::Dm2<self::Dm2::Z>
-    : super core::Object::•()
+    : super self::_Dm2&Object&Am2::•()
     ;
 }
 abstract class _Em2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<() → dynamic, self::_Em2&Object&Am2::Z> {
@@ -276,7 +276,7 @@
 }
 class Em2<Z extends core::Object = dynamic> extends self::_Em2&Object&Am2<self::Em2::Z> {
   synthetic constructor •() → self::Em2<self::Em2::Z>
-    : super core::Object::•()
+    : super self::_Em2&Object&Am2::•()
     ;
 }
 abstract class _Fm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<() → dynamic, self::_Fm2&Object&Am2::Z> {
@@ -286,7 +286,7 @@
 }
 class Fm2<Z extends core::Object = dynamic> extends self::_Fm2&Object&Am2<self::Fm2::Z> {
   synthetic constructor •() → self::Fm2<self::Fm2::Z>
-    : super core::Object::•()
+    : super self::_Fm2&Object&Am2::•()
     ;
 }
 abstract class _Gm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<({x: core::int}) → dynamic, self::_Gm2&Object&Am2::Z> {
@@ -296,7 +296,7 @@
 }
 class Gm2<Z extends core::Object = dynamic> extends self::_Gm2&Object&Am2<self::Gm2::Z> {
   synthetic constructor •() → self::Gm2<self::Gm2::Z>
-    : super core::Object::•()
+    : super self::_Gm2&Object&Am2::•()
     ;
 }
 abstract class _Hm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::_Hm2&Object&Am2::Z> {
@@ -306,7 +306,7 @@
 }
 class Hm2<Z extends core::Object = dynamic> extends self::_Hm2&Object&Am2<self::Hm2::Z> {
   synthetic constructor •() → self::Hm2<self::Hm2::Z>
-    : super core::Object::•()
+    : super self::_Hm2&Object&Am2::•()
     ;
 }
 abstract class _Im2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::_Im2&Object&Am2::Z> {
@@ -316,7 +316,7 @@
 }
 class Im2<Z extends core::Object = dynamic> extends self::_Im2&Object&Am2<self::Im2::Z> {
   synthetic constructor •() → self::Im2<self::Im2::Z>
-    : super core::Object::•()
+    : super self::_Im2&Object&Am2::•()
     ;
 }
 abstract class _Jm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<core::Function, self::_Jm2&Object&Am2::Z> {
@@ -326,7 +326,7 @@
 }
 class Jm2<Z extends core::Object = dynamic> extends self::_Jm2&Object&Am2<self::Jm2::Z> {
   synthetic constructor •() → self::Jm2<self::Jm2::Z>
-    : super core::Object::•()
+    : super self::_Jm2&Object&Am2::•()
     ;
 }
 abstract class _Km2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<(core::Function) → dynamic, self::_Km2&Object&Am2::Z> {
@@ -336,7 +336,7 @@
 }
 class Km2<Z extends core::Object = dynamic> extends self::_Km2&Object&Am2<self::Km2::Z> {
   synthetic constructor •() → self::Km2<self::Km2::Z>
-    : super core::Object::•()
+    : super self::_Km2&Object&Am2::•()
     ;
 }
 abstract class _Lm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<() → (() → core::Function) → dynamic, self::_Lm2&Object&Am2::Z> {
@@ -346,7 +346,7 @@
 }
 class Lm2<Z extends core::Object = dynamic> extends self::_Lm2&Object&Am2<self::Lm2::Z> {
   synthetic constructor •() → self::Lm2<self::Lm2::Z>
-    : super core::Object::•()
+    : super self::_Lm2&Object&Am2::•()
     ;
 }
 class Mm2<Z extends core::Object = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::Mm2::Z> {
@@ -416,7 +416,7 @@
 }
 class Bm3<Z extends core::Object = dynamic> extends self::_Bm3&Object&Am3<self::Bm3::Z> {
   synthetic constructor •() → self::Bm3<self::Bm3::Z>
-    : super core::Object::•()
+    : super self::_Bm3&Object&Am3::•()
     ;
 }
 abstract class _Cm3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<(core::int) → dynamic, self::_Cm3&Object&Am3::Z> {
@@ -426,7 +426,7 @@
 }
 class Cm3<Z extends core::Object = dynamic> extends self::_Cm3&Object&Am3<self::Cm3::Z> {
   synthetic constructor •() → self::Cm3<self::Cm3::Z>
-    : super core::Object::•()
+    : super self::_Cm3&Object&Am3::•()
     ;
 }
 abstract class _Dm3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<() → core::int, self::_Dm3&Object&Am3::Z> {
@@ -436,7 +436,7 @@
 }
 class Dm3<Z extends core::Object = dynamic> extends self::_Dm3&Object&Am3<self::Dm3::Z> {
   synthetic constructor •() → self::Dm3<self::Dm3::Z>
-    : super core::Object::•()
+    : super self::_Dm3&Object&Am3::•()
     ;
 }
 abstract class _Em3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<() → dynamic, self::_Em3&Object&Am3::Z> {
@@ -446,7 +446,7 @@
 }
 class Em3<Z extends core::Object = dynamic> extends self::_Em3&Object&Am3<self::Em3::Z> {
   synthetic constructor •() → self::Em3<self::Em3::Z>
-    : super core::Object::•()
+    : super self::_Em3&Object&Am3::•()
     ;
 }
 abstract class _Fm3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<() → dynamic, self::_Fm3&Object&Am3::Z> {
@@ -456,7 +456,7 @@
 }
 class Fm3<Z extends core::Object = dynamic> extends self::_Fm3&Object&Am3<self::Fm3::Z> {
   synthetic constructor •() → self::Fm3<self::Fm3::Z>
-    : super core::Object::•()
+    : super self::_Fm3&Object&Am3::•()
     ;
 }
 abstract class _Gm3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<({x: core::int}) → dynamic, self::_Gm3&Object&Am3::Z> {
@@ -466,7 +466,7 @@
 }
 class Gm3<Z extends core::Object = dynamic> extends self::_Gm3&Object&Am3<self::Gm3::Z> {
   synthetic constructor •() → self::Gm3<self::Gm3::Z>
-    : super core::Object::•()
+    : super self::_Gm3&Object&Am3::•()
     ;
 }
 abstract class _Hm3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<([core::int]) → dynamic, self::_Hm3&Object&Am3::Z> {
@@ -476,7 +476,7 @@
 }
 class Hm3<Z extends core::Object = dynamic> extends self::_Hm3&Object&Am3<self::Hm3::Z> {
   synthetic constructor •() → self::Hm3<self::Hm3::Z>
-    : super core::Object::•()
+    : super self::_Hm3&Object&Am3::•()
     ;
 }
 abstract class _Im3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<([core::int]) → dynamic, self::_Im3&Object&Am3::Z> {
@@ -486,7 +486,7 @@
 }
 class Im3<Z extends core::Object = dynamic> extends self::_Im3&Object&Am3<self::Im3::Z> {
   synthetic constructor •() → self::Im3<self::Im3::Z>
-    : super core::Object::•()
+    : super self::_Im3&Object&Am3::•()
     ;
 }
 abstract class _Jm3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<(core::Function) → dynamic, self::_Jm3&Object&Am3::Z> {
@@ -496,7 +496,7 @@
 }
 class Jm3<Z extends core::Object = dynamic> extends self::_Jm3&Object&Am3<self::Jm3::Z> {
   synthetic constructor •() → self::Jm3<self::Jm3::Z>
-    : super core::Object::•()
+    : super self::_Jm3&Object&Am3::•()
     ;
 }
 abstract class _Km3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<() → (() → core::Function) → dynamic, self::_Km3&Object&Am3::Z> {
@@ -506,7 +506,7 @@
 }
 class Km3<Z extends core::Object = dynamic> extends self::_Km3&Object&Am3<self::Km3::Z> {
   synthetic constructor •() → self::Km3<self::Km3::Z>
-    : super core::Object::•()
+    : super self::_Km3&Object&Am3::•()
     ;
 }
 class Af1<X extends (core::int) → dynamic = dynamic> extends core::Object {
diff --git a/pkg/front_end/testcases/clone_function_type.dart.legacy.transformed.expect b/pkg/front_end/testcases/clone_function_type.dart.legacy.transformed.expect
index 8508c16..e33af86 100644
--- a/pkg/front_end/testcases/clone_function_type.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/clone_function_type.dart.legacy.transformed.expect
@@ -50,7 +50,7 @@
 }
 class Bm1<Z extends core::Object = dynamic> extends self::_Bm1&Object&Am1<self::Bm1::Z> {
   synthetic constructor •() → self::Bm1<self::Bm1::Z>
-    : super core::Object::•()
+    : super self::_Bm1&Object&Am1::•()
     ;
 }
 abstract class _Cm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<(core::int) → dynamic, self::_Cm1&Object&Am1::Z> {
@@ -60,7 +60,7 @@
 }
 class Cm1<Z extends core::Object = dynamic> extends self::_Cm1&Object&Am1<self::Cm1::Z> {
   synthetic constructor •() → self::Cm1<self::Cm1::Z>
-    : super core::Object::•()
+    : super self::_Cm1&Object&Am1::•()
     ;
 }
 abstract class _Dm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<() → core::int, self::_Dm1&Object&Am1::Z> {
@@ -70,7 +70,7 @@
 }
 class Dm1<Z extends core::Object = dynamic> extends self::_Dm1&Object&Am1<self::Dm1::Z> {
   synthetic constructor •() → self::Dm1<self::Dm1::Z>
-    : super core::Object::•()
+    : super self::_Dm1&Object&Am1::•()
     ;
 }
 abstract class _Em1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<() → dynamic, self::_Em1&Object&Am1::Z> {
@@ -80,7 +80,7 @@
 }
 class Em1<Z extends core::Object = dynamic> extends self::_Em1&Object&Am1<self::Em1::Z> {
   synthetic constructor •() → self::Em1<self::Em1::Z>
-    : super core::Object::•()
+    : super self::_Em1&Object&Am1::•()
     ;
 }
 abstract class _Fm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<() → dynamic, self::_Fm1&Object&Am1::Z> {
@@ -90,7 +90,7 @@
 }
 class Fm1<Z extends core::Object = dynamic> extends self::_Fm1&Object&Am1<self::Fm1::Z> {
   synthetic constructor •() → self::Fm1<self::Fm1::Z>
-    : super core::Object::•()
+    : super self::_Fm1&Object&Am1::•()
     ;
 }
 abstract class _Gm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<({x: core::int}) → dynamic, self::_Gm1&Object&Am1::Z> {
@@ -100,7 +100,7 @@
 }
 class Gm1<Z extends core::Object = dynamic> extends self::_Gm1&Object&Am1<self::Gm1::Z> {
   synthetic constructor •() → self::Gm1<self::Gm1::Z>
-    : super core::Object::•()
+    : super self::_Gm1&Object&Am1::•()
     ;
 }
 abstract class _Hm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<([core::int]) → dynamic, self::_Hm1&Object&Am1::Z> {
@@ -110,7 +110,7 @@
 }
 class Hm1<Z extends core::Object = dynamic> extends self::_Hm1&Object&Am1<self::Hm1::Z> {
   synthetic constructor •() → self::Hm1<self::Hm1::Z>
-    : super core::Object::•()
+    : super self::_Hm1&Object&Am1::•()
     ;
 }
 abstract class _Im1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<([core::int]) → dynamic, self::_Im1&Object&Am1::Z> {
@@ -120,7 +120,7 @@
 }
 class Im1<Z extends core::Object = dynamic> extends self::_Im1&Object&Am1<self::Im1::Z> {
   synthetic constructor •() → self::Im1<self::Im1::Z>
-    : super core::Object::•()
+    : super self::_Im1&Object&Am1::•()
     ;
 }
 abstract class _Jm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<core::Function, self::_Jm1&Object&Am1::Z> {
@@ -130,7 +130,7 @@
 }
 class Jm1<Z extends core::Object = dynamic> extends self::_Jm1&Object&Am1<self::Jm1::Z> {
   synthetic constructor •() → self::Jm1<self::Jm1::Z>
-    : super core::Object::•()
+    : super self::_Jm1&Object&Am1::•()
     ;
 }
 abstract class _Km1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<(core::Function) → dynamic, self::_Km1&Object&Am1::Z> {
@@ -140,7 +140,7 @@
 }
 class Km1<Z extends core::Object = dynamic> extends self::_Km1&Object&Am1<self::Km1::Z> {
   synthetic constructor •() → self::Km1<self::Km1::Z>
-    : super core::Object::•()
+    : super self::_Km1&Object&Am1::•()
     ;
 }
 abstract class _Lm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<() → (() → core::Function) → dynamic, self::_Lm1&Object&Am1::Z> {
@@ -150,7 +150,7 @@
 }
 class Lm1<Z extends core::Object = dynamic> extends self::_Lm1&Object&Am1<self::Lm1::Z> {
   synthetic constructor •() → self::Lm1<self::Lm1::Z>
-    : super core::Object::•()
+    : super self::_Lm1&Object&Am1::•()
     ;
 }
 class Mm1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<(core::int) → dynamic, self::Mm1::Z> {
@@ -220,7 +220,7 @@
 }
 class Bm2<Z extends core::Object = dynamic> extends self::_Bm2&Object&Am2<self::Bm2::Z> {
   synthetic constructor •() → self::Bm2<self::Bm2::Z>
-    : super core::Object::•()
+    : super self::_Bm2&Object&Am2::•()
     ;
 }
 abstract class _Cm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<(core::int) → dynamic, self::_Cm2&Object&Am2::Z> {
@@ -230,7 +230,7 @@
 }
 class Cm2<Z extends core::Object = dynamic> extends self::_Cm2&Object&Am2<self::Cm2::Z> {
   synthetic constructor •() → self::Cm2<self::Cm2::Z>
-    : super core::Object::•()
+    : super self::_Cm2&Object&Am2::•()
     ;
 }
 abstract class _Dm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<() → core::int, self::_Dm2&Object&Am2::Z> {
@@ -240,7 +240,7 @@
 }
 class Dm2<Z extends core::Object = dynamic> extends self::_Dm2&Object&Am2<self::Dm2::Z> {
   synthetic constructor •() → self::Dm2<self::Dm2::Z>
-    : super core::Object::•()
+    : super self::_Dm2&Object&Am2::•()
     ;
 }
 abstract class _Em2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<() → dynamic, self::_Em2&Object&Am2::Z> {
@@ -250,7 +250,7 @@
 }
 class Em2<Z extends core::Object = dynamic> extends self::_Em2&Object&Am2<self::Em2::Z> {
   synthetic constructor •() → self::Em2<self::Em2::Z>
-    : super core::Object::•()
+    : super self::_Em2&Object&Am2::•()
     ;
 }
 abstract class _Fm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<() → dynamic, self::_Fm2&Object&Am2::Z> {
@@ -260,7 +260,7 @@
 }
 class Fm2<Z extends core::Object = dynamic> extends self::_Fm2&Object&Am2<self::Fm2::Z> {
   synthetic constructor •() → self::Fm2<self::Fm2::Z>
-    : super core::Object::•()
+    : super self::_Fm2&Object&Am2::•()
     ;
 }
 abstract class _Gm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<({x: core::int}) → dynamic, self::_Gm2&Object&Am2::Z> {
@@ -270,7 +270,7 @@
 }
 class Gm2<Z extends core::Object = dynamic> extends self::_Gm2&Object&Am2<self::Gm2::Z> {
   synthetic constructor •() → self::Gm2<self::Gm2::Z>
-    : super core::Object::•()
+    : super self::_Gm2&Object&Am2::•()
     ;
 }
 abstract class _Hm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<([core::int]) → dynamic, self::_Hm2&Object&Am2::Z> {
@@ -280,7 +280,7 @@
 }
 class Hm2<Z extends core::Object = dynamic> extends self::_Hm2&Object&Am2<self::Hm2::Z> {
   synthetic constructor •() → self::Hm2<self::Hm2::Z>
-    : super core::Object::•()
+    : super self::_Hm2&Object&Am2::•()
     ;
 }
 abstract class _Im2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<([core::int]) → dynamic, self::_Im2&Object&Am2::Z> {
@@ -290,7 +290,7 @@
 }
 class Im2<Z extends core::Object = dynamic> extends self::_Im2&Object&Am2<self::Im2::Z> {
   synthetic constructor •() → self::Im2<self::Im2::Z>
-    : super core::Object::•()
+    : super self::_Im2&Object&Am2::•()
     ;
 }
 abstract class _Jm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<core::Function, self::_Jm2&Object&Am2::Z> {
@@ -300,7 +300,7 @@
 }
 class Jm2<Z extends core::Object = dynamic> extends self::_Jm2&Object&Am2<self::Jm2::Z> {
   synthetic constructor •() → self::Jm2<self::Jm2::Z>
-    : super core::Object::•()
+    : super self::_Jm2&Object&Am2::•()
     ;
 }
 abstract class _Km2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<(core::Function) → dynamic, self::_Km2&Object&Am2::Z> {
@@ -310,7 +310,7 @@
 }
 class Km2<Z extends core::Object = dynamic> extends self::_Km2&Object&Am2<self::Km2::Z> {
   synthetic constructor •() → self::Km2<self::Km2::Z>
-    : super core::Object::•()
+    : super self::_Km2&Object&Am2::•()
     ;
 }
 abstract class _Lm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<() → (() → core::Function) → dynamic, self::_Lm2&Object&Am2::Z> {
@@ -320,7 +320,7 @@
 }
 class Lm2<Z extends core::Object = dynamic> extends self::_Lm2&Object&Am2<self::Lm2::Z> {
   synthetic constructor •() → self::Lm2<self::Lm2::Z>
-    : super core::Object::•()
+    : super self::_Lm2&Object&Am2::•()
     ;
 }
 class Mm2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<(core::int) → dynamic, self::Mm2::Z> {
@@ -390,7 +390,7 @@
 }
 class Bm3<Z extends core::Object = dynamic> extends self::_Bm3&Object&Am3<self::Bm3::Z> {
   synthetic constructor •() → self::Bm3<self::Bm3::Z>
-    : super core::Object::•()
+    : super self::_Bm3&Object&Am3::•()
     ;
 }
 abstract class _Cm3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<(core::int) → dynamic, self::_Cm3&Object&Am3::Z> {
@@ -400,7 +400,7 @@
 }
 class Cm3<Z extends core::Object = dynamic> extends self::_Cm3&Object&Am3<self::Cm3::Z> {
   synthetic constructor •() → self::Cm3<self::Cm3::Z>
-    : super core::Object::•()
+    : super self::_Cm3&Object&Am3::•()
     ;
 }
 abstract class _Dm3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<() → core::int, self::_Dm3&Object&Am3::Z> {
@@ -410,7 +410,7 @@
 }
 class Dm3<Z extends core::Object = dynamic> extends self::_Dm3&Object&Am3<self::Dm3::Z> {
   synthetic constructor •() → self::Dm3<self::Dm3::Z>
-    : super core::Object::•()
+    : super self::_Dm3&Object&Am3::•()
     ;
 }
 abstract class _Em3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<() → dynamic, self::_Em3&Object&Am3::Z> {
@@ -420,7 +420,7 @@
 }
 class Em3<Z extends core::Object = dynamic> extends self::_Em3&Object&Am3<self::Em3::Z> {
   synthetic constructor •() → self::Em3<self::Em3::Z>
-    : super core::Object::•()
+    : super self::_Em3&Object&Am3::•()
     ;
 }
 abstract class _Fm3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<() → dynamic, self::_Fm3&Object&Am3::Z> {
@@ -430,7 +430,7 @@
 }
 class Fm3<Z extends core::Object = dynamic> extends self::_Fm3&Object&Am3<self::Fm3::Z> {
   synthetic constructor •() → self::Fm3<self::Fm3::Z>
-    : super core::Object::•()
+    : super self::_Fm3&Object&Am3::•()
     ;
 }
 abstract class _Gm3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<({x: core::int}) → dynamic, self::_Gm3&Object&Am3::Z> {
@@ -440,7 +440,7 @@
 }
 class Gm3<Z extends core::Object = dynamic> extends self::_Gm3&Object&Am3<self::Gm3::Z> {
   synthetic constructor •() → self::Gm3<self::Gm3::Z>
-    : super core::Object::•()
+    : super self::_Gm3&Object&Am3::•()
     ;
 }
 abstract class _Hm3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<([core::int]) → dynamic, self::_Hm3&Object&Am3::Z> {
@@ -450,7 +450,7 @@
 }
 class Hm3<Z extends core::Object = dynamic> extends self::_Hm3&Object&Am3<self::Hm3::Z> {
   synthetic constructor •() → self::Hm3<self::Hm3::Z>
-    : super core::Object::•()
+    : super self::_Hm3&Object&Am3::•()
     ;
 }
 abstract class _Im3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<([core::int]) → dynamic, self::_Im3&Object&Am3::Z> {
@@ -460,7 +460,7 @@
 }
 class Im3<Z extends core::Object = dynamic> extends self::_Im3&Object&Am3<self::Im3::Z> {
   synthetic constructor •() → self::Im3<self::Im3::Z>
-    : super core::Object::•()
+    : super self::_Im3&Object&Am3::•()
     ;
 }
 abstract class _Jm3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<(core::Function) → dynamic, self::_Jm3&Object&Am3::Z> {
@@ -470,7 +470,7 @@
 }
 class Jm3<Z extends core::Object = dynamic> extends self::_Jm3&Object&Am3<self::Jm3::Z> {
   synthetic constructor •() → self::Jm3<self::Jm3::Z>
-    : super core::Object::•()
+    : super self::_Jm3&Object&Am3::•()
     ;
 }
 abstract class _Km3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<() → (() → core::Function) → dynamic, self::_Km3&Object&Am3::Z> {
@@ -480,7 +480,7 @@
 }
 class Km3<Z extends core::Object = dynamic> extends self::_Km3&Object&Am3<self::Km3::Z> {
   synthetic constructor •() → self::Km3<self::Km3::Z>
-    : super core::Object::•()
+    : super self::_Km3&Object&Am3::•()
     ;
 }
 class Af1<X extends (core::int) → dynamic = dynamic> extends core::Object {
diff --git a/pkg/front_end/testcases/clone_function_type.dart.strong.expect b/pkg/front_end/testcases/clone_function_type.dart.strong.expect
index ae0741e..5b19c6c 100644
--- a/pkg/front_end/testcases/clone_function_type.dart.strong.expect
+++ b/pkg/front_end/testcases/clone_function_type.dart.strong.expect
@@ -188,7 +188,7 @@
 }
 class Bm1<Z extends core::Object = dynamic> extends self::_Bm1&Object&Am1<self::Bm1::Z> {
   synthetic constructor •() → self::Bm1<self::Bm1::Z>
-    : super core::Object::•()
+    : super self::_Bm1&Object&Am1::•()
     ;
 }
 abstract class _Cm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::_Cm1&Object&Am1::Z> {
@@ -198,7 +198,7 @@
 }
 class Cm1<Z extends core::Object = dynamic> extends self::_Cm1&Object&Am1<self::Cm1::Z> {
   synthetic constructor •() → self::Cm1<self::Cm1::Z>
-    : super core::Object::•()
+    : super self::_Cm1&Object&Am1::•()
     ;
 }
 abstract class _Dm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<() → core::int, self::_Dm1&Object&Am1::Z> {
@@ -208,7 +208,7 @@
 }
 class Dm1<Z extends core::Object = dynamic> extends self::_Dm1&Object&Am1<self::Dm1::Z> {
   synthetic constructor •() → self::Dm1<self::Dm1::Z>
-    : super core::Object::•()
+    : super self::_Dm1&Object&Am1::•()
     ;
 }
 abstract class _Em1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<() → dynamic, self::_Em1&Object&Am1::Z> {
@@ -218,7 +218,7 @@
 }
 class Em1<Z extends core::Object = dynamic> extends self::_Em1&Object&Am1<self::Em1::Z> {
   synthetic constructor •() → self::Em1<self::Em1::Z>
-    : super core::Object::•()
+    : super self::_Em1&Object&Am1::•()
     ;
 }
 abstract class _Fm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<() → dynamic, self::_Fm1&Object&Am1::Z> {
@@ -228,7 +228,7 @@
 }
 class Fm1<Z extends core::Object = dynamic> extends self::_Fm1&Object&Am1<self::Fm1::Z> {
   synthetic constructor •() → self::Fm1<self::Fm1::Z>
-    : super core::Object::•()
+    : super self::_Fm1&Object&Am1::•()
     ;
 }
 abstract class _Gm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<({x: core::int}) → dynamic, self::_Gm1&Object&Am1::Z> {
@@ -238,7 +238,7 @@
 }
 class Gm1<Z extends core::Object = dynamic> extends self::_Gm1&Object&Am1<self::Gm1::Z> {
   synthetic constructor •() → self::Gm1<self::Gm1::Z>
-    : super core::Object::•()
+    : super self::_Gm1&Object&Am1::•()
     ;
 }
 abstract class _Hm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::_Hm1&Object&Am1::Z> {
@@ -248,7 +248,7 @@
 }
 class Hm1<Z extends core::Object = dynamic> extends self::_Hm1&Object&Am1<self::Hm1::Z> {
   synthetic constructor •() → self::Hm1<self::Hm1::Z>
-    : super core::Object::•()
+    : super self::_Hm1&Object&Am1::•()
     ;
 }
 abstract class _Im1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<([core::int]) → dynamic, self::_Im1&Object&Am1::Z> {
@@ -258,7 +258,7 @@
 }
 class Im1<Z extends core::Object = dynamic> extends self::_Im1&Object&Am1<self::Im1::Z> {
   synthetic constructor •() → self::Im1<self::Im1::Z>
-    : super core::Object::•()
+    : super self::_Im1&Object&Am1::•()
     ;
 }
 abstract class _Jm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<core::Function, self::_Jm1&Object&Am1::Z> {
@@ -268,7 +268,7 @@
 }
 class Jm1<Z extends core::Object = dynamic> extends self::_Jm1&Object&Am1<self::Jm1::Z> {
   synthetic constructor •() → self::Jm1<self::Jm1::Z>
-    : super core::Object::•()
+    : super self::_Jm1&Object&Am1::•()
     ;
 }
 abstract class _Km1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<(core::Function) → dynamic, self::_Km1&Object&Am1::Z> {
@@ -278,7 +278,7 @@
 }
 class Km1<Z extends core::Object = dynamic> extends self::_Km1&Object&Am1<self::Km1::Z> {
   synthetic constructor •() → self::Km1<self::Km1::Z>
-    : super core::Object::•()
+    : super self::_Km1&Object&Am1::•()
     ;
 }
 abstract class _Lm1&Object&Am1<Z extends core::Object = dynamic> = core::Object with self::Am1<() → (() → core::Function) → dynamic, self::_Lm1&Object&Am1::Z> {
@@ -288,7 +288,7 @@
 }
 class Lm1<Z extends core::Object = dynamic> extends self::_Lm1&Object&Am1<self::Lm1::Z> {
   synthetic constructor •() → self::Lm1<self::Lm1::Z>
-    : super core::Object::•()
+    : super self::_Lm1&Object&Am1::•()
     ;
 }
 class Mm1<Z extends core::Object = dynamic> = core::Object with self::Am1<(core::int) → dynamic, self::Mm1::Z> {
@@ -358,7 +358,7 @@
 }
 class Bm2<Z extends core::Object = dynamic> extends self::_Bm2&Object&Am2<self::Bm2::Z> {
   synthetic constructor •() → self::Bm2<self::Bm2::Z>
-    : super core::Object::•()
+    : super self::_Bm2&Object&Am2::•()
     ;
 }
 abstract class _Cm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::_Cm2&Object&Am2::Z> {
@@ -368,7 +368,7 @@
 }
 class Cm2<Z extends core::Object = dynamic> extends self::_Cm2&Object&Am2<self::Cm2::Z> {
   synthetic constructor •() → self::Cm2<self::Cm2::Z>
-    : super core::Object::•()
+    : super self::_Cm2&Object&Am2::•()
     ;
 }
 abstract class _Dm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<() → core::int, self::_Dm2&Object&Am2::Z> {
@@ -378,7 +378,7 @@
 }
 class Dm2<Z extends core::Object = dynamic> extends self::_Dm2&Object&Am2<self::Dm2::Z> {
   synthetic constructor •() → self::Dm2<self::Dm2::Z>
-    : super core::Object::•()
+    : super self::_Dm2&Object&Am2::•()
     ;
 }
 abstract class _Em2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<() → dynamic, self::_Em2&Object&Am2::Z> {
@@ -388,7 +388,7 @@
 }
 class Em2<Z extends core::Object = dynamic> extends self::_Em2&Object&Am2<self::Em2::Z> {
   synthetic constructor •() → self::Em2<self::Em2::Z>
-    : super core::Object::•()
+    : super self::_Em2&Object&Am2::•()
     ;
 }
 abstract class _Fm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<() → dynamic, self::_Fm2&Object&Am2::Z> {
@@ -398,7 +398,7 @@
 }
 class Fm2<Z extends core::Object = dynamic> extends self::_Fm2&Object&Am2<self::Fm2::Z> {
   synthetic constructor •() → self::Fm2<self::Fm2::Z>
-    : super core::Object::•()
+    : super self::_Fm2&Object&Am2::•()
     ;
 }
 abstract class _Gm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<({x: core::int}) → dynamic, self::_Gm2&Object&Am2::Z> {
@@ -408,7 +408,7 @@
 }
 class Gm2<Z extends core::Object = dynamic> extends self::_Gm2&Object&Am2<self::Gm2::Z> {
   synthetic constructor •() → self::Gm2<self::Gm2::Z>
-    : super core::Object::•()
+    : super self::_Gm2&Object&Am2::•()
     ;
 }
 abstract class _Hm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::_Hm2&Object&Am2::Z> {
@@ -418,7 +418,7 @@
 }
 class Hm2<Z extends core::Object = dynamic> extends self::_Hm2&Object&Am2<self::Hm2::Z> {
   synthetic constructor •() → self::Hm2<self::Hm2::Z>
-    : super core::Object::•()
+    : super self::_Hm2&Object&Am2::•()
     ;
 }
 abstract class _Im2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<([core::int]) → dynamic, self::_Im2&Object&Am2::Z> {
@@ -428,7 +428,7 @@
 }
 class Im2<Z extends core::Object = dynamic> extends self::_Im2&Object&Am2<self::Im2::Z> {
   synthetic constructor •() → self::Im2<self::Im2::Z>
-    : super core::Object::•()
+    : super self::_Im2&Object&Am2::•()
     ;
 }
 abstract class _Jm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<core::Function, self::_Jm2&Object&Am2::Z> {
@@ -438,7 +438,7 @@
 }
 class Jm2<Z extends core::Object = dynamic> extends self::_Jm2&Object&Am2<self::Jm2::Z> {
   synthetic constructor •() → self::Jm2<self::Jm2::Z>
-    : super core::Object::•()
+    : super self::_Jm2&Object&Am2::•()
     ;
 }
 abstract class _Km2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<(core::Function) → dynamic, self::_Km2&Object&Am2::Z> {
@@ -448,7 +448,7 @@
 }
 class Km2<Z extends core::Object = dynamic> extends self::_Km2&Object&Am2<self::Km2::Z> {
   synthetic constructor •() → self::Km2<self::Km2::Z>
-    : super core::Object::•()
+    : super self::_Km2&Object&Am2::•()
     ;
 }
 abstract class _Lm2&Object&Am2<Z extends core::Object = dynamic> = core::Object with self::Am2<() → (() → core::Function) → dynamic, self::_Lm2&Object&Am2::Z> {
@@ -458,7 +458,7 @@
 }
 class Lm2<Z extends core::Object = dynamic> extends self::_Lm2&Object&Am2<self::Lm2::Z> {
   synthetic constructor •() → self::Lm2<self::Lm2::Z>
-    : super core::Object::•()
+    : super self::_Lm2&Object&Am2::•()
     ;
 }
 class Mm2<Z extends core::Object = dynamic> = core::Object with self::Am2<(core::int) → dynamic, self::Mm2::Z> {
@@ -528,7 +528,7 @@
 }
 class Bm3<Z extends core::Object = dynamic> extends self::_Bm3&Object&Am3<self::Bm3::Z> {
   synthetic constructor •() → self::Bm3<self::Bm3::Z>
-    : super core::Object::•()
+    : super self::_Bm3&Object&Am3::•()
     ;
 }
 abstract class _Cm3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<(core::int) → dynamic, self::_Cm3&Object&Am3::Z> {
@@ -538,7 +538,7 @@
 }
 class Cm3<Z extends core::Object = dynamic> extends self::_Cm3&Object&Am3<self::Cm3::Z> {
   synthetic constructor •() → self::Cm3<self::Cm3::Z>
-    : super core::Object::•()
+    : super self::_Cm3&Object&Am3::•()
     ;
 }
 abstract class _Dm3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<() → core::int, self::_Dm3&Object&Am3::Z> {
@@ -548,7 +548,7 @@
 }
 class Dm3<Z extends core::Object = dynamic> extends self::_Dm3&Object&Am3<self::Dm3::Z> {
   synthetic constructor •() → self::Dm3<self::Dm3::Z>
-    : super core::Object::•()
+    : super self::_Dm3&Object&Am3::•()
     ;
 }
 abstract class _Em3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<() → dynamic, self::_Em3&Object&Am3::Z> {
@@ -558,7 +558,7 @@
 }
 class Em3<Z extends core::Object = dynamic> extends self::_Em3&Object&Am3<self::Em3::Z> {
   synthetic constructor •() → self::Em3<self::Em3::Z>
-    : super core::Object::•()
+    : super self::_Em3&Object&Am3::•()
     ;
 }
 abstract class _Fm3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<() → dynamic, self::_Fm3&Object&Am3::Z> {
@@ -568,7 +568,7 @@
 }
 class Fm3<Z extends core::Object = dynamic> extends self::_Fm3&Object&Am3<self::Fm3::Z> {
   synthetic constructor •() → self::Fm3<self::Fm3::Z>
-    : super core::Object::•()
+    : super self::_Fm3&Object&Am3::•()
     ;
 }
 abstract class _Gm3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<({x: core::int}) → dynamic, self::_Gm3&Object&Am3::Z> {
@@ -578,7 +578,7 @@
 }
 class Gm3<Z extends core::Object = dynamic> extends self::_Gm3&Object&Am3<self::Gm3::Z> {
   synthetic constructor •() → self::Gm3<self::Gm3::Z>
-    : super core::Object::•()
+    : super self::_Gm3&Object&Am3::•()
     ;
 }
 abstract class _Hm3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<([core::int]) → dynamic, self::_Hm3&Object&Am3::Z> {
@@ -588,7 +588,7 @@
 }
 class Hm3<Z extends core::Object = dynamic> extends self::_Hm3&Object&Am3<self::Hm3::Z> {
   synthetic constructor •() → self::Hm3<self::Hm3::Z>
-    : super core::Object::•()
+    : super self::_Hm3&Object&Am3::•()
     ;
 }
 abstract class _Im3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<([core::int]) → dynamic, self::_Im3&Object&Am3::Z> {
@@ -598,7 +598,7 @@
 }
 class Im3<Z extends core::Object = dynamic> extends self::_Im3&Object&Am3<self::Im3::Z> {
   synthetic constructor •() → self::Im3<self::Im3::Z>
-    : super core::Object::•()
+    : super self::_Im3&Object&Am3::•()
     ;
 }
 abstract class _Jm3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<(core::Function) → dynamic, self::_Jm3&Object&Am3::Z> {
@@ -608,7 +608,7 @@
 }
 class Jm3<Z extends core::Object = dynamic> extends self::_Jm3&Object&Am3<self::Jm3::Z> {
   synthetic constructor •() → self::Jm3<self::Jm3::Z>
-    : super core::Object::•()
+    : super self::_Jm3&Object&Am3::•()
     ;
 }
 abstract class _Km3&Object&Am3<Z extends core::Object = dynamic> = core::Object with self::Am3<() → (() → core::Function) → dynamic, self::_Km3&Object&Am3::Z> {
@@ -618,7 +618,7 @@
 }
 class Km3<Z extends core::Object = dynamic> extends self::_Km3&Object&Am3<self::Km3::Z> {
   synthetic constructor •() → self::Km3<self::Km3::Z>
-    : super core::Object::•()
+    : super self::_Km3&Object&Am3::•()
     ;
 }
 class Af1<X extends (core::int) → dynamic = (core::int) → dynamic> extends core::Object {
diff --git a/pkg/front_end/testcases/clone_function_type.dart.strong.transformed.expect b/pkg/front_end/testcases/clone_function_type.dart.strong.transformed.expect
index 22d08e5..78889cf 100644
--- a/pkg/front_end/testcases/clone_function_type.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/clone_function_type.dart.strong.transformed.expect
@@ -94,7 +94,7 @@
 }
 class Bm1<Z extends core::Object = dynamic> extends self::_Bm1&Object&Am1<self::Bm1::Z> {
   synthetic constructor •() → self::Bm1<self::Bm1::Z>
-    : super core::Object::•()
+    : super self::_Bm1&Object&Am1::•()
     ;
 }
 abstract class _Cm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<(core::int) → dynamic, self::_Cm1&Object&Am1::Z> {
@@ -104,7 +104,7 @@
 }
 class Cm1<Z extends core::Object = dynamic> extends self::_Cm1&Object&Am1<self::Cm1::Z> {
   synthetic constructor •() → self::Cm1<self::Cm1::Z>
-    : super core::Object::•()
+    : super self::_Cm1&Object&Am1::•()
     ;
 }
 abstract class _Dm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<() → core::int, self::_Dm1&Object&Am1::Z> {
@@ -114,7 +114,7 @@
 }
 class Dm1<Z extends core::Object = dynamic> extends self::_Dm1&Object&Am1<self::Dm1::Z> {
   synthetic constructor •() → self::Dm1<self::Dm1::Z>
-    : super core::Object::•()
+    : super self::_Dm1&Object&Am1::•()
     ;
 }
 abstract class _Em1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<() → dynamic, self::_Em1&Object&Am1::Z> {
@@ -124,7 +124,7 @@
 }
 class Em1<Z extends core::Object = dynamic> extends self::_Em1&Object&Am1<self::Em1::Z> {
   synthetic constructor •() → self::Em1<self::Em1::Z>
-    : super core::Object::•()
+    : super self::_Em1&Object&Am1::•()
     ;
 }
 abstract class _Fm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<() → dynamic, self::_Fm1&Object&Am1::Z> {
@@ -134,7 +134,7 @@
 }
 class Fm1<Z extends core::Object = dynamic> extends self::_Fm1&Object&Am1<self::Fm1::Z> {
   synthetic constructor •() → self::Fm1<self::Fm1::Z>
-    : super core::Object::•()
+    : super self::_Fm1&Object&Am1::•()
     ;
 }
 abstract class _Gm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<({x: core::int}) → dynamic, self::_Gm1&Object&Am1::Z> {
@@ -144,7 +144,7 @@
 }
 class Gm1<Z extends core::Object = dynamic> extends self::_Gm1&Object&Am1<self::Gm1::Z> {
   synthetic constructor •() → self::Gm1<self::Gm1::Z>
-    : super core::Object::•()
+    : super self::_Gm1&Object&Am1::•()
     ;
 }
 abstract class _Hm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<([core::int]) → dynamic, self::_Hm1&Object&Am1::Z> {
@@ -154,7 +154,7 @@
 }
 class Hm1<Z extends core::Object = dynamic> extends self::_Hm1&Object&Am1<self::Hm1::Z> {
   synthetic constructor •() → self::Hm1<self::Hm1::Z>
-    : super core::Object::•()
+    : super self::_Hm1&Object&Am1::•()
     ;
 }
 abstract class _Im1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<([core::int]) → dynamic, self::_Im1&Object&Am1::Z> {
@@ -164,7 +164,7 @@
 }
 class Im1<Z extends core::Object = dynamic> extends self::_Im1&Object&Am1<self::Im1::Z> {
   synthetic constructor •() → self::Im1<self::Im1::Z>
-    : super core::Object::•()
+    : super self::_Im1&Object&Am1::•()
     ;
 }
 abstract class _Jm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<core::Function, self::_Jm1&Object&Am1::Z> {
@@ -174,7 +174,7 @@
 }
 class Jm1<Z extends core::Object = dynamic> extends self::_Jm1&Object&Am1<self::Jm1::Z> {
   synthetic constructor •() → self::Jm1<self::Jm1::Z>
-    : super core::Object::•()
+    : super self::_Jm1&Object&Am1::•()
     ;
 }
 abstract class _Km1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<(core::Function) → dynamic, self::_Km1&Object&Am1::Z> {
@@ -184,7 +184,7 @@
 }
 class Km1<Z extends core::Object = dynamic> extends self::_Km1&Object&Am1<self::Km1::Z> {
   synthetic constructor •() → self::Km1<self::Km1::Z>
-    : super core::Object::•()
+    : super self::_Km1&Object&Am1::•()
     ;
 }
 abstract class _Lm1&Object&Am1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<() → (() → core::Function) → dynamic, self::_Lm1&Object&Am1::Z> {
@@ -194,7 +194,7 @@
 }
 class Lm1<Z extends core::Object = dynamic> extends self::_Lm1&Object&Am1<self::Lm1::Z> {
   synthetic constructor •() → self::Lm1<self::Lm1::Z>
-    : super core::Object::•()
+    : super self::_Lm1&Object&Am1::•()
     ;
 }
 class Mm1<Z extends core::Object = dynamic> extends core::Object implements self::Am1<(core::int) → dynamic, self::Mm1::Z> {
@@ -264,7 +264,7 @@
 }
 class Bm2<Z extends core::Object = dynamic> extends self::_Bm2&Object&Am2<self::Bm2::Z> {
   synthetic constructor •() → self::Bm2<self::Bm2::Z>
-    : super core::Object::•()
+    : super self::_Bm2&Object&Am2::•()
     ;
 }
 abstract class _Cm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<(core::int) → dynamic, self::_Cm2&Object&Am2::Z> {
@@ -274,7 +274,7 @@
 }
 class Cm2<Z extends core::Object = dynamic> extends self::_Cm2&Object&Am2<self::Cm2::Z> {
   synthetic constructor •() → self::Cm2<self::Cm2::Z>
-    : super core::Object::•()
+    : super self::_Cm2&Object&Am2::•()
     ;
 }
 abstract class _Dm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<() → core::int, self::_Dm2&Object&Am2::Z> {
@@ -284,7 +284,7 @@
 }
 class Dm2<Z extends core::Object = dynamic> extends self::_Dm2&Object&Am2<self::Dm2::Z> {
   synthetic constructor •() → self::Dm2<self::Dm2::Z>
-    : super core::Object::•()
+    : super self::_Dm2&Object&Am2::•()
     ;
 }
 abstract class _Em2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<() → dynamic, self::_Em2&Object&Am2::Z> {
@@ -294,7 +294,7 @@
 }
 class Em2<Z extends core::Object = dynamic> extends self::_Em2&Object&Am2<self::Em2::Z> {
   synthetic constructor •() → self::Em2<self::Em2::Z>
-    : super core::Object::•()
+    : super self::_Em2&Object&Am2::•()
     ;
 }
 abstract class _Fm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<() → dynamic, self::_Fm2&Object&Am2::Z> {
@@ -304,7 +304,7 @@
 }
 class Fm2<Z extends core::Object = dynamic> extends self::_Fm2&Object&Am2<self::Fm2::Z> {
   synthetic constructor •() → self::Fm2<self::Fm2::Z>
-    : super core::Object::•()
+    : super self::_Fm2&Object&Am2::•()
     ;
 }
 abstract class _Gm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<({x: core::int}) → dynamic, self::_Gm2&Object&Am2::Z> {
@@ -314,7 +314,7 @@
 }
 class Gm2<Z extends core::Object = dynamic> extends self::_Gm2&Object&Am2<self::Gm2::Z> {
   synthetic constructor •() → self::Gm2<self::Gm2::Z>
-    : super core::Object::•()
+    : super self::_Gm2&Object&Am2::•()
     ;
 }
 abstract class _Hm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<([core::int]) → dynamic, self::_Hm2&Object&Am2::Z> {
@@ -324,7 +324,7 @@
 }
 class Hm2<Z extends core::Object = dynamic> extends self::_Hm2&Object&Am2<self::Hm2::Z> {
   synthetic constructor •() → self::Hm2<self::Hm2::Z>
-    : super core::Object::•()
+    : super self::_Hm2&Object&Am2::•()
     ;
 }
 abstract class _Im2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<([core::int]) → dynamic, self::_Im2&Object&Am2::Z> {
@@ -334,7 +334,7 @@
 }
 class Im2<Z extends core::Object = dynamic> extends self::_Im2&Object&Am2<self::Im2::Z> {
   synthetic constructor •() → self::Im2<self::Im2::Z>
-    : super core::Object::•()
+    : super self::_Im2&Object&Am2::•()
     ;
 }
 abstract class _Jm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<core::Function, self::_Jm2&Object&Am2::Z> {
@@ -344,7 +344,7 @@
 }
 class Jm2<Z extends core::Object = dynamic> extends self::_Jm2&Object&Am2<self::Jm2::Z> {
   synthetic constructor •() → self::Jm2<self::Jm2::Z>
-    : super core::Object::•()
+    : super self::_Jm2&Object&Am2::•()
     ;
 }
 abstract class _Km2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<(core::Function) → dynamic, self::_Km2&Object&Am2::Z> {
@@ -354,7 +354,7 @@
 }
 class Km2<Z extends core::Object = dynamic> extends self::_Km2&Object&Am2<self::Km2::Z> {
   synthetic constructor •() → self::Km2<self::Km2::Z>
-    : super core::Object::•()
+    : super self::_Km2&Object&Am2::•()
     ;
 }
 abstract class _Lm2&Object&Am2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<() → (() → core::Function) → dynamic, self::_Lm2&Object&Am2::Z> {
@@ -364,7 +364,7 @@
 }
 class Lm2<Z extends core::Object = dynamic> extends self::_Lm2&Object&Am2<self::Lm2::Z> {
   synthetic constructor •() → self::Lm2<self::Lm2::Z>
-    : super core::Object::•()
+    : super self::_Lm2&Object&Am2::•()
     ;
 }
 class Mm2<Z extends core::Object = dynamic> extends core::Object implements self::Am2<(core::int) → dynamic, self::Mm2::Z> {
@@ -434,7 +434,7 @@
 }
 class Bm3<Z extends core::Object = dynamic> extends self::_Bm3&Object&Am3<self::Bm3::Z> {
   synthetic constructor •() → self::Bm3<self::Bm3::Z>
-    : super core::Object::•()
+    : super self::_Bm3&Object&Am3::•()
     ;
 }
 abstract class _Cm3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<(core::int) → dynamic, self::_Cm3&Object&Am3::Z> {
@@ -444,7 +444,7 @@
 }
 class Cm3<Z extends core::Object = dynamic> extends self::_Cm3&Object&Am3<self::Cm3::Z> {
   synthetic constructor •() → self::Cm3<self::Cm3::Z>
-    : super core::Object::•()
+    : super self::_Cm3&Object&Am3::•()
     ;
 }
 abstract class _Dm3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<() → core::int, self::_Dm3&Object&Am3::Z> {
@@ -454,7 +454,7 @@
 }
 class Dm3<Z extends core::Object = dynamic> extends self::_Dm3&Object&Am3<self::Dm3::Z> {
   synthetic constructor •() → self::Dm3<self::Dm3::Z>
-    : super core::Object::•()
+    : super self::_Dm3&Object&Am3::•()
     ;
 }
 abstract class _Em3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<() → dynamic, self::_Em3&Object&Am3::Z> {
@@ -464,7 +464,7 @@
 }
 class Em3<Z extends core::Object = dynamic> extends self::_Em3&Object&Am3<self::Em3::Z> {
   synthetic constructor •() → self::Em3<self::Em3::Z>
-    : super core::Object::•()
+    : super self::_Em3&Object&Am3::•()
     ;
 }
 abstract class _Fm3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<() → dynamic, self::_Fm3&Object&Am3::Z> {
@@ -474,7 +474,7 @@
 }
 class Fm3<Z extends core::Object = dynamic> extends self::_Fm3&Object&Am3<self::Fm3::Z> {
   synthetic constructor •() → self::Fm3<self::Fm3::Z>
-    : super core::Object::•()
+    : super self::_Fm3&Object&Am3::•()
     ;
 }
 abstract class _Gm3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<({x: core::int}) → dynamic, self::_Gm3&Object&Am3::Z> {
@@ -484,7 +484,7 @@
 }
 class Gm3<Z extends core::Object = dynamic> extends self::_Gm3&Object&Am3<self::Gm3::Z> {
   synthetic constructor •() → self::Gm3<self::Gm3::Z>
-    : super core::Object::•()
+    : super self::_Gm3&Object&Am3::•()
     ;
 }
 abstract class _Hm3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<([core::int]) → dynamic, self::_Hm3&Object&Am3::Z> {
@@ -494,7 +494,7 @@
 }
 class Hm3<Z extends core::Object = dynamic> extends self::_Hm3&Object&Am3<self::Hm3::Z> {
   synthetic constructor •() → self::Hm3<self::Hm3::Z>
-    : super core::Object::•()
+    : super self::_Hm3&Object&Am3::•()
     ;
 }
 abstract class _Im3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<([core::int]) → dynamic, self::_Im3&Object&Am3::Z> {
@@ -504,7 +504,7 @@
 }
 class Im3<Z extends core::Object = dynamic> extends self::_Im3&Object&Am3<self::Im3::Z> {
   synthetic constructor •() → self::Im3<self::Im3::Z>
-    : super core::Object::•()
+    : super self::_Im3&Object&Am3::•()
     ;
 }
 abstract class _Jm3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<(core::Function) → dynamic, self::_Jm3&Object&Am3::Z> {
@@ -514,7 +514,7 @@
 }
 class Jm3<Z extends core::Object = dynamic> extends self::_Jm3&Object&Am3<self::Jm3::Z> {
   synthetic constructor •() → self::Jm3<self::Jm3::Z>
-    : super core::Object::•()
+    : super self::_Jm3&Object&Am3::•()
     ;
 }
 abstract class _Km3&Object&Am3<Z extends core::Object = dynamic> extends core::Object implements self::Am3<() → (() → core::Function) → dynamic, self::_Km3&Object&Am3::Z> {
@@ -524,7 +524,7 @@
 }
 class Km3<Z extends core::Object = dynamic> extends self::_Km3&Object&Am3<self::Km3::Z> {
   synthetic constructor •() → self::Km3<self::Km3::Z>
-    : super core::Object::•()
+    : super self::_Km3&Object&Am3::•()
     ;
 }
 class Af1<X extends (core::int) → dynamic = (core::int) → dynamic> extends core::Object {
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 cb3988f..bd70fa0 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
@@ -47,7 +47,7 @@
 class G extends self::_G&Object&B {
   field dynamic x = null;
   synthetic constructor •() → self::G
-    : super core::Object::•()
+    : super self::_G&Object&B::•()
     ;
 }
 static method main() → dynamic {}
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 c1822ed..e3ffc47 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
@@ -49,7 +49,7 @@
 class G extends self::_G&Object&B {
   field dynamic x = null;
   synthetic constructor •() → self::G
-    : super core::Object::•()
+    : super self::_G&Object&B::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.expect
index fa8f9e8..5c9403f 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.expect
@@ -47,7 +47,7 @@
 class G extends self::_G&Object&B {
   field core::int x = null;
   synthetic constructor •() → self::G
-    : super core::Object::•()
+    : super self::_G&Object&B::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.transformed.expect
index 427dbc2..10315d8 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.transformed.expect
@@ -49,7 +49,7 @@
 class G extends self::_G&Object&B {
   field core::int x = null;
   synthetic constructor •() → self::G
-    : super core::Object::•()
+    : super self::_G&Object&B::•()
     ;
 }
 static method main() → dynamic {}
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 33c6ea7..97bdc20 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
@@ -46,7 +46,7 @@
 class G extends self::_G&Object&B {
   field dynamic x = null;
   synthetic constructor •() → self::G
-    : super core::Object::•()
+    : super self::_G&Object&B::•()
     ;
 }
 static method main() → dynamic {}
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 bf18d3f..a8ed431 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
@@ -47,7 +47,7 @@
 class G extends self::_G&Object&B {
   field dynamic x = null;
   synthetic constructor •() → self::G
-    : super core::Object::•()
+    : super self::_G&Object&B::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.expect
index 2b77c7f..a2a01da 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.expect
@@ -46,7 +46,7 @@
 class G extends self::_G&Object&B {
   field core::int x = null;
   synthetic constructor •() → self::G
-    : super core::Object::•()
+    : super self::_G&Object&B::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.transformed.expect
index d81e504..8cf587d 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.transformed.expect
@@ -47,7 +47,7 @@
 class G extends self::_G&Object&B {
   field core::int x = null;
   synthetic constructor •() → self::G
-    : super core::Object::•()
+    : super self::_G&Object&B::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.legacy.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.legacy.expect
index 18910bd..68141d0 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.legacy.expect
@@ -48,7 +48,7 @@
 }
 class A extends self::_A&M1&M0 {
   synthetic constructor •() → self::A
-    : super self::M1::•()
+    : super self::_A&M1&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.legacy.transformed.expect
index aea6b53..d53ce70 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.legacy.transformed.expect
@@ -36,7 +36,7 @@
 }
 class A extends self::_A&M1&M0 {
   synthetic constructor •() → self::A
-    : super self::M1::•()
+    : super self::_A&M1&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.strong.expect
index 1faa3db..bfb7b01 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.strong.expect
@@ -24,7 +24,7 @@
 }
 class A extends self::_A&M1&M0 {
   synthetic constructor •() → self::A
-    : super self::M1::•()
+    : super self::_A&M1&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.strong.transformed.expect
index 7a5e6b5..dfd7d1e 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.strong.transformed.expect
@@ -24,7 +24,7 @@
 }
 class A extends self::_A&M1&M0 {
   synthetic constructor •() → self::A
-    : super self::M1::•()
+    : super self::_A&M1&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.legacy.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.legacy.expect
index 4586536..b7e2c17 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.legacy.expect
@@ -48,7 +48,7 @@
 }
 class A extends self::_A&M1&M0 {
   synthetic constructor •() → self::A
-    : super self::M1::•()
+    : super self::_A&M1&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.legacy.transformed.expect
index fa20027..353900f 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.legacy.transformed.expect
@@ -36,7 +36,7 @@
 }
 class A extends self::_A&M1&M0 {
   synthetic constructor •() → self::A
-    : super self::M1::•()
+    : super self::_A&M1&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.strong.expect
index 69818ca..db552ee 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.strong.expect
@@ -24,7 +24,7 @@
 }
 class A extends self::_A&M1&M0 {
   synthetic constructor •() → self::A
-    : super self::M1::•()
+    : super self::_A&M1&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.strong.transformed.expect
index 8e64db9..6459244 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.strong.transformed.expect
@@ -24,7 +24,7 @@
 }
 class A extends self::_A&M1&M0 {
   synthetic constructor •() → self::A
-    : super self::M1::•()
+    : super self::_A&M1&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.legacy.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.legacy.expect
index d68e9c3..751f33d 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.legacy.expect
@@ -48,7 +48,7 @@
 }
 class A extends self::_A&M1&M0 {
   synthetic constructor •() → self::A
-    : super self::M1::•()
+    : super self::_A&M1&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.legacy.transformed.expect
index db8c3d4..e98e8f6 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.legacy.transformed.expect
@@ -36,7 +36,7 @@
 }
 class A extends self::_A&M1&M0 {
   synthetic constructor •() → self::A
-    : super self::M1::•()
+    : super self::_A&M1&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.strong.expect
index fb8fecd..7d0cb03 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.strong.expect
@@ -43,7 +43,7 @@
 }
 class A extends self::_A&M1&M0 {
   synthetic constructor •() → self::A
-    : super self::M1::•()
+    : super self::_A&M1&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.strong.transformed.expect
index 70df06b..fe9fd8d 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.strong.transformed.expect
@@ -32,7 +32,7 @@
 }
 class A extends self::_A&M1&M0 {
   synthetic constructor •() → self::A
-    : super self::M1::•()
+    : super self::_A&M1&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.legacy.expect b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.legacy.expect
index e617321..1066a51 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.legacy.expect
@@ -63,7 +63,7 @@
 }
 class M0<X extends core::Object = dynamic, Y extends core::Object = dynamic> extends self::_M0&I&J<self::M0::X, self::M0::Y> {
   synthetic constructor •() → self::M0<self::M0::X, self::M0::Y>
-    : super self::I::•()
+    : super self::_M0&I&J::•()
     ;
 }
 class M1 extends core::Object implements self::I<core::int> {
@@ -83,7 +83,7 @@
 }
 class A extends self::_A&M2&M0 {
   synthetic constructor •() → self::A
-    : super self::M2::•()
+    : super self::_A&M2&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.legacy.transformed.expect
index b8d669d..ed90883 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.legacy.transformed.expect
@@ -41,7 +41,7 @@
 }
 class M0<X extends core::Object = dynamic, Y extends core::Object = dynamic> extends self::_M0&I&J<self::M0::X, self::M0::Y> {
   synthetic constructor •() → self::M0<self::M0::X, self::M0::Y>
-    : super self::I::•()
+    : super self::_M0&I&J::•()
     ;
 }
 class M1 extends core::Object implements self::I<core::int> {
@@ -61,7 +61,7 @@
 }
 class A extends self::_A&M2&M0 {
   synthetic constructor •() → self::A
-    : super self::M2::•()
+    : super self::_A&M2&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.strong.expect
index 517eca6..9fe7a0a 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.strong.expect
@@ -19,7 +19,7 @@
 }
 class M0<X extends core::Object = dynamic, Y extends core::Object = dynamic> extends self::_M0&I&J<self::M0::X, self::M0::Y> {
   synthetic constructor •() → self::M0<self::M0::X, self::M0::Y>
-    : super self::I::•()
+    : super self::_M0&I&J::•()
     ;
 }
 class M1 extends core::Object implements self::I<core::int> {
@@ -39,7 +39,7 @@
 }
 class A extends self::_A&M2&M0 {
   synthetic constructor •() → self::A
-    : super self::M2::•()
+    : super self::_A&M2&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.strong.transformed.expect
index ac1a5bb..435ce3b 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.strong.transformed.expect
@@ -19,7 +19,7 @@
 }
 class M0<X extends core::Object = dynamic, Y extends core::Object = dynamic> extends self::_M0&I&J<self::M0::X, self::M0::Y> {
   synthetic constructor •() → self::M0<self::M0::X, self::M0::Y>
-    : super self::I::•()
+    : super self::_M0&I&J::•()
     ;
 }
 class M1 extends core::Object implements self::I<core::int> {
@@ -39,7 +39,7 @@
 }
 class A extends self::_A&M2&M0 {
   synthetic constructor •() → self::A
-    : super self::M2::•()
+    : super self::_A&M2&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.legacy.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.legacy.expect
index 8a1cc49..1886407 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.legacy.expect
@@ -61,7 +61,7 @@
 }
 class A extends self::_A&M2&M0 {
   synthetic constructor •() → self::A
-    : super self::M2::•()
+    : super self::_A&M2&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.legacy.transformed.expect
index 4a624af..41fb098 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.legacy.transformed.expect
@@ -45,7 +45,7 @@
 }
 class A extends self::_A&M2&M0 {
   synthetic constructor •() → self::A
-    : super self::M2::•()
+    : super self::_A&M2&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.expect
index 36da7e3..1030f6b 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.expect
@@ -29,7 +29,7 @@
 }
 class A extends self::_A&M2&M0 {
   synthetic constructor •() → self::A
-    : super self::M2::•()
+    : super self::_A&M2&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.transformed.expect
index 6199c28..3eabc8f 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.transformed.expect
@@ -29,7 +29,7 @@
 }
 class A extends self::_A&M2&M0 {
   synthetic constructor •() → self::A
-    : super self::M2::•()
+    : super self::_A&M2&M0::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.legacy.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.legacy.expect
index 872475c..bf40fc9 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.legacy.expect
@@ -48,7 +48,7 @@
 }
 class A extends self::_A&M0&M1 {
   synthetic constructor •() → self::A
-    : super self::M0::•()
+    : super self::_A&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.legacy.transformed.expect
index 8b45bc6..7a1c8c2 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.legacy.transformed.expect
@@ -36,7 +36,7 @@
 }
 class A extends self::_A&M0&M1 {
   synthetic constructor •() → self::A
-    : super self::M0::•()
+    : super self::_A&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.strong.expect
index 128fa4a..b336c68 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.strong.expect
@@ -24,7 +24,7 @@
 }
 class A extends self::_A&M0&M1 {
   synthetic constructor •() → self::A
-    : super self::M0::•()
+    : super self::_A&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.strong.transformed.expect
index ec46a13..75ebf9d 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.strong.transformed.expect
@@ -24,7 +24,7 @@
 }
 class A extends self::_A&M0&M1 {
   synthetic constructor •() → self::A
-    : super self::M0::•()
+    : super self::_A&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.legacy.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.legacy.expect
index bb07438..231fbf6d 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.legacy.expect
@@ -68,7 +68,7 @@
 }
 class A extends self::_A&M0&M1&M2 {
   synthetic constructor •() → self::A
-    : super self::M0::•()
+    : super self::_A&M0&M1&M2::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.legacy.transformed.expect
index 5075370..6079249 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.legacy.transformed.expect
@@ -51,7 +51,7 @@
 }
 class A extends self::_A&M0&M1&M2 {
   synthetic constructor •() → self::A
-    : super self::M0::•()
+    : super self::_A&M0&M1&M2::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.strong.expect
index e17639c..d133391 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.strong.expect
@@ -34,7 +34,7 @@
 }
 class A extends self::_A&M0&M1&M2 {
   synthetic constructor •() → self::A
-    : super self::M0::•()
+    : super self::_A&M0&M1&M2::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.strong.transformed.expect
index 37d01dc..d4edaee 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.strong.transformed.expect
@@ -34,7 +34,7 @@
 }
 class A extends self::_A&M0&M1&M2 {
   synthetic constructor •() → self::A
-    : super self::M0::•()
+    : super self::_A&M0&M1&M2::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.legacy.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.legacy.expect
index 0efa321..c581250 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.legacy.expect
@@ -53,7 +53,7 @@
 }
 class A extends self::_A&Object&M0&M1 {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.legacy.transformed.expect
index cbab346..f81e503 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.legacy.transformed.expect
@@ -41,7 +41,7 @@
 }
 class A extends self::_A&Object&M0&M1 {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.expect
index 0efa321..c581250 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.expect
@@ -53,7 +53,7 @@
 }
 class A extends self::_A&Object&M0&M1 {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.legacy.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.legacy.expect
index 4f246b2..75fb900 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.legacy.expect
@@ -43,7 +43,7 @@
 }
 class A extends self::_A&Object&M0&M1 implements self::I<core::int> {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.legacy.transformed.expect
index 5b2d65a..06fa1b8 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.legacy.transformed.expect
@@ -36,7 +36,7 @@
 }
 class A extends self::_A&Object&M0&M1 implements self::I<core::int> {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.strong.expect
index 4f246b2..75fb900 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.strong.expect
@@ -43,7 +43,7 @@
 }
 class A extends self::_A&Object&M0&M1 implements self::I<core::int> {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.legacy.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.legacy.expect
index 136a52f..d2e6040 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.legacy.expect
@@ -53,7 +53,7 @@
 }
 class A extends self::_A&Object&M0&M1 {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.legacy.transformed.expect
index f4e7416..a22753f 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.legacy.transformed.expect
@@ -41,7 +41,7 @@
 }
 class A extends self::_A&Object&M0&M1 {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.strong.expect
index 136a52f..d2e6040 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.strong.expect
@@ -53,7 +53,7 @@
 }
 class A extends self::_A&Object&M0&M1 {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.legacy.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.legacy.expect
index 6107331..153ce4a 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.legacy.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.legacy.expect
@@ -57,7 +57,7 @@
 }
 class A extends self::_A&Object&M0&M1 {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.legacy.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.legacy.transformed.expect
index 7179092..826e6a3 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.legacy.transformed.expect
@@ -43,7 +43,7 @@
 }
 class A extends self::_A&Object&M0&M1 {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.strong.expect
index 6107331..153ce4a 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.strong.expect
@@ -57,7 +57,7 @@
 }
 class A extends self::_A&Object&M0&M1 {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M0&M1::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/mixin.dart.legacy.expect b/pkg/front_end/testcases/mixin.dart.legacy.expect
index 6270bd2..c47eaf2 100644
--- a/pkg/front_end/testcases/mixin.dart.legacy.expect
+++ b/pkg/front_end/testcases/mixin.dart.legacy.expect
@@ -14,7 +14,7 @@
 }
 class B extends self::_B&Object&M1&M2 {
   constructor •(dynamic value) → self::B
-    : super core::Object::•()
+    : super self::_B&Object&M1&M2::•()
     ;
 }
 abstract class M1 extends core::Object {
@@ -43,7 +43,7 @@
 }
 class C extends self::_C&Object&M1&M2 {
   constructor •(dynamic value) → self::C
-    : super core::Object::•()
+    : super self::_C&Object&M1&M2::•()
     ;
 }
 abstract class G1<T extends core::Object = dynamic> extends core::Object {
@@ -60,7 +60,7 @@
 }
 class D<S extends core::Object = dynamic> extends self::_D&Object&G1<self::D::S> {
   synthetic constructor •() → self::D<self::D::S>
-    : super core::Object::•()
+    : super self::_D&Object&G1::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/mixin.dart.legacy.transformed.expect b/pkg/front_end/testcases/mixin.dart.legacy.transformed.expect
index 7152f91..7af4162 100644
--- a/pkg/front_end/testcases/mixin.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/mixin.dart.legacy.transformed.expect
@@ -18,7 +18,7 @@
 }
 class B extends self::_B&Object&M1&M2 {
   constructor •(dynamic value) → self::B
-    : super core::Object::•()
+    : super self::_B&Object&M1&M2::•()
     ;
 }
 abstract class M1 extends core::Object {
@@ -51,7 +51,7 @@
 }
 class C extends self::_C&Object&M1&M2 {
   constructor •(dynamic value) → self::C
-    : super core::Object::•()
+    : super self::_C&Object&M1&M2::•()
     ;
 }
 abstract class G1<T extends core::Object = dynamic> extends core::Object {
@@ -70,7 +70,7 @@
 }
 class D<S extends core::Object = dynamic> extends self::_D&Object&G1<self::D::S> {
   synthetic constructor •() → self::D<self::D::S>
-    : super core::Object::•()
+    : super self::_D&Object&G1::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/mixin.dart.strong.expect b/pkg/front_end/testcases/mixin.dart.strong.expect
index f3bc002..f8971a4 100644
--- a/pkg/front_end/testcases/mixin.dart.strong.expect
+++ b/pkg/front_end/testcases/mixin.dart.strong.expect
@@ -14,7 +14,7 @@
 }
 class B extends self::_B&Object&M1&M2 {
   constructor •(dynamic value) → self::B
-    : super core::Object::•()
+    : super self::_B&Object&M1&M2::•()
     ;
 }
 abstract class M1 extends core::Object {
@@ -43,7 +43,7 @@
 }
 class C extends self::_C&Object&M1&M2 {
   constructor •(dynamic value) → self::C
-    : super core::Object::•()
+    : super self::_C&Object&M1&M2::•()
     ;
 }
 abstract class G1<T extends core::Object = dynamic> extends core::Object {
@@ -60,7 +60,7 @@
 }
 class D<S extends core::Object = dynamic> extends self::_D&Object&G1<self::D::S> {
   synthetic constructor •() → self::D<self::D::S>
-    : super core::Object::•()
+    : super self::_D&Object&G1::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/mixin.dart.strong.transformed.expect b/pkg/front_end/testcases/mixin.dart.strong.transformed.expect
index 3dff5eb..13bbc5e 100644
--- a/pkg/front_end/testcases/mixin.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/mixin.dart.strong.transformed.expect
@@ -18,7 +18,7 @@
 }
 class B extends self::_B&Object&M1&M2 {
   constructor •(dynamic value) → self::B
-    : super core::Object::•()
+    : super self::_B&Object&M1&M2::•()
     ;
 }
 abstract class M1 extends core::Object {
@@ -51,7 +51,7 @@
 }
 class C extends self::_C&Object&M1&M2 {
   constructor •(dynamic value) → self::C
-    : super core::Object::•()
+    : super self::_C&Object&M1&M2::•()
     ;
 }
 abstract class G1<T extends core::Object = dynamic> extends core::Object {
@@ -70,7 +70,7 @@
 }
 class D<S extends core::Object = dynamic> extends self::_D&Object&G1<self::D::S> {
   synthetic constructor •() → self::D<self::D::S>
-    : super core::Object::•()
+    : super self::_D&Object&G1::•()
     ;
 }
 static method main() → dynamic {
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 142551c..52129f0 100644
--- a/pkg/front_end/testcases/mixin_application_override.dart.legacy.expect
+++ b/pkg/front_end/testcases/mixin_application_override.dart.legacy.expect
@@ -233,7 +233,7 @@
 }
 class B0 extends self::_B0&S&M {
   synthetic constructor •() → self::B0
-    : super self::S::•()
+    : super self::_B0&S&M::•()
     ;
 }
 abstract class _B1&S&M1 = self::S with self::M1 {
@@ -248,7 +248,7 @@
 }
 class B1 extends self::_B1&S&M1&M {
   synthetic constructor •() → self::B1
-    : super self::S::•()
+    : super self::_B1&S&M1&M::•()
     ;
 }
 abstract class _B2&S&M1 = self::S with self::M1 {
@@ -268,7 +268,7 @@
 }
 class B2 extends self::_B2&S&M1&M2&M {
   synthetic constructor •() → self::B2
-    : super self::S::•()
+    : super self::_B2&S&M1&M2&M::•()
     ;
 }
 abstract class _B0X&S&M = self::S with self::M {
@@ -283,7 +283,7 @@
 }
 class B0X extends self::_B0X&S&M&MX {
   synthetic constructor •() → self::B0X
-    : super self::S::•()
+    : super self::_B0X&S&M&MX::•()
     ;
 }
 abstract class _B1X&S&M1 = self::S with self::M1 {
@@ -303,7 +303,7 @@
 }
 class B1X extends self::_B1X&S&M1&M&MX {
   synthetic constructor •() → self::B1X
-    : super self::S::•()
+    : super self::_B1X&S&M1&M&MX::•()
     ;
 }
 abstract class _B2X&S&M1 = self::S with self::M1 {
@@ -328,7 +328,7 @@
 }
 class B2X extends self::_B2X&S&M1&M2&M&MX {
   synthetic constructor •() → self::B2X
-    : super self::S::•()
+    : super self::_B2X&S&M1&M2&M&MX::•()
     ;
 }
 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 94d1bd7..381523a 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
@@ -118,7 +118,7 @@
 }
 class B0 extends self::_B0&S&M {
   synthetic constructor •() → self::B0
-    : super self::S::•()
+    : super self::_B0&S&M::•()
     ;
 }
 abstract class _B1&S&M1 extends self::S implements self::M1 {
@@ -134,7 +134,7 @@
 }
 class B1 extends self::_B1&S&M1&M {
   synthetic constructor •() → self::B1
-    : super self::S::•()
+    : super self::_B1&S&M1&M::•()
     ;
 }
 abstract class _B2&S&M1 extends self::S implements self::M1 {
@@ -155,7 +155,7 @@
 }
 class B2 extends self::_B2&S&M1&M2&M {
   synthetic constructor •() → self::B2
-    : super self::S::•()
+    : super self::_B2&S&M1&M2&M::•()
     ;
 }
 abstract class _B0X&S&M extends self::S implements self::M {
@@ -171,7 +171,7 @@
 }
 class B0X extends self::_B0X&S&M&MX {
   synthetic constructor •() → self::B0X
-    : super self::S::•()
+    : super self::_B0X&S&M&MX::•()
     ;
 }
 abstract class _B1X&S&M1 extends self::S implements self::M1 {
@@ -192,7 +192,7 @@
 }
 class B1X extends self::_B1X&S&M1&M&MX {
   synthetic constructor •() → self::B1X
-    : super self::S::•()
+    : super self::_B1X&S&M1&M&MX::•()
     ;
 }
 abstract class _B2X&S&M1 extends self::S implements self::M1 {
@@ -218,7 +218,7 @@
 }
 class B2X extends self::_B2X&S&M1&M2&M&MX {
   synthetic constructor •() → self::B2X
-    : super self::S::•()
+    : super self::_B2X&S&M1&M2&M&MX::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/mixin_application_override.dart.strong.expect b/pkg/front_end/testcases/mixin_application_override.dart.strong.expect
index a25b92f..c8c6a90 100644
--- a/pkg/front_end/testcases/mixin_application_override.dart.strong.expect
+++ b/pkg/front_end/testcases/mixin_application_override.dart.strong.expect
@@ -290,7 +290,7 @@
 }
 class B0 extends self::_B0&S&M {
   synthetic constructor •() → self::B0
-    : super self::S::•()
+    : super self::_B0&S&M::•()
     ;
 }
 abstract class _B1&S&M1 = self::S with self::M1 {
@@ -306,7 +306,7 @@
 }
 class B1 extends self::_B1&S&M1&M {
   synthetic constructor •() → self::B1
-    : super self::S::•()
+    : super self::_B1&S&M1&M::•()
     ;
 }
 abstract class _B2&S&M1 = self::S with self::M1 {
@@ -327,7 +327,7 @@
 }
 class B2 extends self::_B2&S&M1&M2&M {
   synthetic constructor •() → self::B2
-    : super self::S::•()
+    : super self::_B2&S&M1&M2&M::•()
     ;
 }
 abstract class _B0X&S&M = self::S with self::M {
@@ -343,7 +343,7 @@
 }
 class B0X extends self::_B0X&S&M&MX {
   synthetic constructor •() → self::B0X
-    : super self::S::•()
+    : super self::_B0X&S&M&MX::•()
     ;
 }
 abstract class _B1X&S&M1 = self::S with self::M1 {
@@ -364,7 +364,7 @@
 }
 class B1X extends self::_B1X&S&M1&M&MX {
   synthetic constructor •() → self::B1X
-    : super self::S::•()
+    : super self::_B1X&S&M1&M&MX::•()
     ;
 }
 abstract class _B2X&S&M1 = self::S with self::M1 {
@@ -390,7 +390,7 @@
 }
 class B2X extends self::_B2X&S&M1&M2&M&MX {
   synthetic constructor •() → self::B2X
-    : super self::S::•()
+    : super self::_B2X&S&M1&M2&M&MX::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.legacy.expect b/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.legacy.expect
index daec74c..b9d9373 100644
--- a/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.legacy.expect
+++ b/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.legacy.expect
@@ -21,7 +21,7 @@
 }
 class E extends self::D {
   synthetic constructor •() → self::E
-    : super self::C::•()
+    : super self::D::•()
     ;
 }
 abstract class _F&C&M = self::C<core::int> with self::M {
@@ -31,7 +31,7 @@
 }
 class F extends self::_F&C&M {
   synthetic constructor •() → self::F
-    : super self::C::•()
+    : super self::_F&C&M::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.legacy.transformed.expect b/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.legacy.transformed.expect
index ce12709..3e9f1e9 100644
--- a/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.legacy.transformed.expect
@@ -21,7 +21,7 @@
 }
 class E extends self::D {
   synthetic constructor •() → self::E
-    : super self::C::•()
+    : super self::D::•()
     ;
 }
 abstract class _F&C&M extends self::C<core::int> implements self::M {
@@ -31,7 +31,7 @@
 }
 class F extends self::_F&C&M {
   synthetic constructor •() → self::F
-    : super self::C::•()
+    : super self::_F&C&M::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.strong.expect b/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.strong.expect
index c3bb2f6..67701f2 100644
--- a/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.strong.expect
+++ b/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.strong.expect
@@ -21,7 +21,7 @@
 }
 class E extends self::D {
   synthetic constructor •() → self::E
-    : super self::C::•()
+    : super self::D::•()
     ;
 }
 abstract class _F&C&M = self::C<core::int> with self::M {
@@ -31,7 +31,7 @@
 }
 class F extends self::_F&C&M {
   synthetic constructor •() → self::F
-    : super self::C::•()
+    : super self::_F&C&M::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.strong.transformed.expect b/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.strong.transformed.expect
index 97235bc..e52a7ff 100644
--- a/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/mixin_constructors_with_default_values.dart.strong.transformed.expect
@@ -21,7 +21,7 @@
 }
 class E extends self::D {
   synthetic constructor •() → self::E
-    : super self::C::•()
+    : super self::D::•()
     ;
 }
 abstract class _F&C&M extends self::C<core::int> implements self::M {
@@ -31,7 +31,7 @@
 }
 class F extends self::_F&C&M {
   synthetic constructor •() → self::F
-    : super self::C::•()
+    : super self::_F&C&M::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.legacy.expect b/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.legacy.expect
index 0efea2e..fb518e4 100644
--- a/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.legacy.expect
+++ b/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.legacy.expect
@@ -28,7 +28,7 @@
 }
 class Foo extends self::_Foo&Object&C {
   synthetic constructor •() → self::Foo
-    : super core::Object::•()
+    : super self::_Foo&Object&C::•()
     ;
 }
 class B extends self::A {
diff --git a/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.legacy.transformed.expect b/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.legacy.transformed.expect
index 43b415d..9db2af2 100644
--- a/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.legacy.transformed.expect
@@ -32,7 +32,7 @@
 }
 class Foo extends self::_Foo&Object&C {
   synthetic constructor •() → self::Foo
-    : super core::Object::•()
+    : super self::_Foo&Object&C::•()
     ;
 }
 class B extends self::A {
diff --git a/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.strong.expect b/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.strong.expect
index 0b74544..b73697b 100644
--- a/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.strong.expect
+++ b/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.strong.expect
@@ -28,7 +28,7 @@
 }
 class Foo extends self::_Foo&Object&C {
   synthetic constructor •() → self::Foo
-    : super core::Object::•()
+    : super self::_Foo&Object&C::•()
     ;
 }
 class B extends self::A {
diff --git a/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.strong.transformed.expect b/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.strong.transformed.expect
index bab35f4..6b38260 100644
--- a/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/mixin_inherited_setter_for_mixed_in_field.dart.strong.transformed.expect
@@ -32,7 +32,7 @@
 }
 class Foo extends self::_Foo&Object&C {
   synthetic constructor •() → self::Foo
-    : super core::Object::•()
+    : super self::_Foo&Object&C::•()
     ;
 }
 class B extends self::A {
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 ef2820d..75331f8 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
@@ -28,7 +28,7 @@
 }
 class C extends self::_C&Object&B {
   synthetic constructor •() → self::C
-    : super core::Object::•()
+    : super self::_C&Object&B::•()
     ;
   get foo() → core::int
     return 42;
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 6a81396..b3fc1ec 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
@@ -32,7 +32,7 @@
 }
 class C extends self::_C&Object&B {
   synthetic constructor •() → self::C
-    : super core::Object::•()
+    : super self::_C&Object&B::•()
     ;
   get foo() → core::int
     return 42;
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.expect
index b00b8c0..00d48b8 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.expect
@@ -28,7 +28,7 @@
 }
 class C extends self::_C&Object&B {
   synthetic constructor •() → self::C
-    : super core::Object::•()
+    : super self::_C&Object&B::•()
     ;
   get foo() → core::int
     return 42;
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect
index 72a6cef..8ec90ad 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect
@@ -32,7 +32,7 @@
 }
 class C extends self::_C&Object&B {
   synthetic constructor •() → self::C
-    : super core::Object::•()
+    : super self::_C&Object&B::•()
     ;
   get foo() → core::int
     return 42;
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 5881215..521bedd 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
@@ -30,7 +30,7 @@
 }
 class C extends self::_C&A&B {
   synthetic constructor •() → self::C
-    : super self::A::•()
+    : super self::_C&A&B::•()
     ;
 }
 static method main() → 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 32a808d..528ca88 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
@@ -32,7 +32,7 @@
 }
 class C extends self::_C&A&B {
   synthetic constructor •() → self::C
-    : super self::A::•()
+    : super self::_C&A&B::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.expect
index 1418146..b71a516 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.expect
@@ -30,7 +30,7 @@
 }
 class C extends self::_C&A&B {
   synthetic constructor •() → self::C
-    : super self::A::•()
+    : super self::_C&A&B::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.transformed.expect
index 193af7a..7cd29a7 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.transformed.expect
@@ -32,7 +32,7 @@
 }
 class C extends self::_C&A&B {
   synthetic constructor •() → self::C
-    : super self::A::•()
+    : super self::_C&A&B::•()
     ;
 }
 static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.legacy.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.legacy.expect
index a385598..43df9dd 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.legacy.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.legacy.expect
@@ -24,7 +24,7 @@
 }
 class B extends self::_B&Object&A {
   synthetic constructor •() → self::B
-    : super core::Object::•()
+    : super self::_B&Object&A::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.legacy.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.legacy.transformed.expect
index eda31a1..df41d65 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.legacy.transformed.expect
@@ -26,7 +26,7 @@
 }
 class B extends self::_B&Object&A {
   synthetic constructor •() → self::B
-    : super core::Object::•()
+    : super self::_B&Object&A::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.expect
index a385598..43df9dd 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.expect
@@ -24,7 +24,7 @@
 }
 class B extends self::_B&Object&A {
   synthetic constructor •() → self::B
-    : super core::Object::•()
+    : super self::_B&Object&A::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.transformed.expect
index eda31a1..df41d65 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.transformed.expect
@@ -26,7 +26,7 @@
 }
 class B extends self::_B&Object&A {
   synthetic constructor •() → self::B
-    : super core::Object::•()
+    : super self::_B&Object&A::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.legacy.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.legacy.expect
index a86290b..3bbf6e3 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.legacy.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.legacy.expect
@@ -25,7 +25,7 @@
 }
 class A extends self::_A&Object&M implements self::I {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
@@ -37,7 +37,7 @@
 }
 class B extends self::_B&Object&M implements self::I {
   synthetic constructor •() → self::B
-    : super core::Object::•()
+    : super self::_B&Object&M::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.legacy.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.legacy.transformed.expect
index 6d9efb3..95e785d 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.legacy.transformed.expect
@@ -27,7 +27,7 @@
 }
 class A extends self::_A&Object&M implements self::I {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
@@ -41,7 +41,7 @@
 }
 class B extends self::_B&Object&M implements self::I {
   synthetic constructor •() → self::B
-    : super core::Object::•()
+    : super self::_B&Object&M::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.expect
index a86290b..3bbf6e3 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.expect
@@ -25,7 +25,7 @@
 }
 class A extends self::_A&Object&M implements self::I {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
@@ -37,7 +37,7 @@
 }
 class B extends self::_B&Object&M implements self::I {
   synthetic constructor •() → self::B
-    : super core::Object::•()
+    : super self::_B&Object&M::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.transformed.expect
index 6d9efb3..95e785d 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.transformed.expect
@@ -27,7 +27,7 @@
 }
 class A extends self::_A&Object&M implements self::I {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
@@ -41,7 +41,7 @@
 }
 class B extends self::_B&Object&M implements self::I {
   synthetic constructor •() → self::B
-    : super core::Object::•()
+    : super self::_B&Object&M::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.legacy.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.legacy.expect
index 3155d8f..5b8657c 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.legacy.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.legacy.expect
@@ -17,7 +17,7 @@
 }
 class B extends self::_B&Object&A {
   synthetic constructor •() → self::B
-    : super core::Object::•()
+    : super self::_B&Object&A::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.legacy.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.legacy.transformed.expect
index d91cc25..f8720a6 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.legacy.transformed.expect
@@ -20,7 +20,7 @@
 }
 class B extends self::_B&Object&A {
   synthetic constructor •() → self::B
-    : super core::Object::•()
+    : super self::_B&Object&A::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.expect
index 3155d8f..5b8657c 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.expect
@@ -17,7 +17,7 @@
 }
 class B extends self::_B&Object&A {
   synthetic constructor •() → self::B
-    : super core::Object::•()
+    : super self::_B&Object&A::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.transformed.expect
index d91cc25..f8720a6 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.transformed.expect
@@ -20,7 +20,7 @@
 }
 class B extends self::_B&Object&A {
   synthetic constructor •() → self::B
-    : super core::Object::•()
+    : super self::_B&Object&A::•()
     ;
   no-such-method-forwarder method foo() → void
     return this.{self::A::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const <core::Type>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.legacy.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.legacy.expect
index 0e43ba4..7e77cf6 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.legacy.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.legacy.expect
@@ -23,7 +23,7 @@
 }
 class A extends self::_A&Object&M implements self::I<core::int> {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M::•()
     ;
   no-such-method-forwarder method foo() → core::int
     return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, 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/subst_on_forwarder.dart.legacy.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.legacy.transformed.expect
index 047bcf3..a02303e 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.legacy.transformed.expect
@@ -26,7 +26,7 @@
 }
 class A extends self::_A&Object&M implements self::I<core::int> {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M::•()
     ;
   no-such-method-forwarder method foo() → core::int
     return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, 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/subst_on_forwarder.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.expect
index 0e43ba4..7e77cf6 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.expect
@@ -23,7 +23,7 @@
 }
 class A extends self::_A&Object&M implements self::I<core::int> {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M::•()
     ;
   no-such-method-forwarder method foo() → core::int
     return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, 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/subst_on_forwarder.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.transformed.expect
index 047bcf3..a02303e 100644
--- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.transformed.expect
@@ -26,7 +26,7 @@
 }
 class A extends self::_A&Object&M implements self::I<core::int> {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&M::•()
     ;
   no-such-method-forwarder method foo() → core::int
     return this.{self::M::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, 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/qualified.dart.legacy.expect b/pkg/front_end/testcases/qualified.dart.legacy.expect
index cf5f613..a54701c 100644
--- a/pkg/front_end/testcases/qualified.dart.legacy.expect
+++ b/pkg/front_end/testcases/qualified.dart.legacy.expect
@@ -49,7 +49,7 @@
 }
 class WithMixin extends self::_WithMixin&Supertype&Mixin {
   synthetic constructor •() → self::WithMixin
-    : super lib::Supertype::•()
+    : super self::_WithMixin&Supertype&Mixin::•()
     ;
 }
 class IllegalSupertype extends core::Object {
diff --git a/pkg/front_end/testcases/qualified.dart.legacy.transformed.expect b/pkg/front_end/testcases/qualified.dart.legacy.transformed.expect
index 020e7a3..20d9d18 100644
--- a/pkg/front_end/testcases/qualified.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/qualified.dart.legacy.transformed.expect
@@ -31,7 +31,7 @@
 }
 class WithMixin extends self::_WithMixin&Supertype&Mixin {
   synthetic constructor •() → self::WithMixin
-    : super lib::Supertype::•()
+    : super self::_WithMixin&Supertype&Mixin::•()
     ;
 }
 class IllegalSupertype extends core::Object {
diff --git a/pkg/front_end/testcases/qualified.dart.strong.expect b/pkg/front_end/testcases/qualified.dart.strong.expect
index f36c315..4ad22bd 100644
--- a/pkg/front_end/testcases/qualified.dart.strong.expect
+++ b/pkg/front_end/testcases/qualified.dart.strong.expect
@@ -53,7 +53,7 @@
 }
 class WithMixin extends self::_WithMixin&Supertype&Mixin {
   synthetic constructor •() → self::WithMixin
-    : super lib::Supertype::•()
+    : super self::_WithMixin&Supertype&Mixin::•()
     ;
 }
 class IllegalSupertype extends core::Object {
diff --git a/pkg/front_end/testcases/qualified.dart.strong.transformed.expect b/pkg/front_end/testcases/qualified.dart.strong.transformed.expect
index c067a36..937b2a4 100644
--- a/pkg/front_end/testcases/qualified.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/qualified.dart.strong.transformed.expect
@@ -35,7 +35,7 @@
 }
 class WithMixin extends self::_WithMixin&Supertype&Mixin {
   synthetic constructor •() → self::WithMixin
-    : super lib::Supertype::•()
+    : super self::_WithMixin&Supertype&Mixin::•()
     ;
 }
 class IllegalSupertype extends core::Object {
diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.legacy.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.legacy.expect
index cb6cde6..7bfef12 100644
--- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.legacy.expect
+++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.legacy.expect
@@ -20,6 +20,6 @@
 }
 class A extends self::_A&Object&Mixin&Mixin {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&Mixin&Mixin::•()
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.legacy.transformed.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.legacy.transformed.expect
index d3c872e..25d8b41 100644
--- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.legacy.transformed.expect
@@ -22,6 +22,6 @@
 }
 class A extends self::_A&Object&Mixin&Mixin {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&Mixin&Mixin::•()
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.expect
index cb6cde6..7bfef12 100644
--- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.expect
@@ -20,6 +20,6 @@
 }
 class A extends self::_A&Object&Mixin&Mixin {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&Mixin&Mixin::•()
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.transformed.expect
index d3c872e..25d8b41 100644
--- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.transformed.expect
@@ -22,6 +22,6 @@
 }
 class A extends self::_A&Object&Mixin&Mixin {
   synthetic constructor •() → self::A
-    : super core::Object::•()
+    : super self::_A&Object&Mixin&Mixin::•()
     ;
 }
diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.legacy.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.legacy.expect
index a293cd7..16d9699 100644
--- a/pkg/front_end/testcases/rasta/issue_000007.dart.legacy.expect
+++ b/pkg/front_end/testcases/rasta/issue_000007.dart.legacy.expect
@@ -21,7 +21,7 @@
 }
 class Sub extends self::_Sub&Base&Mixin {
   synthetic constructor •() → self::Sub
-    : super self::Base::•()
+    : super self::_Sub&Base&Mixin::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.legacy.transformed.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.legacy.transformed.expect
index 7fb2814..c528ee0 100644
--- a/pkg/front_end/testcases/rasta/issue_000007.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000007.dart.legacy.transformed.expect
@@ -23,7 +23,7 @@
 }
 class Sub extends self::_Sub&Base&Mixin {
   synthetic constructor •() → self::Sub
-    : super self::Base::•()
+    : super self::_Sub&Base&Mixin::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.strong.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.strong.expect
index 11c3766..2df31da 100644
--- a/pkg/front_end/testcases/rasta/issue_000007.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/issue_000007.dart.strong.expect
@@ -21,7 +21,7 @@
 }
 class Sub extends self::_Sub&Base&Mixin {
   synthetic constructor •() → self::Sub
-    : super self::Base::•()
+    : super self::_Sub&Base&Mixin::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.strong.transformed.expect
index 162a19d..70c6e40 100644
--- a/pkg/front_end/testcases/rasta/issue_000007.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000007.dart.strong.transformed.expect
@@ -23,7 +23,7 @@
 }
 class Sub extends self::_Sub&Base&Mixin {
   synthetic constructor •() → self::Sub
-    : super self::Base::•()
+    : super self::_Sub&Base&Mixin::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.legacy.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.legacy.expect
index 5a311d6..3a5b253 100644
--- a/pkg/front_end/testcases/rasta/issue_000080.dart.legacy.expect
+++ b/pkg/front_end/testcases/rasta/issue_000080.dart.legacy.expect
@@ -17,7 +17,7 @@
 }
 class Foo extends self::_Foo&Object&Mixin {
   synthetic constructor •() → self::Foo
-    : super core::Object::•()
+    : super self::_Foo&Object&Mixin::•()
     ;
   method foo() → dynamic
     return super.{self::Mixin::foo}();
diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.legacy.transformed.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.legacy.transformed.expect
index 8d9ceb4..290a349 100644
--- a/pkg/front_end/testcases/rasta/issue_000080.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000080.dart.legacy.transformed.expect
@@ -20,7 +20,7 @@
 }
 class Foo extends self::_Foo&Object&Mixin {
   synthetic constructor •() → self::Foo
-    : super core::Object::•()
+    : super self::_Foo&Object&Mixin::•()
     ;
   method foo() → dynamic
     return super.{self::Mixin::foo}();
diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.strong.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.strong.expect
index f37485f..b027643 100644
--- a/pkg/front_end/testcases/rasta/issue_000080.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/issue_000080.dart.strong.expect
@@ -17,7 +17,7 @@
 }
 class Foo extends self::_Foo&Object&Mixin {
   synthetic constructor •() → self::Foo
-    : super core::Object::•()
+    : super self::_Foo&Object&Mixin::•()
     ;
   method foo() → dynamic
     return super.{self::Mixin::foo}();
diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.strong.transformed.expect
index b2db962..060831f 100644
--- a/pkg/front_end/testcases/rasta/issue_000080.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/rasta/issue_000080.dart.strong.transformed.expect
@@ -20,7 +20,7 @@
 }
 class Foo extends self::_Foo&Object&Mixin {
   synthetic constructor •() → self::Foo
-    : super core::Object::•()
+    : super self::_Foo&Object&Mixin::•()
     ;
   method foo() → dynamic
     return super.{self::Mixin::foo}();
diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.legacy.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.legacy.expect
index 8b75a6e..5aca9d3 100644
--- a/pkg/front_end/testcases/rasta/super_mixin.dart.legacy.expect
+++ b/pkg/front_end/testcases/rasta/super_mixin.dart.legacy.expect
@@ -25,7 +25,7 @@
 }
 class C<V extends core::Object = dynamic> extends self::_C&Super&Mixin<self::C::V> {
   synthetic constructor •() → self::C<self::C::V>
-    : super self::Super::•()
+    : super self::_C&Super&Mixin::•()
     ;
 }
 abstract class _D&Super&Mixin = self::Super<dynamic> with mix::Mixin<dynamic> {
@@ -35,7 +35,7 @@
 }
 class D extends self::_D&Super&Mixin {
   synthetic constructor •() → self::D
-    : super self::Super::•()
+    : super self::_D&Super&Mixin::•()
     ;
 }
 class C2<V extends core::Object = dynamic> = self::Super<self::C2::V> with mix::Mixin<self::C2::V> {
diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.legacy.transformed.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.legacy.transformed.expect
index 2205406..97f3b5a 100644
--- a/pkg/front_end/testcases/rasta/super_mixin.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/rasta/super_mixin.dart.legacy.transformed.expect
@@ -35,7 +35,7 @@
 }
 class C<V extends core::Object = dynamic> extends self::_C&Super&Mixin<self::C::V> {
   synthetic constructor •() → self::C<self::C::V>
-    : super self::Super::•()
+    : super self::_C&Super&Mixin::•()
     ;
 }
 abstract class _D&Super&Mixin extends self::Super<dynamic> implements mix::Mixin<dynamic> {
@@ -61,7 +61,7 @@
 }
 class D extends self::_D&Super&Mixin {
   synthetic constructor •() → self::D
-    : super self::Super::•()
+    : super self::_D&Super&Mixin::•()
     ;
 }
 class C2<V extends core::Object = dynamic> extends self::Super<self::C2::V> implements mix::Mixin<self::C2::V> {
diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.strong.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.strong.expect
index 77780b3..ac00fc5 100644
--- a/pkg/front_end/testcases/rasta/super_mixin.dart.strong.expect
+++ b/pkg/front_end/testcases/rasta/super_mixin.dart.strong.expect
@@ -31,7 +31,7 @@
 }
 class C<V extends core::Object = dynamic> extends self::_C&Super&Mixin<self::C::V> {
   synthetic constructor •() → self::C<self::C::V>
-    : super self::Super::•()
+    : super self::_C&Super&Mixin::•()
     ;
 }
 abstract class _D&Super&Mixin = self::Super<dynamic> with mix::Mixin<dynamic> {
@@ -41,7 +41,7 @@
 }
 class D extends self::_D&Super&Mixin {
   synthetic constructor •() → self::D
-    : super self::Super::•()
+    : super self::_D&Super&Mixin::•()
     ;
 }
 class C2<V extends core::Object = dynamic> = self::Super<self::C2::V> with mix::Mixin<self::C2::V> {
diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.legacy.expect b/pkg/front_end/testcases/regress/issue_32182.dart.legacy.expect
index 3f9071f..2b0e26e 100644
--- a/pkg/front_end/testcases/regress/issue_32182.dart.legacy.expect
+++ b/pkg/front_end/testcases/regress/issue_32182.dart.legacy.expect
@@ -21,7 +21,7 @@
 }
 class C extends self::_C&A&M {
   synthetic constructor •() → self::C
-    : super self::A::•()
+    : super self::_C&A&M::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.legacy.transformed.expect b/pkg/front_end/testcases/regress/issue_32182.dart.legacy.transformed.expect
index 49ef114..a9c10f4 100644
--- a/pkg/front_end/testcases/regress/issue_32182.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_32182.dart.legacy.transformed.expect
@@ -23,7 +23,7 @@
 }
 class C extends self::_C&A&M {
   synthetic constructor •() → self::C
-    : super self::A::•()
+    : super self::_C&A&M::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.strong.expect b/pkg/front_end/testcases/regress/issue_32182.dart.strong.expect
index 369e464..ccec30c 100644
--- a/pkg/front_end/testcases/regress/issue_32182.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_32182.dart.strong.expect
@@ -21,7 +21,7 @@
 }
 class C extends self::_C&A&M {
   synthetic constructor •() → self::C
-    : super self::A::•()
+    : super self::_C&A&M::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_32182.dart.strong.transformed.expect
index 43a28a0..063d09c 100644
--- a/pkg/front_end/testcases/regress/issue_32182.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_32182.dart.strong.transformed.expect
@@ -23,7 +23,7 @@
 }
 class C extends self::_C&A&M {
   synthetic constructor •() → self::C
-    : super self::A::•()
+    : super self::_C&A&M::•()
     ;
 }
 static method main() → dynamic {
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_getter.dart.legacy.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_getter.dart.legacy.expect
index dc8bb3d..0546d0e 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_getter.dart.legacy.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_getter.dart.legacy.expect
@@ -39,7 +39,7 @@
 }
 class D extends self::C<core::int> {
   synthetic constructor •() → self::D
-    : super self::B::•()
+    : super self::C::•()
     ;
   method f() → (core::int) → void
     return (core::int i) → dynamic {
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_getter.dart.legacy.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_getter.dart.legacy.transformed.expect
index f47ed24..839a7dc 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_getter.dart.legacy.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_getter.dart.legacy.transformed.expect
@@ -45,7 +45,7 @@
 }
 class D extends self::C<core::int> {
   synthetic constructor •() → self::D
-    : super self::B::•()
+    : super self::C::•()
     ;
   method f() → (core::int) → void
     return (core::int i) → dynamic {
diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_getter.dart.strong.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_getter.dart.strong.expect
index a31d746..45084df 100644
--- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_getter.dart.strong.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_getter.dart.strong.expect
@@ -59,7 +59,7 @@
 }
 class D extends self::C<core::int> {
   synthetic constructor •() → self::D
-    : super self::B::•()
+    : super self::C::•()
     ;
   method f() → (core::int) → void
     return (core::int i) → core::Null {
diff --git a/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_new_class2.dart.expect b/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_new_class2.dart.expect
index 9324ab6..dedf792 100644
--- a/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_new_class2.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/transformer/invalidation_new_class2.dart.expect
@@ -39,7 +39,7 @@
 }
 class E extends self::_E&D&C {
   synthetic constructor •() → self::E
-    : super self::D::•()
+    : super self::_E&D&C::•()
     ;
 [@vm.procedure-attributes.metadata=hasDynamicUses:false,hasThisUses:false,hasTearOffUses:false]  method foo() → dynamic
     return new self::T2::•();