[cfe] Remove tests that use interface mixins, final mixins and sealed mixins.

Remove/change some frontend tests to make for easier removal of these invalid
mixins in https://dart-review.googlesource.com/c/sdk/+/290614.

Change-Id: I50325b8275704eb2542c5871bb6326356bd9b020
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/291053
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Kallen Tu <kallentu@google.com>
diff --git a/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart b/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart
index eb34948..8f94a1c 100644
--- a/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart
+++ b/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart
@@ -2,5 +2,5 @@
 
 abstract final class B {}
 
-final mixin M {}
+mixin M {}
 final class C = Object with M;
diff --git a/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.expect b/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.expect
index c7ab69e..27dc655 100644
--- a/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.expect
+++ b/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.expect
@@ -28,13 +28,13 @@
       beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
     endClassDeclaration(abstract, })
-  endTopLevelDeclaration(final)
-  beginMetadataStar(final)
+  endTopLevelDeclaration(mixin)
+  beginMetadataStar(mixin)
   endMetadataStar(0)
   beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
     handleIdentifier(M, classOrMixinDeclaration)
     handleNoTypeVariables({)
-    beginMixinDeclaration(null, null, null, null, final, mixin, M)
+    beginMixinDeclaration(null, null, null, null, null, mixin, M)
       handleMixinOn(null, 0)
       handleImplements(null, 0)
       handleMixinHeader(mixin)
diff --git a/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.intertwined.expect b/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.intertwined.expect
index 6c8bc81..f2df26a 100644
--- a/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.intertwined.expect
@@ -55,18 +55,18 @@
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
           listener: endClassDeclaration(abstract, })
-  listener: endTopLevelDeclaration(final)
+  listener: endTopLevelDeclaration(mixin)
   parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
     parseMetadataStar(})
-      listener: beginMetadataStar(final)
+      listener: beginMetadataStar(mixin)
       listener: endMetadataStar(0)
     parseTopLevelKeywordDeclaration(}, mixin, null, null, null, null, null, Instance of 'DirectiveContext')
-      parseMixin(null, null, null, null, final, mixin)
+      parseMixin(null, null, null, null, null, mixin)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
         ensureIdentifier(mixin, classOrMixinDeclaration)
           listener: handleIdentifier(M, classOrMixinDeclaration)
         listener: handleNoTypeVariables({)
-        listener: beginMixinDeclaration(null, null, null, null, final, mixin, M)
+        listener: beginMixinDeclaration(null, null, null, null, null, mixin, M)
         parseMixinHeaderOpt(M, mixin)
           parseMixinOnOpt(M)
             listener: handleMixinOn(null, 0)
diff --git a/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.parser.expect b/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.parser.expect
index 7703560..001d677 100644
--- a/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.parser.expect
+++ b/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.parser.expect
@@ -2,7 +2,7 @@
 
 abstract final class B {}
 
-final mixin M {}
+mixin M {}
 final class C = Object with M;
 
 
@@ -10,6 +10,6 @@
 
 abstract[KeywordToken] final[KeywordToken] class[KeywordToken] B[StringToken] {[BeginToken]}[SimpleToken]
 
-final[KeywordToken] mixin[KeywordToken] M[StringToken] {[BeginToken]}[SimpleToken]
+mixin[KeywordToken] M[StringToken] {[BeginToken]}[SimpleToken]
 final[KeywordToken] class[KeywordToken] C[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] M[StringToken];[SimpleToken]
 [SimpleToken]
diff --git a/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.scanner.expect b/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.scanner.expect
index 7703560..001d677 100644
--- a/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.scanner.expect
+++ b/pkg/front_end/parser_testcases/class_modifiers/final/final_class_declaration.dart.scanner.expect
@@ -2,7 +2,7 @@
 
 abstract final class B {}
 
-final mixin M {}
+mixin M {}
 final class C = Object with M;
 
 
@@ -10,6 +10,6 @@
 
 abstract[KeywordToken] final[KeywordToken] class[KeywordToken] B[StringToken] {[BeginToken]}[SimpleToken]
 
-final[KeywordToken] mixin[KeywordToken] M[StringToken] {[BeginToken]}[SimpleToken]
+mixin[KeywordToken] M[StringToken] {[BeginToken]}[SimpleToken]
 final[KeywordToken] class[KeywordToken] C[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] M[StringToken];[SimpleToken]
 [SimpleToken]
diff --git a/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart b/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart
index edb7203..30a7bf5 100644
--- a/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart
+++ b/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart
@@ -2,5 +2,5 @@
 
 abstract interface class B {}
 
-interface mixin M {}
+mixin M {}
 interface class C = Object with M;
diff --git a/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.expect b/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.expect
index f9c96a2..fa64d78 100644
--- a/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.expect
+++ b/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.expect
@@ -28,13 +28,13 @@
       beginClassOrMixinOrExtensionBody(DeclarationKind.Class, {)
       endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
     endClassDeclaration(abstract, })
-  endTopLevelDeclaration(interface)
-  beginMetadataStar(interface)
+  endTopLevelDeclaration(mixin)
+  beginMetadataStar(mixin)
   endMetadataStar(0)
   beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
     handleIdentifier(M, classOrMixinDeclaration)
     handleNoTypeVariables({)
-    beginMixinDeclaration(null, null, null, interface, null, mixin, M)
+    beginMixinDeclaration(null, null, null, null, null, mixin, M)
       handleMixinOn(null, 0)
       handleImplements(null, 0)
       handleMixinHeader(mixin)
diff --git a/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.intertwined.expect b/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.intertwined.expect
index bf23d5f..7de0181 100644
--- a/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.intertwined.expect
+++ b/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.intertwined.expect
@@ -55,18 +55,18 @@
             notEofOrValue(}, })
             listener: endClassOrMixinOrExtensionBody(DeclarationKind.Class, 0, {, })
           listener: endClassDeclaration(abstract, })
-  listener: endTopLevelDeclaration(interface)
+  listener: endTopLevelDeclaration(mixin)
   parseTopLevelDeclarationImpl(}, Instance of 'DirectiveContext')
     parseMetadataStar(})
-      listener: beginMetadataStar(interface)
+      listener: beginMetadataStar(mixin)
       listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(}, mixin, null, null, null, null, interface, Instance of 'DirectiveContext')
-      parseMixin(null, null, null, interface, null, mixin)
+    parseTopLevelKeywordDeclaration(}, mixin, null, null, null, null, null, Instance of 'DirectiveContext')
+      parseMixin(null, null, null, null, null, mixin)
         listener: beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
         ensureIdentifier(mixin, classOrMixinDeclaration)
           listener: handleIdentifier(M, classOrMixinDeclaration)
         listener: handleNoTypeVariables({)
-        listener: beginMixinDeclaration(null, null, null, interface, null, mixin, M)
+        listener: beginMixinDeclaration(null, null, null, null, null, mixin, M)
         parseMixinHeaderOpt(M, mixin)
           parseMixinOnOpt(M)
             listener: handleMixinOn(null, 0)
diff --git a/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.parser.expect b/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.parser.expect
index be00196..2fe2456 100644
--- a/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.parser.expect
+++ b/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.parser.expect
@@ -2,7 +2,7 @@
 
 abstract interface class B {}
 
-interface mixin M {}
+mixin M {}
 interface class C = Object with M;
 
 
@@ -10,6 +10,6 @@
 
 abstract[KeywordToken] interface[KeywordToken] class[KeywordToken] B[StringToken] {[BeginToken]}[SimpleToken]
 
-interface[KeywordToken] mixin[KeywordToken] M[StringToken] {[BeginToken]}[SimpleToken]
+mixin[KeywordToken] M[StringToken] {[BeginToken]}[SimpleToken]
 interface[KeywordToken] class[KeywordToken] C[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] M[StringToken];[SimpleToken]
 [SimpleToken]
diff --git a/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.scanner.expect b/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.scanner.expect
index be00196..2fe2456 100644
--- a/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.scanner.expect
+++ b/pkg/front_end/parser_testcases/class_modifiers/interface/interface_class_declaration.dart.scanner.expect
@@ -2,7 +2,7 @@
 
 abstract interface class B {}
 
-interface mixin M {}
+mixin M {}
 interface class C = Object with M;
 
 
@@ -10,6 +10,6 @@
 
 abstract[KeywordToken] interface[KeywordToken] class[KeywordToken] B[StringToken] {[BeginToken]}[SimpleToken]
 
-interface[KeywordToken] mixin[KeywordToken] M[StringToken] {[BeginToken]}[SimpleToken]
+mixin[KeywordToken] M[StringToken] {[BeginToken]}[SimpleToken]
 interface[KeywordToken] class[KeywordToken] C[StringToken] =[SimpleToken] Object[StringToken] with[KeywordToken] M[StringToken];[SimpleToken]
 [SimpleToken]
diff --git a/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart b/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart
deleted file mode 100644
index 4a89db9..0000000
--- a/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart
+++ /dev/null
@@ -1 +0,0 @@
-sealed mixin M {}
\ No newline at end of file
diff --git a/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart.expect b/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart.expect
deleted file mode 100644
index 848cd96..0000000
--- a/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart.expect
+++ /dev/null
@@ -1,15 +0,0 @@
-beginCompilationUnit(sealed)
-  beginMetadataStar(sealed)
-  endMetadataStar(0)
-  beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
-    handleIdentifier(M, classOrMixinDeclaration)
-    handleNoTypeVariables({)
-    beginMixinDeclaration(null, sealed, null, null, null, mixin, M)
-      handleMixinOn(null, 0)
-      handleImplements(null, 0)
-      handleMixinHeader(mixin)
-      beginClassOrMixinOrExtensionBody(DeclarationKind.Mixin, {)
-      endClassOrMixinOrExtensionBody(DeclarationKind.Mixin, 0, {, })
-    endMixinDeclaration(mixin, })
-  endTopLevelDeclaration()
-endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart.intertwined.expect b/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart.intertwined.expect
deleted file mode 100644
index ebedd90..0000000
--- a/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart.intertwined.expect
+++ /dev/null
@@ -1,29 +0,0 @@
-parseUnit(sealed)
-  skipErrorTokens(sealed)
-  listener: beginCompilationUnit(sealed)
-  syntheticPreviousToken(sealed)
-  parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
-    parseMetadataStar()
-      listener: beginMetadataStar(sealed)
-      listener: endMetadataStar(0)
-    parseTopLevelKeywordDeclaration(, mixin, null, null, sealed, null, null, Instance of 'DirectiveContext')
-      parseMixin(null, sealed, null, null, null, mixin)
-        listener: beginClassOrMixinOrNamedMixinApplicationPrelude(mixin)
-        ensureIdentifier(mixin, classOrMixinDeclaration)
-          listener: handleIdentifier(M, classOrMixinDeclaration)
-        listener: handleNoTypeVariables({)
-        listener: beginMixinDeclaration(null, sealed, null, null, null, mixin, M)
-        parseMixinHeaderOpt(M, mixin)
-          parseMixinOnOpt(M)
-            listener: handleMixinOn(null, 0)
-          parseClassOrMixinOrEnumImplementsOpt(M)
-            listener: handleImplements(null, 0)
-          listener: handleMixinHeader(mixin)
-        parseClassOrMixinOrExtensionBody(M, DeclarationKind.Mixin, M)
-          listener: beginClassOrMixinOrExtensionBody(DeclarationKind.Mixin, {)
-          notEofOrValue(}, })
-          listener: endClassOrMixinOrExtensionBody(DeclarationKind.Mixin, 0, {, })
-        listener: endMixinDeclaration(mixin, })
-  listener: endTopLevelDeclaration()
-  reportAllErrorTokens(sealed)
-  listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart.parser.expect b/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart.parser.expect
deleted file mode 100644
index 3606993..0000000
--- a/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart.parser.expect
+++ /dev/null
@@ -1,3 +0,0 @@
-sealed mixin M {}
-
-sealed[KeywordToken] mixin[KeywordToken] M[StringToken] {[BeginToken]}[SimpleToken][SimpleToken]
diff --git a/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart.scanner.expect b/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart.scanner.expect
deleted file mode 100644
index 3606993..0000000
--- a/pkg/front_end/parser_testcases/sealed_class/sealed_mixin.dart.scanner.expect
+++ /dev/null
@@ -1,3 +0,0 @@
-sealed mixin M {}
-
-sealed[KeywordToken] mixin[KeywordToken] M[StringToken] {[BeginToken]}[SimpleToken][SimpleToken]
diff --git a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart
index 58a3ab0..8e010ad 100644
--- a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart
+++ b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart
@@ -2,9 +2,11 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-final mixin M1 {}
-sealed mixin M2 {}
+base mixin M1 {}
+base mixin M2 {}
+
 base class S {}
 
 final class C extends S with M1, M2 {}
+
 final class D = S with M1, M2;
diff --git a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.strong.expect b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.strong.expect
index ea0aaef..af8ac5b 100644
--- a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.strong.expect
+++ b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.strong.expect
@@ -2,9 +2,9 @@
 import self as self;
 import "dart:core" as core;
 
-abstract final class M1 extends core::Object /*isMixinDeclaration*/  {
+abstract base class M1 extends core::Object /*isMixinDeclaration*/  {
 }
-abstract sealed class M2 extends core::Object /*isMixinDeclaration*/  {
+abstract base class M2 extends core::Object /*isMixinDeclaration*/  {
 }
 base class S extends core::Object {
   synthetic constructor •() → self::S
@@ -16,7 +16,7 @@
     : super self::S::•()
     ;
 }
-abstract sealed class _C&S&M1&M2 = self::_C&S&M1 with self::M2 /*isAnonymousMixin*/  {
+abstract final class _C&S&M1&M2 = self::_C&S&M1 with self::M2 /*isAnonymousMixin*/  {
   synthetic constructor •() → self::_C&S&M1&M2
     : super self::_C&S&M1::•()
     ;
diff --git a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.strong.transformed.expect b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.strong.transformed.expect
index 1051437..8c62c36 100644
--- a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.strong.transformed.expect
@@ -2,9 +2,9 @@
 import self as self;
 import "dart:core" as core;
 
-abstract final class M1 extends core::Object /*isMixinDeclaration*/  {
+abstract base class M1 extends core::Object /*isMixinDeclaration*/  {
 }
-abstract sealed class M2 extends core::Object /*isMixinDeclaration*/  {
+abstract base class M2 extends core::Object /*isMixinDeclaration*/  {
 }
 base class S extends core::Object {
   synthetic constructor •() → self::S
@@ -16,7 +16,7 @@
     : super self::S::•()
     ;
 }
-abstract sealed class _C&S&M1&M2 extends self::_C&S&M1 implements self::M2 /*isAnonymousMixin,isEliminatedMixin*/  {
+abstract final class _C&S&M1&M2 extends self::_C&S&M1 implements self::M2 /*isAnonymousMixin,isEliminatedMixin*/  {
   synthetic constructor •() → self::_C&S&M1&M2
     : super self::_C&S&M1::•()
     ;
diff --git a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.textual_outline.expect b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.textual_outline.expect
index e2c8423..da0b508 100644
--- a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.textual_outline.expect
@@ -1,7 +1,8 @@
-final
-mixin M1 {}
-sealed
-mixin M2 {}
+base mixin M1 {}
+base mixin M2 {}
+
 base class S {}
+
 final class C extends S with M1, M2 {}
+
 final class D = S with M1, M2;
diff --git a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.textual_outline_modelled.expect
index 29b38d5..3a91c37 100644
--- a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.textual_outline_modelled.expect
@@ -1,9 +1,9 @@
 ---- unknown chunk starts ----
-final
+base
 ---- unknown chunk ends ----
 mixin M1 {}
 ---- unknown chunk starts ----
-sealed
+base
 ---- unknown chunk ends ----
 base class S {}
 final class C extends S with M1, M2 {}
diff --git a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.expect b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.expect
index ea0aaef..af8ac5b 100644
--- a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.expect
+++ b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.expect
@@ -2,9 +2,9 @@
 import self as self;
 import "dart:core" as core;
 
-abstract final class M1 extends core::Object /*isMixinDeclaration*/  {
+abstract base class M1 extends core::Object /*isMixinDeclaration*/  {
 }
-abstract sealed class M2 extends core::Object /*isMixinDeclaration*/  {
+abstract base class M2 extends core::Object /*isMixinDeclaration*/  {
 }
 base class S extends core::Object {
   synthetic constructor •() → self::S
@@ -16,7 +16,7 @@
     : super self::S::•()
     ;
 }
-abstract sealed class _C&S&M1&M2 = self::_C&S&M1 with self::M2 /*isAnonymousMixin*/  {
+abstract final class _C&S&M1&M2 = self::_C&S&M1 with self::M2 /*isAnonymousMixin*/  {
   synthetic constructor •() → self::_C&S&M1&M2
     : super self::_C&S&M1::•()
     ;
diff --git a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.modular.expect b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.modular.expect
index ea0aaef..af8ac5b 100644
--- a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.modular.expect
@@ -2,9 +2,9 @@
 import self as self;
 import "dart:core" as core;
 
-abstract final class M1 extends core::Object /*isMixinDeclaration*/  {
+abstract base class M1 extends core::Object /*isMixinDeclaration*/  {
 }
-abstract sealed class M2 extends core::Object /*isMixinDeclaration*/  {
+abstract base class M2 extends core::Object /*isMixinDeclaration*/  {
 }
 base class S extends core::Object {
   synthetic constructor •() → self::S
@@ -16,7 +16,7 @@
     : super self::S::•()
     ;
 }
-abstract sealed class _C&S&M1&M2 = self::_C&S&M1 with self::M2 /*isAnonymousMixin*/  {
+abstract final class _C&S&M1&M2 = self::_C&S&M1 with self::M2 /*isAnonymousMixin*/  {
   synthetic constructor •() → self::_C&S&M1&M2
     : super self::_C&S&M1::•()
     ;
diff --git a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.outline.expect b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.outline.expect
index b398883..b0e82e4 100644
--- a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.outline.expect
@@ -2,9 +2,9 @@
 import self as self;
 import "dart:core" as core;
 
-abstract final class M1 extends core::Object /*isMixinDeclaration*/  {
+abstract base class M1 extends core::Object /*isMixinDeclaration*/  {
 }
-abstract sealed class M2 extends core::Object /*isMixinDeclaration*/  {
+abstract base class M2 extends core::Object /*isMixinDeclaration*/  {
 }
 base class S extends core::Object {
   synthetic constructor •() → self::S
@@ -15,7 +15,7 @@
     : super self::S::•()
     ;
 }
-abstract sealed class _C&S&M1&M2 = self::_C&S&M1 with self::M2 /*isAnonymousMixin*/  {
+abstract final class _C&S&M1&M2 = self::_C&S&M1 with self::M2 /*isAnonymousMixin*/  {
   synthetic constructor •() → self::_C&S&M1&M2
     : super self::_C&S&M1::•()
     ;
diff --git a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.transformed.expect
index 1051437..8c62c36 100644
--- a/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/anonymous_mixin.dart.weak.transformed.expect
@@ -2,9 +2,9 @@
 import self as self;
 import "dart:core" as core;
 
-abstract final class M1 extends core::Object /*isMixinDeclaration*/  {
+abstract base class M1 extends core::Object /*isMixinDeclaration*/  {
 }
-abstract sealed class M2 extends core::Object /*isMixinDeclaration*/  {
+abstract base class M2 extends core::Object /*isMixinDeclaration*/  {
 }
 base class S extends core::Object {
   synthetic constructor •() → self::S
@@ -16,7 +16,7 @@
     : super self::S::•()
     ;
 }
-abstract sealed class _C&S&M1&M2 extends self::_C&S&M1 implements self::M2 /*isAnonymousMixin,isEliminatedMixin*/  {
+abstract final class _C&S&M1&M2 extends self::_C&S&M1 implements self::M2 /*isAnonymousMixin,isEliminatedMixin*/  {
   synthetic constructor •() → self::_C&S&M1&M2
     : super self::_C&S&M1::•()
     ;
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart
index 61bacd2..098165c 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart
+++ b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart
@@ -6,5 +6,5 @@
 
 abstract final class B {}
 
-final mixin M {}
+mixin M {}
 final class C = Object with M;
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.strong.expect b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.strong.expect
index 89853a8..7efc169 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.strong.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.strong.expect
@@ -12,7 +12,7 @@
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
 final class C = core::Object with self::M /*hasConstConstructor*/  {
   const synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.strong.transformed.expect
index c8ef7b9..e48535c 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.strong.transformed.expect
@@ -12,7 +12,7 @@
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
 final class C extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/  {
   const synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.textual_outline.expect
index 04658a4..8f94a1c 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.textual_outline.expect
@@ -1,5 +1,6 @@
 final class A {}
+
 abstract final class B {}
-final
+
 mixin M {}
 final class C = Object with M;
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.textual_outline_modelled.expect
index 8c733fd..0c911df 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
 abstract final class B {}
+
 final class A {}
----- unknown chunk starts ----
-final
----- unknown chunk ends ----
+
 final class C = Object with M;
 mixin M {}
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.expect b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.expect
index 89853a8..7efc169 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.expect
@@ -12,7 +12,7 @@
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
 final class C = core::Object with self::M /*hasConstConstructor*/  {
   const synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.modular.expect
index 89853a8..7efc169 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.modular.expect
@@ -12,7 +12,7 @@
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
 final class C = core::Object with self::M /*hasConstConstructor*/  {
   const synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.outline.expect
index 18cc74a..9821d57 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.outline.expect
@@ -10,7 +10,7 @@
   synthetic constructor •() → self::B
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
 final class C = core::Object with self::M /*hasConstConstructor*/  {
   const synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.transformed.expect
index c8ef7b9..e48535c 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_class_declaration.dart.weak.transformed.expect
@@ -12,7 +12,7 @@
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
 final class C extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/  {
   const synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart
index e66694a..4c2ef0e 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart
+++ b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart
@@ -3,28 +3,21 @@
 // BSD-style license that can be found in the LICENSE file.
 
 final class FinalClass {} /* Ok */
-final mixin FinalMixin {} /* Ok */
+
 base class BaseClass extends FinalClass {} /* Ok */
+
 sealed class SubtypeOfFinal extends FinalClass {} /* Ok */
+
 class RegularClass {} /* Ok */
-final mixin FinalMixin2 {} /* Ok */
 
 class Extends extends FinalClass {} /* Error */
 
 class Implements implements FinalClass {} /* Error */
 
-mixin MixinImplements implements FinalMixin {} /* Error */
-
-class With with FinalMixin {} /* Error */
-
-class With2 with FinalMixin, FinalMixin2 {} /* Error */
-
 mixin On on FinalClass {} /* Error */
 
 class ExtendsExtends extends Extends {} /* Error */
 
-class Multiple extends BaseClass implements FinalMixin {} /* Error */
-
-class Multiple2 extends RegularClass implements FinalClass {} /* Error */
+class Multiple extends RegularClass implements FinalClass {} /* Error */
 
 class IndirectSubtype extends SubtypeOfFinal {} /* Error */
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.strong.expect b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.strong.expect
index 62027ae..1461483 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.strong.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.strong.expect
@@ -2,52 +2,32 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:12:7: Error: The type 'Extends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:13:7: Error: The type 'Extends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class Extends extends FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:14:7: Error: The type 'Implements' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:15:7: Error: The type 'Implements' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class Implements implements FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:16:7: Error: The type 'MixinImplements' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinImplements implements FinalMixin {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:18:7: Error: The type 'With' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class With with FinalMixin {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:20:7: Error: The type 'With2' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class With2 with FinalMixin, FinalMixin2 {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:22:7: Error: The type 'On' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:17:7: Error: The type 'On' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // mixin On on FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:24:7: Error: The type 'ExtendsExtends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:19:7: Error: The type 'ExtendsExtends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class ExtendsExtends extends Extends {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:26:7: Error: The type 'Multiple' must be 'base', 'final' or 'sealed' because the supertype 'BaseClass' is 'base'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:21:7: Error: The type 'Multiple' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
-// class Multiple extends BaseClass implements FinalMixin {} /* Error */
+// class Multiple extends RegularClass implements FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:28:7: Error: The type 'Multiple2' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class Multiple2 extends RegularClass implements FinalClass {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:30:7: Error: The type 'IndirectSubtype' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:23:7: Error: The type 'IndirectSubtype' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class IndirectSubtype extends SubtypeOfFinal {} /* Error */
 //       ^
@@ -60,8 +40,6 @@
     : super core::Object::•()
     ;
 }
-abstract final class FinalMixin extends core::Object /*isMixinDeclaration*/  {
-}
 base class BaseClass extends self::FinalClass {
   synthetic constructor •() → self::BaseClass
     : super self::FinalClass::•()
@@ -77,8 +55,6 @@
     : super core::Object::•()
     ;
 }
-abstract final class FinalMixin2 extends core::Object /*isMixinDeclaration*/  {
-}
 class Extends extends self::FinalClass {
   synthetic constructor •() → self::Extends
     : super self::FinalClass::•()
@@ -89,33 +65,6 @@
     : super core::Object::•()
     ;
 }
-abstract class MixinImplements extends core::Object implements self::FinalMixin /*isMixinDeclaration*/  {
-}
-abstract final class _With&Object&FinalMixin = core::Object with self::FinalMixin /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With&Object&FinalMixin
-    : super core::Object::•()
-    ;
-}
-class With extends self::_With&Object&FinalMixin {
-  synthetic constructor •() → self::With
-    : super self::_With&Object&FinalMixin::•()
-    ;
-}
-abstract final class _With2&Object&FinalMixin = core::Object with self::FinalMixin /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With2&Object&FinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _With2&Object&FinalMixin&FinalMixin2 = self::_With2&Object&FinalMixin with self::FinalMixin2 /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With2&Object&FinalMixin&FinalMixin2
-    : super self::_With2&Object&FinalMixin::•()
-    ;
-}
-class With2 extends self::_With2&Object&FinalMixin&FinalMixin2 {
-  synthetic constructor •() → self::With2
-    : super self::_With2&Object&FinalMixin&FinalMixin2::•()
-    ;
-}
 abstract class On extends self::FinalClass /*isMixinDeclaration*/  {
 }
 class ExtendsExtends extends self::Extends {
@@ -123,13 +72,8 @@
     : super self::Extends::•()
     ;
 }
-class Multiple extends self::BaseClass implements self::FinalMixin {
+class Multiple extends self::RegularClass implements self::FinalClass {
   synthetic constructor •() → self::Multiple
-    : super self::BaseClass::•()
-    ;
-}
-class Multiple2 extends self::RegularClass implements self::FinalClass {
-  synthetic constructor •() → self::Multiple2
     : super self::RegularClass::•()
     ;
 }
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.strong.transformed.expect b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.strong.transformed.expect
index 7d9ae91..1461483 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.strong.transformed.expect
@@ -2,52 +2,32 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:12:7: Error: The type 'Extends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:13:7: Error: The type 'Extends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class Extends extends FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:14:7: Error: The type 'Implements' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:15:7: Error: The type 'Implements' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class Implements implements FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:16:7: Error: The type 'MixinImplements' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinImplements implements FinalMixin {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:18:7: Error: The type 'With' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class With with FinalMixin {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:20:7: Error: The type 'With2' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class With2 with FinalMixin, FinalMixin2 {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:22:7: Error: The type 'On' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:17:7: Error: The type 'On' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // mixin On on FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:24:7: Error: The type 'ExtendsExtends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:19:7: Error: The type 'ExtendsExtends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class ExtendsExtends extends Extends {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:26:7: Error: The type 'Multiple' must be 'base', 'final' or 'sealed' because the supertype 'BaseClass' is 'base'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:21:7: Error: The type 'Multiple' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
-// class Multiple extends BaseClass implements FinalMixin {} /* Error */
+// class Multiple extends RegularClass implements FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:28:7: Error: The type 'Multiple2' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class Multiple2 extends RegularClass implements FinalClass {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:30:7: Error: The type 'IndirectSubtype' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:23:7: Error: The type 'IndirectSubtype' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class IndirectSubtype extends SubtypeOfFinal {} /* Error */
 //       ^
@@ -60,8 +40,6 @@
     : super core::Object::•()
     ;
 }
-abstract final class FinalMixin extends core::Object /*isMixinDeclaration*/  {
-}
 base class BaseClass extends self::FinalClass {
   synthetic constructor •() → self::BaseClass
     : super self::FinalClass::•()
@@ -77,8 +55,6 @@
     : super core::Object::•()
     ;
 }
-abstract final class FinalMixin2 extends core::Object /*isMixinDeclaration*/  {
-}
 class Extends extends self::FinalClass {
   synthetic constructor •() → self::Extends
     : super self::FinalClass::•()
@@ -89,33 +65,6 @@
     : super core::Object::•()
     ;
 }
-abstract class MixinImplements extends core::Object implements self::FinalMixin /*isMixinDeclaration*/  {
-}
-abstract final class _With&Object&FinalMixin extends core::Object implements self::FinalMixin /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With&Object&FinalMixin
-    : super core::Object::•()
-    ;
-}
-class With extends self::_With&Object&FinalMixin {
-  synthetic constructor •() → self::With
-    : super self::_With&Object&FinalMixin::•()
-    ;
-}
-abstract final class _With2&Object&FinalMixin extends core::Object implements self::FinalMixin /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With2&Object&FinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _With2&Object&FinalMixin&FinalMixin2 extends self::_With2&Object&FinalMixin implements self::FinalMixin2 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With2&Object&FinalMixin&FinalMixin2
-    : super self::_With2&Object&FinalMixin::•()
-    ;
-}
-class With2 extends self::_With2&Object&FinalMixin&FinalMixin2 {
-  synthetic constructor •() → self::With2
-    : super self::_With2&Object&FinalMixin&FinalMixin2::•()
-    ;
-}
 abstract class On extends self::FinalClass /*isMixinDeclaration*/  {
 }
 class ExtendsExtends extends self::Extends {
@@ -123,13 +72,8 @@
     : super self::Extends::•()
     ;
 }
-class Multiple extends self::BaseClass implements self::FinalMixin {
+class Multiple extends self::RegularClass implements self::FinalClass {
   synthetic constructor •() → self::Multiple
-    : super self::BaseClass::•()
-    ;
-}
-class Multiple2 extends self::RegularClass implements self::FinalClass {
-  synthetic constructor •() → self::Multiple2
     : super self::RegularClass::•()
     ;
 }
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.textual_outline.expect b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.textual_outline.expect
index 85c3eb6..e508635 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.textual_outline.expect
@@ -1,18 +1,19 @@
 final class FinalClass {}
-final
-mixin FinalMixin {}
+
 base class BaseClass extends FinalClass {}
+
 sealed class SubtypeOfFinal extends FinalClass {}
+
 class RegularClass {}
-final
-mixin FinalMixin2 {}
+
 class Extends extends FinalClass {}
+
 class Implements implements FinalClass {}
-mixin MixinImplements implements FinalMixin {}
-class With with FinalMixin {}
-class With2 with FinalMixin, FinalMixin2 {}
+
 mixin On on FinalClass {}
+
 class ExtendsExtends extends Extends {}
-class Multiple extends BaseClass implements FinalMixin {}
-class Multiple2 extends RegularClass implements FinalClass {}
+
+class Multiple extends RegularClass implements FinalClass {}
+
 class IndirectSubtype extends SubtypeOfFinal {}
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.textual_outline_modelled.expect
index 823e2a5..a2a6c2f 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.textual_outline_modelled.expect
@@ -1,22 +1,19 @@
-final class FinalClass {}
----- unknown chunk starts ----
-final
----- unknown chunk ends ----
 base class BaseClass extends FinalClass {}
-class RegularClass {}
-mixin FinalMixin {}
-sealed class SubtypeOfFinal extends FinalClass {}
----- unknown chunk starts ----
-final
----- unknown chunk ends ----
+
 class Extends extends FinalClass {}
+
 class ExtendsExtends extends Extends {}
+
 class Implements implements FinalClass {}
+
 class IndirectSubtype extends SubtypeOfFinal {}
-class Multiple extends BaseClass implements FinalMixin {}
-class Multiple2 extends RegularClass implements FinalClass {}
-class With with FinalMixin {}
-class With2 with FinalMixin, FinalMixin2 {}
-mixin FinalMixin2 {}
-mixin MixinImplements implements FinalMixin {}
+
+class Multiple extends RegularClass implements FinalClass {}
+
+class RegularClass {}
+
+final class FinalClass {}
+
 mixin On on FinalClass {}
+
+sealed class SubtypeOfFinal extends FinalClass {}
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.expect b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.expect
index 62027ae..1461483 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.expect
@@ -2,52 +2,32 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:12:7: Error: The type 'Extends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:13:7: Error: The type 'Extends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class Extends extends FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:14:7: Error: The type 'Implements' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:15:7: Error: The type 'Implements' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class Implements implements FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:16:7: Error: The type 'MixinImplements' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinImplements implements FinalMixin {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:18:7: Error: The type 'With' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class With with FinalMixin {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:20:7: Error: The type 'With2' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class With2 with FinalMixin, FinalMixin2 {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:22:7: Error: The type 'On' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:17:7: Error: The type 'On' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // mixin On on FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:24:7: Error: The type 'ExtendsExtends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:19:7: Error: The type 'ExtendsExtends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class ExtendsExtends extends Extends {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:26:7: Error: The type 'Multiple' must be 'base', 'final' or 'sealed' because the supertype 'BaseClass' is 'base'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:21:7: Error: The type 'Multiple' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
-// class Multiple extends BaseClass implements FinalMixin {} /* Error */
+// class Multiple extends RegularClass implements FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:28:7: Error: The type 'Multiple2' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class Multiple2 extends RegularClass implements FinalClass {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:30:7: Error: The type 'IndirectSubtype' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:23:7: Error: The type 'IndirectSubtype' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class IndirectSubtype extends SubtypeOfFinal {} /* Error */
 //       ^
@@ -60,8 +40,6 @@
     : super core::Object::•()
     ;
 }
-abstract final class FinalMixin extends core::Object /*isMixinDeclaration*/  {
-}
 base class BaseClass extends self::FinalClass {
   synthetic constructor •() → self::BaseClass
     : super self::FinalClass::•()
@@ -77,8 +55,6 @@
     : super core::Object::•()
     ;
 }
-abstract final class FinalMixin2 extends core::Object /*isMixinDeclaration*/  {
-}
 class Extends extends self::FinalClass {
   synthetic constructor •() → self::Extends
     : super self::FinalClass::•()
@@ -89,33 +65,6 @@
     : super core::Object::•()
     ;
 }
-abstract class MixinImplements extends core::Object implements self::FinalMixin /*isMixinDeclaration*/  {
-}
-abstract final class _With&Object&FinalMixin = core::Object with self::FinalMixin /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With&Object&FinalMixin
-    : super core::Object::•()
-    ;
-}
-class With extends self::_With&Object&FinalMixin {
-  synthetic constructor •() → self::With
-    : super self::_With&Object&FinalMixin::•()
-    ;
-}
-abstract final class _With2&Object&FinalMixin = core::Object with self::FinalMixin /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With2&Object&FinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _With2&Object&FinalMixin&FinalMixin2 = self::_With2&Object&FinalMixin with self::FinalMixin2 /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With2&Object&FinalMixin&FinalMixin2
-    : super self::_With2&Object&FinalMixin::•()
-    ;
-}
-class With2 extends self::_With2&Object&FinalMixin&FinalMixin2 {
-  synthetic constructor •() → self::With2
-    : super self::_With2&Object&FinalMixin&FinalMixin2::•()
-    ;
-}
 abstract class On extends self::FinalClass /*isMixinDeclaration*/  {
 }
 class ExtendsExtends extends self::Extends {
@@ -123,13 +72,8 @@
     : super self::Extends::•()
     ;
 }
-class Multiple extends self::BaseClass implements self::FinalMixin {
+class Multiple extends self::RegularClass implements self::FinalClass {
   synthetic constructor •() → self::Multiple
-    : super self::BaseClass::•()
-    ;
-}
-class Multiple2 extends self::RegularClass implements self::FinalClass {
-  synthetic constructor •() → self::Multiple2
     : super self::RegularClass::•()
     ;
 }
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.modular.expect b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.modular.expect
index 62027ae..1461483 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.modular.expect
@@ -2,52 +2,32 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:12:7: Error: The type 'Extends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:13:7: Error: The type 'Extends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class Extends extends FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:14:7: Error: The type 'Implements' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:15:7: Error: The type 'Implements' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class Implements implements FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:16:7: Error: The type 'MixinImplements' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinImplements implements FinalMixin {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:18:7: Error: The type 'With' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class With with FinalMixin {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:20:7: Error: The type 'With2' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class With2 with FinalMixin, FinalMixin2 {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:22:7: Error: The type 'On' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:17:7: Error: The type 'On' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // mixin On on FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:24:7: Error: The type 'ExtendsExtends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:19:7: Error: The type 'ExtendsExtends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class ExtendsExtends extends Extends {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:26:7: Error: The type 'Multiple' must be 'base', 'final' or 'sealed' because the supertype 'BaseClass' is 'base'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:21:7: Error: The type 'Multiple' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
-// class Multiple extends BaseClass implements FinalMixin {} /* Error */
+// class Multiple extends RegularClass implements FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:28:7: Error: The type 'Multiple2' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class Multiple2 extends RegularClass implements FinalClass {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:30:7: Error: The type 'IndirectSubtype' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:23:7: Error: The type 'IndirectSubtype' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class IndirectSubtype extends SubtypeOfFinal {} /* Error */
 //       ^
@@ -60,8 +40,6 @@
     : super core::Object::•()
     ;
 }
-abstract final class FinalMixin extends core::Object /*isMixinDeclaration*/  {
-}
 base class BaseClass extends self::FinalClass {
   synthetic constructor •() → self::BaseClass
     : super self::FinalClass::•()
@@ -77,8 +55,6 @@
     : super core::Object::•()
     ;
 }
-abstract final class FinalMixin2 extends core::Object /*isMixinDeclaration*/  {
-}
 class Extends extends self::FinalClass {
   synthetic constructor •() → self::Extends
     : super self::FinalClass::•()
@@ -89,33 +65,6 @@
     : super core::Object::•()
     ;
 }
-abstract class MixinImplements extends core::Object implements self::FinalMixin /*isMixinDeclaration*/  {
-}
-abstract final class _With&Object&FinalMixin = core::Object with self::FinalMixin /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With&Object&FinalMixin
-    : super core::Object::•()
-    ;
-}
-class With extends self::_With&Object&FinalMixin {
-  synthetic constructor •() → self::With
-    : super self::_With&Object&FinalMixin::•()
-    ;
-}
-abstract final class _With2&Object&FinalMixin = core::Object with self::FinalMixin /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With2&Object&FinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _With2&Object&FinalMixin&FinalMixin2 = self::_With2&Object&FinalMixin with self::FinalMixin2 /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With2&Object&FinalMixin&FinalMixin2
-    : super self::_With2&Object&FinalMixin::•()
-    ;
-}
-class With2 extends self::_With2&Object&FinalMixin&FinalMixin2 {
-  synthetic constructor •() → self::With2
-    : super self::_With2&Object&FinalMixin&FinalMixin2::•()
-    ;
-}
 abstract class On extends self::FinalClass /*isMixinDeclaration*/  {
 }
 class ExtendsExtends extends self::Extends {
@@ -123,13 +72,8 @@
     : super self::Extends::•()
     ;
 }
-class Multiple extends self::BaseClass implements self::FinalMixin {
+class Multiple extends self::RegularClass implements self::FinalClass {
   synthetic constructor •() → self::Multiple
-    : super self::BaseClass::•()
-    ;
-}
-class Multiple2 extends self::RegularClass implements self::FinalClass {
-  synthetic constructor •() → self::Multiple2
     : super self::RegularClass::•()
     ;
 }
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.outline.expect b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.outline.expect
index 4c0b171..0ffa228 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.outline.expect
@@ -2,52 +2,32 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:12:7: Error: The type 'Extends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:13:7: Error: The type 'Extends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class Extends extends FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:14:7: Error: The type 'Implements' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:15:7: Error: The type 'Implements' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class Implements implements FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:16:7: Error: The type 'MixinImplements' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinImplements implements FinalMixin {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:18:7: Error: The type 'With' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class With with FinalMixin {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:20:7: Error: The type 'With2' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class With2 with FinalMixin, FinalMixin2 {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:22:7: Error: The type 'On' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:17:7: Error: The type 'On' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // mixin On on FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:24:7: Error: The type 'ExtendsExtends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:19:7: Error: The type 'ExtendsExtends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class ExtendsExtends extends Extends {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:26:7: Error: The type 'Multiple' must be 'base', 'final' or 'sealed' because the supertype 'BaseClass' is 'base'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:21:7: Error: The type 'Multiple' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
-// class Multiple extends BaseClass implements FinalMixin {} /* Error */
+// class Multiple extends RegularClass implements FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:28:7: Error: The type 'Multiple2' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class Multiple2 extends RegularClass implements FinalClass {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:30:7: Error: The type 'IndirectSubtype' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:23:7: Error: The type 'IndirectSubtype' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class IndirectSubtype extends SubtypeOfFinal {} /* Error */
 //       ^
@@ -59,8 +39,6 @@
   synthetic constructor •() → self::FinalClass
     ;
 }
-abstract final class FinalMixin extends core::Object /*isMixinDeclaration*/  {
-}
 base class BaseClass extends self::FinalClass {
   synthetic constructor •() → self::BaseClass
     ;
@@ -73,8 +51,6 @@
   synthetic constructor •() → self::RegularClass
     ;
 }
-abstract final class FinalMixin2 extends core::Object /*isMixinDeclaration*/  {
-}
 class Extends extends self::FinalClass {
   synthetic constructor •() → self::Extends
     ;
@@ -83,45 +59,16 @@
   synthetic constructor •() → self::Implements
     ;
 }
-abstract class MixinImplements extends core::Object implements self::FinalMixin /*isMixinDeclaration*/  {
-}
-abstract final class _With&Object&FinalMixin = core::Object with self::FinalMixin /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With&Object&FinalMixin
-    : super core::Object::•()
-    ;
-}
-class With extends self::_With&Object&FinalMixin {
-  synthetic constructor •() → self::With
-    ;
-}
-abstract final class _With2&Object&FinalMixin = core::Object with self::FinalMixin /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With2&Object&FinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _With2&Object&FinalMixin&FinalMixin2 = self::_With2&Object&FinalMixin with self::FinalMixin2 /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With2&Object&FinalMixin&FinalMixin2
-    : super self::_With2&Object&FinalMixin::•()
-    ;
-}
-class With2 extends self::_With2&Object&FinalMixin&FinalMixin2 {
-  synthetic constructor •() → self::With2
-    ;
-}
 abstract class On extends self::FinalClass /*isMixinDeclaration*/  {
 }
 class ExtendsExtends extends self::Extends {
   synthetic constructor •() → self::ExtendsExtends
     ;
 }
-class Multiple extends self::BaseClass implements self::FinalMixin {
+class Multiple extends self::RegularClass implements self::FinalClass {
   synthetic constructor •() → self::Multiple
     ;
 }
-class Multiple2 extends self::RegularClass implements self::FinalClass {
-  synthetic constructor •() → self::Multiple2
-    ;
-}
 class IndirectSubtype extends self::SubtypeOfFinal {
   synthetic constructor •() → self::IndirectSubtype
     ;
diff --git a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.transformed.expect b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.transformed.expect
index 7d9ae91..1461483 100644
--- a/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart.weak.transformed.expect
@@ -2,52 +2,32 @@
 //
 // Problems in library:
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:12:7: Error: The type 'Extends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:13:7: Error: The type 'Extends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class Extends extends FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:14:7: Error: The type 'Implements' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:15:7: Error: The type 'Implements' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class Implements implements FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:16:7: Error: The type 'MixinImplements' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinImplements implements FinalMixin {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:18:7: Error: The type 'With' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class With with FinalMixin {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:20:7: Error: The type 'With2' must be 'base', 'final' or 'sealed' because the supertype 'FinalMixin' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class With2 with FinalMixin, FinalMixin2 {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:22:7: Error: The type 'On' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:17:7: Error: The type 'On' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // mixin On on FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:24:7: Error: The type 'ExtendsExtends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:19:7: Error: The type 'ExtendsExtends' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class ExtendsExtends extends Extends {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:26:7: Error: The type 'Multiple' must be 'base', 'final' or 'sealed' because the supertype 'BaseClass' is 'base'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:21:7: Error: The type 'Multiple' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
-// class Multiple extends BaseClass implements FinalMixin {} /* Error */
+// class Multiple extends RegularClass implements FinalClass {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:28:7: Error: The type 'Multiple2' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// class Multiple2 extends RegularClass implements FinalClass {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:30:7: Error: The type 'IndirectSubtype' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/final_subtype_not_base_final_sealed.dart:23:7: Error: The type 'IndirectSubtype' must be 'base', 'final' or 'sealed' because the supertype 'FinalClass' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // class IndirectSubtype extends SubtypeOfFinal {} /* Error */
 //       ^
@@ -60,8 +40,6 @@
     : super core::Object::•()
     ;
 }
-abstract final class FinalMixin extends core::Object /*isMixinDeclaration*/  {
-}
 base class BaseClass extends self::FinalClass {
   synthetic constructor •() → self::BaseClass
     : super self::FinalClass::•()
@@ -77,8 +55,6 @@
     : super core::Object::•()
     ;
 }
-abstract final class FinalMixin2 extends core::Object /*isMixinDeclaration*/  {
-}
 class Extends extends self::FinalClass {
   synthetic constructor •() → self::Extends
     : super self::FinalClass::•()
@@ -89,33 +65,6 @@
     : super core::Object::•()
     ;
 }
-abstract class MixinImplements extends core::Object implements self::FinalMixin /*isMixinDeclaration*/  {
-}
-abstract final class _With&Object&FinalMixin extends core::Object implements self::FinalMixin /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With&Object&FinalMixin
-    : super core::Object::•()
-    ;
-}
-class With extends self::_With&Object&FinalMixin {
-  synthetic constructor •() → self::With
-    : super self::_With&Object&FinalMixin::•()
-    ;
-}
-abstract final class _With2&Object&FinalMixin extends core::Object implements self::FinalMixin /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With2&Object&FinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _With2&Object&FinalMixin&FinalMixin2 extends self::_With2&Object&FinalMixin implements self::FinalMixin2 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_With2&Object&FinalMixin&FinalMixin2
-    : super self::_With2&Object&FinalMixin::•()
-    ;
-}
-class With2 extends self::_With2&Object&FinalMixin&FinalMixin2 {
-  synthetic constructor •() → self::With2
-    : super self::_With2&Object&FinalMixin&FinalMixin2::•()
-    ;
-}
 abstract class On extends self::FinalClass /*isMixinDeclaration*/  {
 }
 class ExtendsExtends extends self::Extends {
@@ -123,13 +72,8 @@
     : super self::Extends::•()
     ;
 }
-class Multiple extends self::BaseClass implements self::FinalMixin {
+class Multiple extends self::RegularClass implements self::FinalClass {
   synthetic constructor •() → self::Multiple
-    : super self::BaseClass::•()
-    ;
-}
-class Multiple2 extends self::RegularClass implements self::FinalClass {
-  synthetic constructor •() → self::Multiple2
     : super self::RegularClass::•()
     ;
 }
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart
index 511f247..0d41a58 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart
@@ -8,16 +8,8 @@
 
 final class ImplementsFinalClass implements A {}
 
-final class ImplementsFinalMixin implements M {}
+enum EnumImplementsFinalMixin implements A { x }
 
-final class MixInFinalMixin with M {}
+base mixin MixinOnA on A {}
 
-enum EnumImplementsFinalMixin implements M { x }
-
-enum EnumMixInFinalMixin with M { x }
-
-final mixin MixinOnA on A {}
-
-final mixin MixinOnM on M {}
-
-final mixin MixinOnAM on A, M {}
+base mixin MixinOnAB on A, B {}
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.strong.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.strong.expect
index 85793b5..61cb430 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.strong.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.strong.expect
@@ -10,22 +10,10 @@
 // final class ImplementsFinalClass implements A {}
 //                                             ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:45: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixin implements M {}
-//                                             ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:13:34: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixin with M {}
-//                                  ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:15:42: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixin implements M { x }
+// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:42: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// enum EnumImplementsFinalMixin implements A { x }
 //                                          ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:17:31: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixin with M { x }
-//                               ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -42,22 +30,7 @@
     : super core::Object::•()
     ;
 }
-final class ImplementsFinalMixin extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _MixInFinalMixin&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixin extends self::_MixInFinalMixin&Object&M {
-  synthetic constructor •() → self::MixInFinalMixin
-    : super self::_MixInFinalMixin&Object&M::•()
-    ;
-}
-class EnumImplementsFinalMixin extends core::_Enum implements mai::M /*isEnum*/  {
+class EnumImplementsFinalMixin extends core::_Enum implements mai::A /*isEnum*/  {
   static const field core::List<self::EnumImplementsFinalMixin> values = #C4;
   enum-element static const field self::EnumImplementsFinalMixin x = #C3;
   const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixin
@@ -66,30 +39,14 @@
   method _enumToString() → core::String
     return "EnumImplementsFinalMixin.${this.{core::_Enum::_name}{core::String}}";
 }
-abstract final class _EnumMixInFinalMixin&_Enum&M = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixin&_Enum&M
-    : super core::_Enum::•(index, _name)
-    ;
+abstract base class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-class EnumMixInFinalMixin extends self::_EnumMixInFinalMixin&_Enum&M /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixin> values = #C6;
-  enum-element static const field self::EnumMixInFinalMixin x = #C5;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixin
-    : super self::_EnumMixInFinalMixin&_Enum&M::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixin.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class MixinOnA extends mai::A /*isMixinDeclaration*/  {
-}
-abstract final class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAB&A&B
     : super core::Object::•()
     ;
 }
-abstract final class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract base class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -101,7 +58,10 @@
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+final class B extends core::Object {
+  synthetic constructor •() → mai::B
+    : super core::Object::•()
+    ;
 }
 
 constants  {
@@ -109,15 +69,11 @@
   #C2 = "x"
   #C3 = self::EnumImplementsFinalMixin {index:#C1, _name:#C2}
   #C4 = <self::EnumImplementsFinalMixin>[#C3]
-  #C5 = self::EnumMixInFinalMixin {index:#C1, _name:#C2}
-  #C6 = <self::EnumMixInFinalMixin>[#C5]
 }
 
 
 Constructor coverage from constants:
 org-dartlang-testcase:///main.dart:
-- EnumImplementsFinalMixin. (from org-dartlang-testcase:///main.dart:15:6)
+- EnumImplementsFinalMixin. (from org-dartlang-testcase:///main.dart:11:6)
 - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
-- EnumMixInFinalMixin. (from org-dartlang-testcase:///main.dart:17:6)
-- _EnumMixInFinalMixin&_Enum&M. (from org-dartlang-testcase:///main.dart:17:6)
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.strong.transformed.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.strong.transformed.expect
index aa4c092..61cb430 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.strong.transformed.expect
@@ -10,22 +10,10 @@
 // final class ImplementsFinalClass implements A {}
 //                                             ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:45: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixin implements M {}
-//                                             ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:13:34: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixin with M {}
-//                                  ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:15:42: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixin implements M { x }
+// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:42: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// enum EnumImplementsFinalMixin implements A { x }
 //                                          ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:17:31: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixin with M { x }
-//                               ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -42,22 +30,7 @@
     : super core::Object::•()
     ;
 }
-final class ImplementsFinalMixin extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _MixInFinalMixin&Object&M extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixin extends self::_MixInFinalMixin&Object&M {
-  synthetic constructor •() → self::MixInFinalMixin
-    : super self::_MixInFinalMixin&Object&M::•()
-    ;
-}
-class EnumImplementsFinalMixin extends core::_Enum implements mai::M /*isEnum*/  {
+class EnumImplementsFinalMixin extends core::_Enum implements mai::A /*isEnum*/  {
   static const field core::List<self::EnumImplementsFinalMixin> values = #C4;
   enum-element static const field self::EnumImplementsFinalMixin x = #C3;
   const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixin
@@ -66,30 +39,14 @@
   method _enumToString() → core::String
     return "EnumImplementsFinalMixin.${this.{core::_Enum::_name}{core::String}}";
 }
-abstract final class _EnumMixInFinalMixin&_Enum&M extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixin&_Enum&M
-    : super core::_Enum::•(index, _name)
-    ;
+abstract base class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-class EnumMixInFinalMixin extends self::_EnumMixInFinalMixin&_Enum&M /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixin> values = #C6;
-  enum-element static const field self::EnumMixInFinalMixin x = #C5;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixin
-    : super self::_EnumMixInFinalMixin&_Enum&M::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixin.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class MixinOnA extends mai::A /*isMixinDeclaration*/  {
-}
-abstract final class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAB&A&B
     : super core::Object::•()
     ;
 }
-abstract final class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract base class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -101,7 +58,10 @@
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+final class B extends core::Object {
+  synthetic constructor •() → mai::B
+    : super core::Object::•()
+    ;
 }
 
 constants  {
@@ -109,15 +69,11 @@
   #C2 = "x"
   #C3 = self::EnumImplementsFinalMixin {index:#C1, _name:#C2}
   #C4 = <self::EnumImplementsFinalMixin>[#C3]
-  #C5 = self::EnumMixInFinalMixin {index:#C1, _name:#C2}
-  #C6 = <self::EnumMixInFinalMixin>[#C5]
 }
 
 
 Constructor coverage from constants:
 org-dartlang-testcase:///main.dart:
-- EnumImplementsFinalMixin. (from org-dartlang-testcase:///main.dart:15:6)
+- EnumImplementsFinalMixin. (from org-dartlang-testcase:///main.dart:11:6)
 - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
-- EnumMixInFinalMixin. (from org-dartlang-testcase:///main.dart:17:6)
-- _EnumMixInFinalMixin&_Enum&M. (from org-dartlang-testcase:///main.dart:17:6)
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.textual_outline.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.textual_outline.expect
index 404d4bf..c10c3ad 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.textual_outline.expect
@@ -1,13 +1,10 @@
 import 'main_lib.dart';
+
 final class ExtendsFinalClass extends A {}
+
 final class ImplementsFinalClass implements A {}
-final class ImplementsFinalMixin implements M {}
-final class MixInFinalMixin with M {}
-enum EnumImplementsFinalMixin implements M { x }
-enum EnumMixInFinalMixin with M { x }
-final
-mixin MixinOnA on A {}
-final
-mixin MixinOnM on M {}
-final
-mixin MixinOnAM on A, M {}
+
+enum EnumImplementsFinalMixin implements A { x }
+
+base mixin MixinOnA on A {}
+base mixin MixinOnAB on A, B {}
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.textual_outline_modelled.expect
index a275475..c04f3c1 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.textual_outline_modelled.expect
@@ -1,19 +1,12 @@
 import 'main_lib.dart';
-enum EnumImplementsFinalMixin implements M { x }
-enum EnumMixInFinalMixin with M { x }
+enum EnumImplementsFinalMixin implements A { x }
 final class ExtendsFinalClass extends A {}
 final class ImplementsFinalClass implements A {}
-final class ImplementsFinalMixin implements M {}
-final class MixInFinalMixin with M {}
 ---- unknown chunk starts ----
-final
+base
 ---- unknown chunk ends ----
 mixin MixinOnA on A {}
 ---- unknown chunk starts ----
-final
+base
 ---- unknown chunk ends ----
-mixin MixinOnM on M {}
----- unknown chunk starts ----
-final
----- unknown chunk ends ----
-mixin MixinOnAM on A, M {}
+mixin MixinOnAB on A, B {}
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.expect
index 4a19a64..4993dd0 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.expect
@@ -10,22 +10,10 @@
 // final class ImplementsFinalClass implements A {}
 //                                             ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:45: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixin implements M {}
-//                                             ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:13:34: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixin with M {}
-//                                  ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:15:42: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixin implements M { x }
+// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:42: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// enum EnumImplementsFinalMixin implements A { x }
 //                                          ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:17:31: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixin with M { x }
-//                               ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -42,22 +30,7 @@
     : super core::Object::•()
     ;
 }
-final class ImplementsFinalMixin extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _MixInFinalMixin&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixin extends self::_MixInFinalMixin&Object&M {
-  synthetic constructor •() → self::MixInFinalMixin
-    : super self::_MixInFinalMixin&Object&M::•()
-    ;
-}
-class EnumImplementsFinalMixin extends core::_Enum implements mai::M /*isEnum*/  {
+class EnumImplementsFinalMixin extends core::_Enum implements mai::A /*isEnum*/  {
   static const field core::List<self::EnumImplementsFinalMixin> values = #C4;
   enum-element static const field self::EnumImplementsFinalMixin x = #C3;
   const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixin
@@ -66,30 +39,14 @@
   method _enumToString() → core::String
     return "EnumImplementsFinalMixin.${this.{core::_Enum::_name}{core::String}}";
 }
-abstract final class _EnumMixInFinalMixin&_Enum&M = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixin&_Enum&M
-    : super core::_Enum::•(index, _name)
-    ;
+abstract base class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-class EnumMixInFinalMixin extends self::_EnumMixInFinalMixin&_Enum&M /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixin> values = #C6;
-  enum-element static const field self::EnumMixInFinalMixin x = #C5;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixin
-    : super self::_EnumMixInFinalMixin&_Enum&M::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixin.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class MixinOnA extends mai::A /*isMixinDeclaration*/  {
-}
-abstract final class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAB&A&B
     : super core::Object::•()
     ;
 }
-abstract final class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract base class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -101,7 +58,10 @@
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+final class B extends core::Object {
+  synthetic constructor •() → mai::B
+    : super core::Object::•()
+    ;
 }
 
 constants  {
@@ -109,15 +69,11 @@
   #C2 = "x"
   #C3 = self::EnumImplementsFinalMixin {index:#C1, _name:#C2}
   #C4 = <self::EnumImplementsFinalMixin*>[#C3]
-  #C5 = self::EnumMixInFinalMixin {index:#C1, _name:#C2}
-  #C6 = <self::EnumMixInFinalMixin*>[#C5]
 }
 
 
 Constructor coverage from constants:
 org-dartlang-testcase:///main.dart:
-- EnumImplementsFinalMixin. (from org-dartlang-testcase:///main.dart:15:6)
+- EnumImplementsFinalMixin. (from org-dartlang-testcase:///main.dart:11:6)
 - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
-- EnumMixInFinalMixin. (from org-dartlang-testcase:///main.dart:17:6)
-- _EnumMixInFinalMixin&_Enum&M. (from org-dartlang-testcase:///main.dart:17:6)
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.modular.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.modular.expect
index 4dbbe10..5a73e11 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.modular.expect
@@ -10,22 +10,10 @@
 // final class ImplementsFinalClass implements A {}
 //                                             ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:45: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixin implements M {}
-//                                             ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:13:34: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixin with M {}
-//                                  ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:15:42: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixin implements M { x }
+// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:42: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// enum EnumImplementsFinalMixin implements A { x }
 //                                          ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:17:31: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixin with M { x }
-//                               ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -42,22 +30,7 @@
     : super core::Object::•()
     ;
 }
-final class ImplementsFinalMixin extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _MixInFinalMixin&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixin extends self::_MixInFinalMixin&Object&M {
-  synthetic constructor •() → self::MixInFinalMixin
-    : super self::_MixInFinalMixin&Object&M::•()
-    ;
-}
-class EnumImplementsFinalMixin extends core::_Enum implements mai::M /*isEnum*/  {
+class EnumImplementsFinalMixin extends core::_Enum implements mai::A /*isEnum*/  {
   static const field core::List<self::EnumImplementsFinalMixin> values = #C4;
   enum-element static const field self::EnumImplementsFinalMixin x = #C3;
   const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixin
@@ -66,30 +39,14 @@
   method _enumToString() → core::String
     return "EnumImplementsFinalMixin.${this.{core::_Enum::_name}{core::String}}";
 }
-abstract final class _EnumMixInFinalMixin&_Enum&M = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixin&_Enum&M
-    : super core::_Enum::•(index, _name)
-    ;
+abstract base class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-class EnumMixInFinalMixin extends self::_EnumMixInFinalMixin&_Enum&M /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixin> values = #C6;
-  enum-element static const field self::EnumMixInFinalMixin x = #C5;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixin
-    : super self::_EnumMixInFinalMixin&_Enum&M::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixin.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class MixinOnA extends mai::A /*isMixinDeclaration*/  {
-}
-abstract final class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAB&A&B
     : super core::Object::•()
     ;
 }
-abstract final class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract base class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/  {
 }
 
 constants  {
@@ -97,15 +54,11 @@
   #C2 = "x"
   #C3 = self::EnumImplementsFinalMixin {index:#C1, _name:#C2}
   #C4 = <self::EnumImplementsFinalMixin*>[#C3]
-  #C5 = self::EnumMixInFinalMixin {index:#C1, _name:#C2}
-  #C6 = <self::EnumMixInFinalMixin*>[#C5]
 }
 
 
 Constructor coverage from constants:
 org-dartlang-testcase:///main.dart:
-- EnumImplementsFinalMixin. (from org-dartlang-testcase:///main.dart:15:6)
+- EnumImplementsFinalMixin. (from org-dartlang-testcase:///main.dart:11:6)
 - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
-- EnumMixInFinalMixin. (from org-dartlang-testcase:///main.dart:17:6)
-- _EnumMixInFinalMixin&_Enum&M. (from org-dartlang-testcase:///main.dart:17:6)
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.outline.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.outline.expect
index 22a9e76..ad03a18 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.outline.expect
@@ -10,22 +10,10 @@
 // final class ImplementsFinalClass implements A {}
 //                                             ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:45: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixin implements M {}
-//                                             ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:13:34: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixin with M {}
-//                                  ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:15:42: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixin implements M { x }
+// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:42: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// enum EnumImplementsFinalMixin implements A { x }
 //                                          ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:17:31: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixin with M { x }
-//                               ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -40,20 +28,7 @@
   synthetic constructor •() → self::ImplementsFinalClass
     ;
 }
-final class ImplementsFinalMixin extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixin
-    ;
-}
-abstract final class _MixInFinalMixin&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixin extends self::_MixInFinalMixin&Object&M {
-  synthetic constructor •() → self::MixInFinalMixin
-    ;
-}
-class EnumImplementsFinalMixin extends core::_Enum implements mai::M /*isEnum*/  {
+class EnumImplementsFinalMixin extends core::_Enum implements mai::A /*isEnum*/  {
   static const field core::List<self::EnumImplementsFinalMixin> values = const <self::EnumImplementsFinalMixin>[self::EnumImplementsFinalMixin::x];
   enum-element static const field self::EnumImplementsFinalMixin x = const self::EnumImplementsFinalMixin::•(0, "x");
   const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixin
@@ -62,28 +37,13 @@
   method _enumToString() → core::String
     return "EnumImplementsFinalMixin.${this.{core::_Enum::_name}{core::String}}";
 }
-abstract final class _EnumMixInFinalMixin&_Enum&M = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixin&_Enum&M
-    : super core::_Enum::•(index, _name)
+abstract base class MixinOnA extends mai::A /*isMixinDeclaration*/  {
+}
+abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAB&A&B
     ;
 }
-class EnumMixInFinalMixin extends self::_EnumMixInFinalMixin&_Enum&M /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixin> values = const <self::EnumMixInFinalMixin>[self::EnumMixInFinalMixin::x];
-  enum-element static const field self::EnumMixInFinalMixin x = const self::EnumMixInFinalMixin::•(0, "x");
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixin
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixin.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class MixinOnA extends mai::A /*isMixinDeclaration*/  {
-}
-abstract final class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
-    ;
-}
-abstract final class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract base class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -94,13 +54,13 @@
   synthetic constructor •() → mai::A
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+final class B extends core::Object {
+  synthetic constructor •() → mai::B
+    ;
 }
 
 
 Extra constant evaluation status:
-Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:15:6 -> ListConstant(const <EnumImplementsFinalMixin*>[const EnumImplementsFinalMixin{_Enum.index: 0, _Enum._name: "x"}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:15:46 -> InstanceConstant(const EnumImplementsFinalMixin{_Enum.index: 0, _Enum._name: "x"})
-Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:17:6 -> ListConstant(const <EnumMixInFinalMixin*>[const EnumMixInFinalMixin{}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:17:35 -> InstanceConstant(const EnumMixInFinalMixin{})
-Extra constant evaluation: evaluated: 14, effectively constant: 4
+Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:11:6 -> ListConstant(const <EnumImplementsFinalMixin*>[const EnumImplementsFinalMixin{_Enum.index: 0, _Enum._name: "x"}])
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:11:46 -> InstanceConstant(const EnumImplementsFinalMixin{_Enum.index: 0, _Enum._name: "x"})
+Extra constant evaluation: evaluated: 7, effectively constant: 2
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.transformed.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.transformed.expect
index 829d478..4993dd0 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart.weak.transformed.expect
@@ -10,22 +10,10 @@
 // final class ImplementsFinalClass implements A {}
 //                                             ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:45: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixin implements M {}
-//                                             ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:13:34: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixin with M {}
-//                                  ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:15:42: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixin implements M { x }
+// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:11:42: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// enum EnumImplementsFinalMixin implements A { x }
 //                                          ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library/main.dart:17:31: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixin with M { x }
-//                               ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -42,22 +30,7 @@
     : super core::Object::•()
     ;
 }
-final class ImplementsFinalMixin extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _MixInFinalMixin&Object&M extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixin extends self::_MixInFinalMixin&Object&M {
-  synthetic constructor •() → self::MixInFinalMixin
-    : super self::_MixInFinalMixin&Object&M::•()
-    ;
-}
-class EnumImplementsFinalMixin extends core::_Enum implements mai::M /*isEnum*/  {
+class EnumImplementsFinalMixin extends core::_Enum implements mai::A /*isEnum*/  {
   static const field core::List<self::EnumImplementsFinalMixin> values = #C4;
   enum-element static const field self::EnumImplementsFinalMixin x = #C3;
   const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixin
@@ -66,30 +39,14 @@
   method _enumToString() → core::String
     return "EnumImplementsFinalMixin.${this.{core::_Enum::_name}{core::String}}";
 }
-abstract final class _EnumMixInFinalMixin&_Enum&M extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixin&_Enum&M
-    : super core::_Enum::•(index, _name)
-    ;
+abstract base class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-class EnumMixInFinalMixin extends self::_EnumMixInFinalMixin&_Enum&M /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixin> values = #C6;
-  enum-element static const field self::EnumMixInFinalMixin x = #C5;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixin
-    : super self::_EnumMixInFinalMixin&_Enum&M::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixin.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class MixinOnA extends mai::A /*isMixinDeclaration*/  {
-}
-abstract final class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAB&A&B
     : super core::Object::•()
     ;
 }
-abstract final class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract base class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -101,7 +58,10 @@
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+final class B extends core::Object {
+  synthetic constructor •() → mai::B
+    : super core::Object::•()
+    ;
 }
 
 constants  {
@@ -109,15 +69,11 @@
   #C2 = "x"
   #C3 = self::EnumImplementsFinalMixin {index:#C1, _name:#C2}
   #C4 = <self::EnumImplementsFinalMixin*>[#C3]
-  #C5 = self::EnumMixInFinalMixin {index:#C1, _name:#C2}
-  #C6 = <self::EnumMixInFinalMixin*>[#C5]
 }
 
 
 Constructor coverage from constants:
 org-dartlang-testcase:///main.dart:
-- EnumImplementsFinalMixin. (from org-dartlang-testcase:///main.dart:15:6)
+- EnumImplementsFinalMixin. (from org-dartlang-testcase:///main.dart:11:6)
 - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
-- EnumMixInFinalMixin. (from org-dartlang-testcase:///main.dart:17:6)
-- _EnumMixInFinalMixin&_Enum&M. (from org-dartlang-testcase:///main.dart:17:6)
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library/main_lib.dart b/pkg/front_end/testcases/class_modifiers/final/outside_library/main_lib.dart
index 57455af..d513d30 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library/main_lib.dart
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library/main_lib.dart
@@ -4,4 +4,4 @@
 
 final class A {}
 
-final mixin M {}
\ No newline at end of file
+final class B {}
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart
index 3443b8d..9163931 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart
@@ -8,12 +8,6 @@
 
 class ImplementsFinalClass implements A {} /* Error */
 
-class ImplementsFinalMixin implements M {} /* Error */
-
-class MixInFinalMixin with M {} /* Error */
-
 mixin MixinOnA on A {} /* Error */
 
-mixin MixinOnM on M {} /* Error */
-
-mixin MixinOnAM on A, M {} /* Error */
+mixin MixinOnAB on A, B {} /* Error */
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.strong.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.strong.expect
index 9e2bc4d..089a4fd 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.strong.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.strong.expect
@@ -10,27 +10,14 @@
 // class ImplementsFinalClass implements A {} /* Error */
 //                                       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:11:39: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// class ImplementsFinalMixin implements M {} /* Error */
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:13:28: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// class MixInFinalMixin with M {} /* Error */
-//                            ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:15:7: Error: The type 'MixinOnA' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:11:7: Error: The type 'MixinOnA' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // mixin MixinOnA on A {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:17:7: Error: The type 'MixinOnM' must be 'base', 'final' or 'sealed' because the supertype 'M' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:13:7: Error: The type 'MixinOnAB' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinOnM on M {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:19:7: Error: The type 'MixinOnAM' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinOnAM on A, M {} /* Error */
+// mixin MixinOnAB on A, B {} /* Error */
 //       ^
 //
 import self as self;
@@ -49,31 +36,14 @@
     : super core::Object::•()
     ;
 }
-class ImplementsFinalMixin extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _MixInFinalMixin&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInFinalMixin extends self::_MixInFinalMixin&Object&M {
-  synthetic constructor •() → self::MixInFinalMixin
-    : super self::_MixInFinalMixin&Object&M::•()
-    ;
-}
 abstract class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-abstract class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAB&A&B
     : super core::Object::•()
     ;
 }
-abstract class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -85,5 +55,8 @@
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+final class B extends core::Object {
+  synthetic constructor •() → mai::B
+    : super core::Object::•()
+    ;
 }
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.strong.transformed.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.strong.transformed.expect
index 8b7e19a..089a4fd 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.strong.transformed.expect
@@ -10,27 +10,14 @@
 // class ImplementsFinalClass implements A {} /* Error */
 //                                       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:11:39: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// class ImplementsFinalMixin implements M {} /* Error */
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:13:28: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// class MixInFinalMixin with M {} /* Error */
-//                            ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:15:7: Error: The type 'MixinOnA' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:11:7: Error: The type 'MixinOnA' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // mixin MixinOnA on A {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:17:7: Error: The type 'MixinOnM' must be 'base', 'final' or 'sealed' because the supertype 'M' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:13:7: Error: The type 'MixinOnAB' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinOnM on M {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:19:7: Error: The type 'MixinOnAM' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinOnAM on A, M {} /* Error */
+// mixin MixinOnAB on A, B {} /* Error */
 //       ^
 //
 import self as self;
@@ -49,31 +36,14 @@
     : super core::Object::•()
     ;
 }
-class ImplementsFinalMixin extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _MixInFinalMixin&Object&M extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInFinalMixin extends self::_MixInFinalMixin&Object&M {
-  synthetic constructor •() → self::MixInFinalMixin
-    : super self::_MixInFinalMixin&Object&M::•()
-    ;
-}
 abstract class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-abstract class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAB&A&B
     : super core::Object::•()
     ;
 }
-abstract class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -85,5 +55,8 @@
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+final class B extends core::Object {
+  synthetic constructor •() → mai::B
+    : super core::Object::•()
+    ;
 }
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.textual_outline.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.textual_outline.expect
index a908a6f..d647802 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.textual_outline.expect
@@ -4,10 +4,5 @@
 
 class ImplementsFinalClass implements A {}
 
-class ImplementsFinalMixin implements M {}
-
-class MixInFinalMixin with M {}
-
 mixin MixinOnA on A {}
-mixin MixinOnM on M {}
-mixin MixinOnAM on A, M {}
+mixin MixinOnAB on A, B {}
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.textual_outline_modelled.expect
index 462d356..d647802 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.textual_outline_modelled.expect
@@ -4,10 +4,5 @@
 
 class ImplementsFinalClass implements A {}
 
-class ImplementsFinalMixin implements M {}
-
-class MixInFinalMixin with M {}
-
 mixin MixinOnA on A {}
-mixin MixinOnAM on A, M {}
-mixin MixinOnM on M {}
+mixin MixinOnAB on A, B {}
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.expect
index 9e2bc4d..089a4fd 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.expect
@@ -10,27 +10,14 @@
 // class ImplementsFinalClass implements A {} /* Error */
 //                                       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:11:39: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// class ImplementsFinalMixin implements M {} /* Error */
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:13:28: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// class MixInFinalMixin with M {} /* Error */
-//                            ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:15:7: Error: The type 'MixinOnA' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:11:7: Error: The type 'MixinOnA' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // mixin MixinOnA on A {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:17:7: Error: The type 'MixinOnM' must be 'base', 'final' or 'sealed' because the supertype 'M' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:13:7: Error: The type 'MixinOnAB' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinOnM on M {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:19:7: Error: The type 'MixinOnAM' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinOnAM on A, M {} /* Error */
+// mixin MixinOnAB on A, B {} /* Error */
 //       ^
 //
 import self as self;
@@ -49,31 +36,14 @@
     : super core::Object::•()
     ;
 }
-class ImplementsFinalMixin extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _MixInFinalMixin&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInFinalMixin extends self::_MixInFinalMixin&Object&M {
-  synthetic constructor •() → self::MixInFinalMixin
-    : super self::_MixInFinalMixin&Object&M::•()
-    ;
-}
 abstract class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-abstract class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAB&A&B
     : super core::Object::•()
     ;
 }
-abstract class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -85,5 +55,8 @@
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+final class B extends core::Object {
+  synthetic constructor •() → mai::B
+    : super core::Object::•()
+    ;
 }
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.modular.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.modular.expect
index 7896e50..0da4c5f 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.modular.expect
@@ -10,27 +10,14 @@
 // class ImplementsFinalClass implements A {} /* Error */
 //                                       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:11:39: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// class ImplementsFinalMixin implements M {} /* Error */
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:13:28: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// class MixInFinalMixin with M {} /* Error */
-//                            ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:15:7: Error: The type 'MixinOnA' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:11:7: Error: The type 'MixinOnA' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // mixin MixinOnA on A {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:17:7: Error: The type 'MixinOnM' must be 'base', 'final' or 'sealed' because the supertype 'M' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:13:7: Error: The type 'MixinOnAB' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinOnM on M {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:19:7: Error: The type 'MixinOnAM' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinOnAM on A, M {} /* Error */
+// mixin MixinOnAB on A, B {} /* Error */
 //       ^
 //
 import self as self;
@@ -49,29 +36,12 @@
     : super core::Object::•()
     ;
 }
-class ImplementsFinalMixin extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _MixInFinalMixin&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInFinalMixin extends self::_MixInFinalMixin&Object&M {
-  synthetic constructor •() → self::MixInFinalMixin
-    : super self::_MixInFinalMixin&Object&M::•()
-    ;
-}
 abstract class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-abstract class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAB&A&B
     : super core::Object::•()
     ;
 }
-abstract class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/  {
 }
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.outline.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.outline.expect
index a50b7ae..227a690 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.outline.expect
@@ -10,27 +10,14 @@
 // class ImplementsFinalClass implements A {} /* Error */
 //                                       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:11:39: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// class ImplementsFinalMixin implements M {} /* Error */
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:13:28: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// class MixInFinalMixin with M {} /* Error */
-//                            ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:15:7: Error: The type 'MixinOnA' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:11:7: Error: The type 'MixinOnA' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // mixin MixinOnA on A {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:17:7: Error: The type 'MixinOnM' must be 'base', 'final' or 'sealed' because the supertype 'M' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:13:7: Error: The type 'MixinOnAB' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinOnM on M {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:19:7: Error: The type 'MixinOnAM' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinOnAM on A, M {} /* Error */
+// mixin MixinOnAB on A, B {} /* Error */
 //       ^
 //
 import self as self;
@@ -47,28 +34,13 @@
   synthetic constructor •() → self::ImplementsFinalClass
     ;
 }
-class ImplementsFinalMixin extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixin
-    ;
-}
-abstract final class _MixInFinalMixin&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInFinalMixin extends self::_MixInFinalMixin&Object&M {
-  synthetic constructor •() → self::MixInFinalMixin
-    ;
-}
 abstract class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-abstract class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAB&A&B
     ;
 }
-abstract class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -79,5 +51,7 @@
   synthetic constructor •() → mai::A
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+final class B extends core::Object {
+  synthetic constructor •() → mai::B
+    ;
 }
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.transformed.expect b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.transformed.expect
index 8b7e19a..089a4fd 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart.weak.transformed.expect
@@ -10,27 +10,14 @@
 // class ImplementsFinalClass implements A {} /* Error */
 //                                       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:11:39: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// class ImplementsFinalMixin implements M {} /* Error */
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:13:28: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// class MixInFinalMixin with M {} /* Error */
-//                            ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:15:7: Error: The type 'MixinOnA' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:11:7: Error: The type 'MixinOnA' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
 // mixin MixinOnA on A {} /* Error */
 //       ^
 //
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:17:7: Error: The type 'MixinOnM' must be 'base', 'final' or 'sealed' because the supertype 'M' is 'final'.
+// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:13:7: Error: The type 'MixinOnAB' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
 // Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinOnM on M {} /* Error */
-//       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main.dart:19:7: Error: The type 'MixinOnAM' must be 'base', 'final' or 'sealed' because the supertype 'A' is 'final'.
-// Try adding 'base', 'final', or 'sealed' to the type.
-// mixin MixinOnAM on A, M {} /* Error */
+// mixin MixinOnAB on A, B {} /* Error */
 //       ^
 //
 import self as self;
@@ -49,31 +36,14 @@
     : super core::Object::•()
     ;
 }
-class ImplementsFinalMixin extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixin
-    : super core::Object::•()
-    ;
-}
-abstract final class _MixInFinalMixin&Object&M extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInFinalMixin extends self::_MixInFinalMixin&Object&M {
-  synthetic constructor •() → self::MixInFinalMixin
-    : super self::_MixInFinalMixin&Object&M::•()
-    ;
-}
 abstract class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-abstract class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAB&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAB&A&B
     : super core::Object::•()
     ;
 }
-abstract class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract class MixinOnAB extends self::_MixinOnAB&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -85,5 +55,8 @@
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
+final class B extends core::Object {
+  synthetic constructor •() → mai::B
+    : super core::Object::•()
+    ;
 }
diff --git a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main_lib.dart b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main_lib.dart
index 57455af..d513d30 100644
--- a/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main_lib.dart
+++ b/pkg/front_end/testcases/class_modifiers/final/outside_library_no_base_final_sealed/main_lib.dart
@@ -4,4 +4,4 @@
 
 final class A {}
 
-final mixin M {}
\ No newline at end of file
+final class B {}
diff --git a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart
index fac101b..3a7ee2c 100644
--- a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart
+++ b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart
@@ -16,36 +16,10 @@
 
 enum EnumImplementsFinalClassTypedef2 implements ATypeDef2 { x }
 
-final class ImplementsFinalMixinTypeDef implements MTypeDef {}
-
-final class ImplementsFinalMixinTypeDef2 implements MTypeDef2 {}
-
-enum EnumImplementsFinalMixinTypeDef implements MTypeDef { x }
-
-enum EnumImplementsFinalMixinTypeDef2 implements MTypeDef2 { x }
-
-final class MixInFinalMixinTypeDef with MTypeDef {}
-
-final class MixInFinalMixinTypeDef2 with MTypeDef2 {}
-
-enum EnumMixInFinalMixinTypeDef with MTypeDef { x }
-
-enum EnumMixInFinalMixinTypeDef2 with MTypeDef2 { x }
-
 typedef AOutsideTypedef = A;
 
-typedef MOutsideTypedef = M;
-
 final class ExtendsFinalClassTypedefOutside extends AOutsideTypedef {}
 
 final class ImplementsFinalClassTypedefOutside implements AOutsideTypedef {}
 
 enum EnumImplementsFinalClassTypedefOutside implements AOutsideTypedef { x }
-
-final class ImplementsFinalMixinTypeDefOutside implements MOutsideTypedef {}
-
-enum EnumImplementsFinalMixinTypeDefOutside implements MOutsideTypedef { x }
-
-final class MixInFinalMixinTypeDefOutside with MOutsideTypedef {}
-
-enum EnumMixInFinalMixinTypeDefOutside with MOutsideTypedef { x }
diff --git a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.strong.expect b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.strong.expect
index 2203a1a..a404863 100644
--- a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.strong.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.strong.expect
@@ -26,66 +26,18 @@
 // enum EnumImplementsFinalClassTypedef2 implements ATypeDef2 { x }
 //                                                  ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:19:52: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDef implements MTypeDef {}
-//                                                    ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:21:53: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDef2 implements MTypeDef2 {}
-//                                                     ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:23:49: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDef implements MTypeDef { x }
-//                                                 ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:25:50: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDef2 implements MTypeDef2 { x }
-//                                                  ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:27:41: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDef with MTypeDef {}
-//                                         ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:29:42: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDef2 with MTypeDef2 {}
-//                                          ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:31:38: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDef with MTypeDef { x }
-//                                      ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:33:39: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDef2 with MTypeDef2 { x }
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:39:53: Error: The class 'A' can't be extended outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:21:53: Error: The class 'A' can't be extended outside of its library because it's a final class.
 // final class ExtendsFinalClassTypedefOutside extends AOutsideTypedef {}
 //                                                     ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:41:59: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:23:59: Error: The class 'A' can't be implemented outside of its library because it's a final class.
 // final class ImplementsFinalClassTypedefOutside implements AOutsideTypedef {}
 //                                                           ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:43:56: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:25:56: Error: The class 'A' can't be implemented outside of its library because it's a final class.
 // enum EnumImplementsFinalClassTypedefOutside implements AOutsideTypedef { x }
 //                                                        ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:45:59: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDefOutside implements MOutsideTypedef {}
-//                                                           ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:47:56: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDefOutside implements MOutsideTypedef { x }
-//                                                        ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:49:48: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDefOutside with MOutsideTypedef {}
-//                                                ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:51:45: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDefOutside with MOutsideTypedef { x }
-//                                             ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -93,7 +45,6 @@
 import "org-dartlang-testcase:///main_lib.dart";
 
 typedef AOutsideTypedef = mai::A;
-typedef MOutsideTypedef = mai::M;
 final class ExtendsFinalClassTypedef extends mai::A {
   synthetic constructor •() → self::ExtendsFinalClassTypedef
     : super mai::A::•()
@@ -132,82 +83,6 @@
   method _enumToString() → core::String
     return "EnumImplementsFinalClassTypedef2.${this.{core::_Enum::_name}{core::String}}";
 }
-final class ImplementsFinalMixinTypeDef extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDef
-    : super core::Object::•()
-    ;
-}
-final class ImplementsFinalMixinTypeDef2 extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDef2
-    : super core::Object::•()
-    ;
-}
-class EnumImplementsFinalMixinTypeDef extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDef> values = #C8;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDef x = #C7;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDef
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-class EnumImplementsFinalMixinTypeDef2 extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDef2> values = #C10;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDef2 x = #C9;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDef2
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _MixInFinalMixinTypeDef&Object&MTypeDef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDef&Object&MTypeDef
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDef extends self::_MixInFinalMixinTypeDef&Object&MTypeDef {
-  synthetic constructor •() → self::MixInFinalMixinTypeDef
-    : super self::_MixInFinalMixinTypeDef&Object&MTypeDef::•()
-    ;
-}
-abstract final class _MixInFinalMixinTypeDef2&Object&MTypeDef2 = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDef2&Object&MTypeDef2
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDef2 extends self::_MixInFinalMixinTypeDef2&Object&MTypeDef2 {
-  synthetic constructor •() → self::MixInFinalMixinTypeDef2
-    : super self::_MixInFinalMixinTypeDef2&Object&MTypeDef2::•()
-    ;
-}
-abstract final class _EnumMixInFinalMixinTypeDef&_Enum&MTypeDef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDef extends self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDef> values = #C12;
-  enum-element static const field self::EnumMixInFinalMixinTypeDef x = #C11;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDef
-    : super self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2 = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDef2 extends self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2 /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDef2> values = #C14;
-  enum-element static const field self::EnumMixInFinalMixinTypeDef2 x = #C13;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDef2
-    : super self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
 final class ExtendsFinalClassTypedefOutside extends mai::A {
   synthetic constructor •() → self::ExtendsFinalClassTypedefOutside
     : super mai::A::•()
@@ -219,52 +94,14 @@
     ;
 }
 class EnumImplementsFinalClassTypedefOutside extends core::_Enum implements mai::A /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalClassTypedefOutside> values = #C16;
-  enum-element static const field self::EnumImplementsFinalClassTypedefOutside x = #C15;
+  static const field core::List<self::EnumImplementsFinalClassTypedefOutside> values = #C8;
+  enum-element static const field self::EnumImplementsFinalClassTypedefOutside x = #C7;
   const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalClassTypedefOutside
     : super core::_Enum::•(#index, #name)
     ;
   method _enumToString() → core::String
     return "EnumImplementsFinalClassTypedefOutside.${this.{core::_Enum::_name}{core::String}}";
 }
-final class ImplementsFinalMixinTypeDefOutside extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDefOutside
-    : super core::Object::•()
-    ;
-}
-class EnumImplementsFinalMixinTypeDefOutside extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDefOutside> values = #C18;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDefOutside x = #C17;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDefOutside
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDefOutside extends self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef {
-  synthetic constructor •() → self::MixInFinalMixinTypeDefOutside
-    : super self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef::•()
-    ;
-}
-abstract final class _EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDefOutside extends self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDefOutside> values = #C20;
-  enum-element static const field self::EnumMixInFinalMixinTypeDefOutside x = #C19;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDefOutside
-    : super self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
 
 library /*isNonNullableByDefault*/;
 import self as mai;
@@ -272,15 +109,11 @@
 
 typedef ATypeDef = mai::A;
 typedef ATypeDef2 = mai::A;
-typedef MTypeDef = mai::M;
-typedef MTypeDef2 = mai::M;
 final class A extends core::Object {
   synthetic constructor •() → mai::A
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
-}
 
 constants  {
   #C1 = 0
@@ -289,20 +122,8 @@
   #C4 = <self::EnumImplementsFinalClassTypedef>[#C3]
   #C5 = self::EnumImplementsFinalClassTypedef2 {index:#C1, _name:#C2}
   #C6 = <self::EnumImplementsFinalClassTypedef2>[#C5]
-  #C7 = self::EnumImplementsFinalMixinTypeDef {index:#C1, _name:#C2}
-  #C8 = <self::EnumImplementsFinalMixinTypeDef>[#C7]
-  #C9 = self::EnumImplementsFinalMixinTypeDef2 {index:#C1, _name:#C2}
-  #C10 = <self::EnumImplementsFinalMixinTypeDef2>[#C9]
-  #C11 = self::EnumMixInFinalMixinTypeDef {index:#C1, _name:#C2}
-  #C12 = <self::EnumMixInFinalMixinTypeDef>[#C11]
-  #C13 = self::EnumMixInFinalMixinTypeDef2 {index:#C1, _name:#C2}
-  #C14 = <self::EnumMixInFinalMixinTypeDef2>[#C13]
-  #C15 = self::EnumImplementsFinalClassTypedefOutside {index:#C1, _name:#C2}
-  #C16 = <self::EnumImplementsFinalClassTypedefOutside>[#C15]
-  #C17 = self::EnumImplementsFinalMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C18 = <self::EnumImplementsFinalMixinTypeDefOutside>[#C17]
-  #C19 = self::EnumMixInFinalMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C20 = <self::EnumMixInFinalMixinTypeDefOutside>[#C19]
+  #C7 = self::EnumImplementsFinalClassTypedefOutside {index:#C1, _name:#C2}
+  #C8 = <self::EnumImplementsFinalClassTypedefOutside>[#C7]
 }
 
 
@@ -312,13 +133,4 @@
 - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
 - EnumImplementsFinalClassTypedef2. (from org-dartlang-testcase:///main.dart:17:6)
-- EnumImplementsFinalMixinTypeDef. (from org-dartlang-testcase:///main.dart:23:6)
-- EnumImplementsFinalMixinTypeDef2. (from org-dartlang-testcase:///main.dart:25:6)
-- EnumMixInFinalMixinTypeDef. (from org-dartlang-testcase:///main.dart:31:6)
-- _EnumMixInFinalMixinTypeDef&_Enum&MTypeDef. (from org-dartlang-testcase:///main.dart:31:6)
-- EnumMixInFinalMixinTypeDef2. (from org-dartlang-testcase:///main.dart:33:6)
-- _EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2. (from org-dartlang-testcase:///main.dart:33:6)
-- EnumImplementsFinalClassTypedefOutside. (from org-dartlang-testcase:///main.dart:43:6)
-- EnumImplementsFinalMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:47:6)
-- EnumMixInFinalMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:51:6)
-- _EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef. (from org-dartlang-testcase:///main.dart:51:6)
+- EnumImplementsFinalClassTypedefOutside. (from org-dartlang-testcase:///main.dart:25:6)
diff --git a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.strong.transformed.expect b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.strong.transformed.expect
index 5074d4b..a404863 100644
--- a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.strong.transformed.expect
@@ -26,66 +26,18 @@
 // enum EnumImplementsFinalClassTypedef2 implements ATypeDef2 { x }
 //                                                  ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:19:52: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDef implements MTypeDef {}
-//                                                    ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:21:53: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDef2 implements MTypeDef2 {}
-//                                                     ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:23:49: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDef implements MTypeDef { x }
-//                                                 ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:25:50: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDef2 implements MTypeDef2 { x }
-//                                                  ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:27:41: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDef with MTypeDef {}
-//                                         ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:29:42: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDef2 with MTypeDef2 {}
-//                                          ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:31:38: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDef with MTypeDef { x }
-//                                      ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:33:39: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDef2 with MTypeDef2 { x }
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:39:53: Error: The class 'A' can't be extended outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:21:53: Error: The class 'A' can't be extended outside of its library because it's a final class.
 // final class ExtendsFinalClassTypedefOutside extends AOutsideTypedef {}
 //                                                     ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:41:59: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:23:59: Error: The class 'A' can't be implemented outside of its library because it's a final class.
 // final class ImplementsFinalClassTypedefOutside implements AOutsideTypedef {}
 //                                                           ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:43:56: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:25:56: Error: The class 'A' can't be implemented outside of its library because it's a final class.
 // enum EnumImplementsFinalClassTypedefOutside implements AOutsideTypedef { x }
 //                                                        ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:45:59: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDefOutside implements MOutsideTypedef {}
-//                                                           ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:47:56: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDefOutside implements MOutsideTypedef { x }
-//                                                        ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:49:48: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDefOutside with MOutsideTypedef {}
-//                                                ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:51:45: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDefOutside with MOutsideTypedef { x }
-//                                             ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -93,7 +45,6 @@
 import "org-dartlang-testcase:///main_lib.dart";
 
 typedef AOutsideTypedef = mai::A;
-typedef MOutsideTypedef = mai::M;
 final class ExtendsFinalClassTypedef extends mai::A {
   synthetic constructor •() → self::ExtendsFinalClassTypedef
     : super mai::A::•()
@@ -132,82 +83,6 @@
   method _enumToString() → core::String
     return "EnumImplementsFinalClassTypedef2.${this.{core::_Enum::_name}{core::String}}";
 }
-final class ImplementsFinalMixinTypeDef extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDef
-    : super core::Object::•()
-    ;
-}
-final class ImplementsFinalMixinTypeDef2 extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDef2
-    : super core::Object::•()
-    ;
-}
-class EnumImplementsFinalMixinTypeDef extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDef> values = #C8;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDef x = #C7;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDef
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-class EnumImplementsFinalMixinTypeDef2 extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDef2> values = #C10;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDef2 x = #C9;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDef2
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _MixInFinalMixinTypeDef&Object&MTypeDef extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDef&Object&MTypeDef
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDef extends self::_MixInFinalMixinTypeDef&Object&MTypeDef {
-  synthetic constructor •() → self::MixInFinalMixinTypeDef
-    : super self::_MixInFinalMixinTypeDef&Object&MTypeDef::•()
-    ;
-}
-abstract final class _MixInFinalMixinTypeDef2&Object&MTypeDef2 extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDef2&Object&MTypeDef2
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDef2 extends self::_MixInFinalMixinTypeDef2&Object&MTypeDef2 {
-  synthetic constructor •() → self::MixInFinalMixinTypeDef2
-    : super self::_MixInFinalMixinTypeDef2&Object&MTypeDef2::•()
-    ;
-}
-abstract final class _EnumMixInFinalMixinTypeDef&_Enum&MTypeDef extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDef extends self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDef> values = #C12;
-  enum-element static const field self::EnumMixInFinalMixinTypeDef x = #C11;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDef
-    : super self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2 extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDef2 extends self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2 /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDef2> values = #C14;
-  enum-element static const field self::EnumMixInFinalMixinTypeDef2 x = #C13;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDef2
-    : super self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
 final class ExtendsFinalClassTypedefOutside extends mai::A {
   synthetic constructor •() → self::ExtendsFinalClassTypedefOutside
     : super mai::A::•()
@@ -219,52 +94,14 @@
     ;
 }
 class EnumImplementsFinalClassTypedefOutside extends core::_Enum implements mai::A /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalClassTypedefOutside> values = #C16;
-  enum-element static const field self::EnumImplementsFinalClassTypedefOutside x = #C15;
+  static const field core::List<self::EnumImplementsFinalClassTypedefOutside> values = #C8;
+  enum-element static const field self::EnumImplementsFinalClassTypedefOutside x = #C7;
   const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalClassTypedefOutside
     : super core::_Enum::•(#index, #name)
     ;
   method _enumToString() → core::String
     return "EnumImplementsFinalClassTypedefOutside.${this.{core::_Enum::_name}{core::String}}";
 }
-final class ImplementsFinalMixinTypeDefOutside extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDefOutside
-    : super core::Object::•()
-    ;
-}
-class EnumImplementsFinalMixinTypeDefOutside extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDefOutside> values = #C18;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDefOutside x = #C17;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDefOutside
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDefOutside extends self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef {
-  synthetic constructor •() → self::MixInFinalMixinTypeDefOutside
-    : super self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef::•()
-    ;
-}
-abstract final class _EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDefOutside extends self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDefOutside> values = #C20;
-  enum-element static const field self::EnumMixInFinalMixinTypeDefOutside x = #C19;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDefOutside
-    : super self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
 
 library /*isNonNullableByDefault*/;
 import self as mai;
@@ -272,15 +109,11 @@
 
 typedef ATypeDef = mai::A;
 typedef ATypeDef2 = mai::A;
-typedef MTypeDef = mai::M;
-typedef MTypeDef2 = mai::M;
 final class A extends core::Object {
   synthetic constructor •() → mai::A
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
-}
 
 constants  {
   #C1 = 0
@@ -289,20 +122,8 @@
   #C4 = <self::EnumImplementsFinalClassTypedef>[#C3]
   #C5 = self::EnumImplementsFinalClassTypedef2 {index:#C1, _name:#C2}
   #C6 = <self::EnumImplementsFinalClassTypedef2>[#C5]
-  #C7 = self::EnumImplementsFinalMixinTypeDef {index:#C1, _name:#C2}
-  #C8 = <self::EnumImplementsFinalMixinTypeDef>[#C7]
-  #C9 = self::EnumImplementsFinalMixinTypeDef2 {index:#C1, _name:#C2}
-  #C10 = <self::EnumImplementsFinalMixinTypeDef2>[#C9]
-  #C11 = self::EnumMixInFinalMixinTypeDef {index:#C1, _name:#C2}
-  #C12 = <self::EnumMixInFinalMixinTypeDef>[#C11]
-  #C13 = self::EnumMixInFinalMixinTypeDef2 {index:#C1, _name:#C2}
-  #C14 = <self::EnumMixInFinalMixinTypeDef2>[#C13]
-  #C15 = self::EnumImplementsFinalClassTypedefOutside {index:#C1, _name:#C2}
-  #C16 = <self::EnumImplementsFinalClassTypedefOutside>[#C15]
-  #C17 = self::EnumImplementsFinalMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C18 = <self::EnumImplementsFinalMixinTypeDefOutside>[#C17]
-  #C19 = self::EnumMixInFinalMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C20 = <self::EnumMixInFinalMixinTypeDefOutside>[#C19]
+  #C7 = self::EnumImplementsFinalClassTypedefOutside {index:#C1, _name:#C2}
+  #C8 = <self::EnumImplementsFinalClassTypedefOutside>[#C7]
 }
 
 
@@ -312,13 +133,4 @@
 - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
 - EnumImplementsFinalClassTypedef2. (from org-dartlang-testcase:///main.dart:17:6)
-- EnumImplementsFinalMixinTypeDef. (from org-dartlang-testcase:///main.dart:23:6)
-- EnumImplementsFinalMixinTypeDef2. (from org-dartlang-testcase:///main.dart:25:6)
-- EnumMixInFinalMixinTypeDef. (from org-dartlang-testcase:///main.dart:31:6)
-- _EnumMixInFinalMixinTypeDef&_Enum&MTypeDef. (from org-dartlang-testcase:///main.dart:31:6)
-- EnumMixInFinalMixinTypeDef2. (from org-dartlang-testcase:///main.dart:33:6)
-- _EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2. (from org-dartlang-testcase:///main.dart:33:6)
-- EnumImplementsFinalClassTypedefOutside. (from org-dartlang-testcase:///main.dart:43:6)
-- EnumImplementsFinalMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:47:6)
-- EnumMixInFinalMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:51:6)
-- _EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef. (from org-dartlang-testcase:///main.dart:51:6)
+- EnumImplementsFinalClassTypedefOutside. (from org-dartlang-testcase:///main.dart:25:6)
diff --git a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.textual_outline.expect b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.textual_outline.expect
index fc591ee..142e108 100644
--- a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.textual_outline.expect
@@ -12,35 +12,10 @@
 
 enum EnumImplementsFinalClassTypedef2 implements ATypeDef2 { x }
 
-final class ImplementsFinalMixinTypeDef implements MTypeDef {}
-
-final class ImplementsFinalMixinTypeDef2 implements MTypeDef2 {}
-
-enum EnumImplementsFinalMixinTypeDef implements MTypeDef { x }
-
-enum EnumImplementsFinalMixinTypeDef2 implements MTypeDef2 { x }
-
-final class MixInFinalMixinTypeDef with MTypeDef {}
-
-final class MixInFinalMixinTypeDef2 with MTypeDef2 {}
-
-enum EnumMixInFinalMixinTypeDef with MTypeDef { x }
-
-enum EnumMixInFinalMixinTypeDef2 with MTypeDef2 { x }
-
 typedef AOutsideTypedef = A;
-typedef MOutsideTypedef = M;
 
 final class ExtendsFinalClassTypedefOutside extends AOutsideTypedef {}
 
 final class ImplementsFinalClassTypedefOutside implements AOutsideTypedef {}
 
 enum EnumImplementsFinalClassTypedefOutside implements AOutsideTypedef { x }
-
-final class ImplementsFinalMixinTypeDefOutside implements MOutsideTypedef {}
-
-enum EnumImplementsFinalMixinTypeDefOutside implements MOutsideTypedef { x }
-
-final class MixInFinalMixinTypeDefOutside with MOutsideTypedef {}
-
-enum EnumMixInFinalMixinTypeDefOutside with MOutsideTypedef { x }
diff --git a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.textual_outline_modelled.expect
index f038c63..bad36bd 100644
--- a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.textual_outline_modelled.expect
@@ -6,18 +6,6 @@
 
 enum EnumImplementsFinalClassTypedefOutside implements AOutsideTypedef { x }
 
-enum EnumImplementsFinalMixinTypeDef implements MTypeDef { x }
-
-enum EnumImplementsFinalMixinTypeDef2 implements MTypeDef2 { x }
-
-enum EnumImplementsFinalMixinTypeDefOutside implements MOutsideTypedef { x }
-
-enum EnumMixInFinalMixinTypeDef with MTypeDef { x }
-
-enum EnumMixInFinalMixinTypeDef2 with MTypeDef2 { x }
-
-enum EnumMixInFinalMixinTypeDefOutside with MOutsideTypedef { x }
-
 final class ExtendsFinalClassTypedef extends ATypeDef {}
 
 final class ExtendsFinalClassTypedef2 extends ATypeDef2 {}
@@ -30,17 +18,4 @@
 
 final class ImplementsFinalClassTypedefOutside implements AOutsideTypedef {}
 
-final class ImplementsFinalMixinTypeDef implements MTypeDef {}
-
-final class ImplementsFinalMixinTypeDef2 implements MTypeDef2 {}
-
-final class ImplementsFinalMixinTypeDefOutside implements MOutsideTypedef {}
-
-final class MixInFinalMixinTypeDef with MTypeDef {}
-
-final class MixInFinalMixinTypeDef2 with MTypeDef2 {}
-
-final class MixInFinalMixinTypeDefOutside with MOutsideTypedef {}
-
 typedef AOutsideTypedef = A;
-typedef MOutsideTypedef = M;
diff --git a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.expect b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.expect
index ceeabc4..b2c487c 100644
--- a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.expect
@@ -26,66 +26,18 @@
 // enum EnumImplementsFinalClassTypedef2 implements ATypeDef2 { x }
 //                                                  ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:19:52: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDef implements MTypeDef {}
-//                                                    ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:21:53: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDef2 implements MTypeDef2 {}
-//                                                     ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:23:49: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDef implements MTypeDef { x }
-//                                                 ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:25:50: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDef2 implements MTypeDef2 { x }
-//                                                  ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:27:41: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDef with MTypeDef {}
-//                                         ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:29:42: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDef2 with MTypeDef2 {}
-//                                          ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:31:38: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDef with MTypeDef { x }
-//                                      ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:33:39: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDef2 with MTypeDef2 { x }
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:39:53: Error: The class 'A' can't be extended outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:21:53: Error: The class 'A' can't be extended outside of its library because it's a final class.
 // final class ExtendsFinalClassTypedefOutside extends AOutsideTypedef {}
 //                                                     ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:41:59: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:23:59: Error: The class 'A' can't be implemented outside of its library because it's a final class.
 // final class ImplementsFinalClassTypedefOutside implements AOutsideTypedef {}
 //                                                           ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:43:56: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:25:56: Error: The class 'A' can't be implemented outside of its library because it's a final class.
 // enum EnumImplementsFinalClassTypedefOutside implements AOutsideTypedef { x }
 //                                                        ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:45:59: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDefOutside implements MOutsideTypedef {}
-//                                                           ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:47:56: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDefOutside implements MOutsideTypedef { x }
-//                                                        ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:49:48: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDefOutside with MOutsideTypedef {}
-//                                                ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:51:45: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDefOutside with MOutsideTypedef { x }
-//                                             ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -93,7 +45,6 @@
 import "org-dartlang-testcase:///main_lib.dart";
 
 typedef AOutsideTypedef = mai::A;
-typedef MOutsideTypedef = mai::M;
 final class ExtendsFinalClassTypedef extends mai::A {
   synthetic constructor •() → self::ExtendsFinalClassTypedef
     : super mai::A::•()
@@ -132,82 +83,6 @@
   method _enumToString() → core::String
     return "EnumImplementsFinalClassTypedef2.${this.{core::_Enum::_name}{core::String}}";
 }
-final class ImplementsFinalMixinTypeDef extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDef
-    : super core::Object::•()
-    ;
-}
-final class ImplementsFinalMixinTypeDef2 extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDef2
-    : super core::Object::•()
-    ;
-}
-class EnumImplementsFinalMixinTypeDef extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDef> values = #C8;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDef x = #C7;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDef
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-class EnumImplementsFinalMixinTypeDef2 extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDef2> values = #C10;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDef2 x = #C9;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDef2
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _MixInFinalMixinTypeDef&Object&MTypeDef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDef&Object&MTypeDef
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDef extends self::_MixInFinalMixinTypeDef&Object&MTypeDef {
-  synthetic constructor •() → self::MixInFinalMixinTypeDef
-    : super self::_MixInFinalMixinTypeDef&Object&MTypeDef::•()
-    ;
-}
-abstract final class _MixInFinalMixinTypeDef2&Object&MTypeDef2 = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDef2&Object&MTypeDef2
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDef2 extends self::_MixInFinalMixinTypeDef2&Object&MTypeDef2 {
-  synthetic constructor •() → self::MixInFinalMixinTypeDef2
-    : super self::_MixInFinalMixinTypeDef2&Object&MTypeDef2::•()
-    ;
-}
-abstract final class _EnumMixInFinalMixinTypeDef&_Enum&MTypeDef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDef extends self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDef> values = #C12;
-  enum-element static const field self::EnumMixInFinalMixinTypeDef x = #C11;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDef
-    : super self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2 = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDef2 extends self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2 /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDef2> values = #C14;
-  enum-element static const field self::EnumMixInFinalMixinTypeDef2 x = #C13;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDef2
-    : super self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
 final class ExtendsFinalClassTypedefOutside extends mai::A {
   synthetic constructor •() → self::ExtendsFinalClassTypedefOutside
     : super mai::A::•()
@@ -219,52 +94,14 @@
     ;
 }
 class EnumImplementsFinalClassTypedefOutside extends core::_Enum implements mai::A /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalClassTypedefOutside> values = #C16;
-  enum-element static const field self::EnumImplementsFinalClassTypedefOutside x = #C15;
+  static const field core::List<self::EnumImplementsFinalClassTypedefOutside> values = #C8;
+  enum-element static const field self::EnumImplementsFinalClassTypedefOutside x = #C7;
   const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalClassTypedefOutside
     : super core::_Enum::•(#index, #name)
     ;
   method _enumToString() → core::String
     return "EnumImplementsFinalClassTypedefOutside.${this.{core::_Enum::_name}{core::String}}";
 }
-final class ImplementsFinalMixinTypeDefOutside extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDefOutside
-    : super core::Object::•()
-    ;
-}
-class EnumImplementsFinalMixinTypeDefOutside extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDefOutside> values = #C18;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDefOutside x = #C17;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDefOutside
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDefOutside extends self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef {
-  synthetic constructor •() → self::MixInFinalMixinTypeDefOutside
-    : super self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef::•()
-    ;
-}
-abstract final class _EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDefOutside extends self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDefOutside> values = #C20;
-  enum-element static const field self::EnumMixInFinalMixinTypeDefOutside x = #C19;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDefOutside
-    : super self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
 
 library /*isNonNullableByDefault*/;
 import self as mai;
@@ -272,15 +109,11 @@
 
 typedef ATypeDef = mai::A;
 typedef ATypeDef2 = mai::A;
-typedef MTypeDef = mai::M;
-typedef MTypeDef2 = mai::M;
 final class A extends core::Object {
   synthetic constructor •() → mai::A
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
-}
 
 constants  {
   #C1 = 0
@@ -289,20 +122,8 @@
   #C4 = <self::EnumImplementsFinalClassTypedef*>[#C3]
   #C5 = self::EnumImplementsFinalClassTypedef2 {index:#C1, _name:#C2}
   #C6 = <self::EnumImplementsFinalClassTypedef2*>[#C5]
-  #C7 = self::EnumImplementsFinalMixinTypeDef {index:#C1, _name:#C2}
-  #C8 = <self::EnumImplementsFinalMixinTypeDef*>[#C7]
-  #C9 = self::EnumImplementsFinalMixinTypeDef2 {index:#C1, _name:#C2}
-  #C10 = <self::EnumImplementsFinalMixinTypeDef2*>[#C9]
-  #C11 = self::EnumMixInFinalMixinTypeDef {index:#C1, _name:#C2}
-  #C12 = <self::EnumMixInFinalMixinTypeDef*>[#C11]
-  #C13 = self::EnumMixInFinalMixinTypeDef2 {index:#C1, _name:#C2}
-  #C14 = <self::EnumMixInFinalMixinTypeDef2*>[#C13]
-  #C15 = self::EnumImplementsFinalClassTypedefOutside {index:#C1, _name:#C2}
-  #C16 = <self::EnumImplementsFinalClassTypedefOutside*>[#C15]
-  #C17 = self::EnumImplementsFinalMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C18 = <self::EnumImplementsFinalMixinTypeDefOutside*>[#C17]
-  #C19 = self::EnumMixInFinalMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C20 = <self::EnumMixInFinalMixinTypeDefOutside*>[#C19]
+  #C7 = self::EnumImplementsFinalClassTypedefOutside {index:#C1, _name:#C2}
+  #C8 = <self::EnumImplementsFinalClassTypedefOutside*>[#C7]
 }
 
 
@@ -312,13 +133,4 @@
 - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
 - EnumImplementsFinalClassTypedef2. (from org-dartlang-testcase:///main.dart:17:6)
-- EnumImplementsFinalMixinTypeDef. (from org-dartlang-testcase:///main.dart:23:6)
-- EnumImplementsFinalMixinTypeDef2. (from org-dartlang-testcase:///main.dart:25:6)
-- EnumMixInFinalMixinTypeDef. (from org-dartlang-testcase:///main.dart:31:6)
-- _EnumMixInFinalMixinTypeDef&_Enum&MTypeDef. (from org-dartlang-testcase:///main.dart:31:6)
-- EnumMixInFinalMixinTypeDef2. (from org-dartlang-testcase:///main.dart:33:6)
-- _EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2. (from org-dartlang-testcase:///main.dart:33:6)
-- EnumImplementsFinalClassTypedefOutside. (from org-dartlang-testcase:///main.dart:43:6)
-- EnumImplementsFinalMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:47:6)
-- EnumMixInFinalMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:51:6)
-- _EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef. (from org-dartlang-testcase:///main.dart:51:6)
+- EnumImplementsFinalClassTypedefOutside. (from org-dartlang-testcase:///main.dart:25:6)
diff --git a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.modular.expect b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.modular.expect
index f9cf7c3..b54d4c4 100644
--- a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.modular.expect
@@ -26,66 +26,18 @@
 // enum EnumImplementsFinalClassTypedef2 implements ATypeDef2 { x }
 //                                                  ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:19:52: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDef implements MTypeDef {}
-//                                                    ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:21:53: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDef2 implements MTypeDef2 {}
-//                                                     ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:23:49: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDef implements MTypeDef { x }
-//                                                 ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:25:50: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDef2 implements MTypeDef2 { x }
-//                                                  ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:27:41: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDef with MTypeDef {}
-//                                         ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:29:42: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDef2 with MTypeDef2 {}
-//                                          ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:31:38: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDef with MTypeDef { x }
-//                                      ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:33:39: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDef2 with MTypeDef2 { x }
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:39:53: Error: The class 'A' can't be extended outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:21:53: Error: The class 'A' can't be extended outside of its library because it's a final class.
 // final class ExtendsFinalClassTypedefOutside extends AOutsideTypedef {}
 //                                                     ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:41:59: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:23:59: Error: The class 'A' can't be implemented outside of its library because it's a final class.
 // final class ImplementsFinalClassTypedefOutside implements AOutsideTypedef {}
 //                                                           ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:43:56: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:25:56: Error: The class 'A' can't be implemented outside of its library because it's a final class.
 // enum EnumImplementsFinalClassTypedefOutside implements AOutsideTypedef { x }
 //                                                        ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:45:59: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDefOutside implements MOutsideTypedef {}
-//                                                           ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:47:56: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDefOutside implements MOutsideTypedef { x }
-//                                                        ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:49:48: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDefOutside with MOutsideTypedef {}
-//                                                ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:51:45: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDefOutside with MOutsideTypedef { x }
-//                                             ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -93,7 +45,6 @@
 import "org-dartlang-testcase:///main_lib.dart";
 
 typedef AOutsideTypedef = mai::A;
-typedef MOutsideTypedef = mai::M;
 final class ExtendsFinalClassTypedef extends mai::A {
   synthetic constructor •() → self::ExtendsFinalClassTypedef
     : super mai::A::•()
@@ -132,82 +83,6 @@
   method _enumToString() → core::String
     return "EnumImplementsFinalClassTypedef2.${this.{core::_Enum::_name}{core::String}}";
 }
-final class ImplementsFinalMixinTypeDef extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDef
-    : super core::Object::•()
-    ;
-}
-final class ImplementsFinalMixinTypeDef2 extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDef2
-    : super core::Object::•()
-    ;
-}
-class EnumImplementsFinalMixinTypeDef extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDef> values = #C8;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDef x = #C7;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDef
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-class EnumImplementsFinalMixinTypeDef2 extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDef2> values = #C10;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDef2 x = #C9;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDef2
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _MixInFinalMixinTypeDef&Object&MTypeDef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDef&Object&MTypeDef
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDef extends self::_MixInFinalMixinTypeDef&Object&MTypeDef {
-  synthetic constructor •() → self::MixInFinalMixinTypeDef
-    : super self::_MixInFinalMixinTypeDef&Object&MTypeDef::•()
-    ;
-}
-abstract final class _MixInFinalMixinTypeDef2&Object&MTypeDef2 = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDef2&Object&MTypeDef2
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDef2 extends self::_MixInFinalMixinTypeDef2&Object&MTypeDef2 {
-  synthetic constructor •() → self::MixInFinalMixinTypeDef2
-    : super self::_MixInFinalMixinTypeDef2&Object&MTypeDef2::•()
-    ;
-}
-abstract final class _EnumMixInFinalMixinTypeDef&_Enum&MTypeDef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDef extends self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDef> values = #C12;
-  enum-element static const field self::EnumMixInFinalMixinTypeDef x = #C11;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDef
-    : super self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2 = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDef2 extends self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2 /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDef2> values = #C14;
-  enum-element static const field self::EnumMixInFinalMixinTypeDef2 x = #C13;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDef2
-    : super self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
 final class ExtendsFinalClassTypedefOutside extends mai::A {
   synthetic constructor •() → self::ExtendsFinalClassTypedefOutside
     : super mai::A::•()
@@ -219,52 +94,14 @@
     ;
 }
 class EnumImplementsFinalClassTypedefOutside extends core::_Enum implements mai::A /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalClassTypedefOutside> values = #C16;
-  enum-element static const field self::EnumImplementsFinalClassTypedefOutside x = #C15;
+  static const field core::List<self::EnumImplementsFinalClassTypedefOutside> values = #C8;
+  enum-element static const field self::EnumImplementsFinalClassTypedefOutside x = #C7;
   const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalClassTypedefOutside
     : super core::_Enum::•(#index, #name)
     ;
   method _enumToString() → core::String
     return "EnumImplementsFinalClassTypedefOutside.${this.{core::_Enum::_name}{core::String}}";
 }
-final class ImplementsFinalMixinTypeDefOutside extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDefOutside
-    : super core::Object::•()
-    ;
-}
-class EnumImplementsFinalMixinTypeDefOutside extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDefOutside> values = #C18;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDefOutside x = #C17;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDefOutside
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDefOutside extends self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef {
-  synthetic constructor •() → self::MixInFinalMixinTypeDefOutside
-    : super self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef::•()
-    ;
-}
-abstract final class _EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDefOutside extends self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDefOutside> values = #C20;
-  enum-element static const field self::EnumMixInFinalMixinTypeDefOutside x = #C19;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDefOutside
-    : super self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
 
 constants  {
   #C1 = 0
@@ -273,20 +110,8 @@
   #C4 = <self::EnumImplementsFinalClassTypedef*>[#C3]
   #C5 = self::EnumImplementsFinalClassTypedef2 {index:#C1, _name:#C2}
   #C6 = <self::EnumImplementsFinalClassTypedef2*>[#C5]
-  #C7 = self::EnumImplementsFinalMixinTypeDef {index:#C1, _name:#C2}
-  #C8 = <self::EnumImplementsFinalMixinTypeDef*>[#C7]
-  #C9 = self::EnumImplementsFinalMixinTypeDef2 {index:#C1, _name:#C2}
-  #C10 = <self::EnumImplementsFinalMixinTypeDef2*>[#C9]
-  #C11 = self::EnumMixInFinalMixinTypeDef {index:#C1, _name:#C2}
-  #C12 = <self::EnumMixInFinalMixinTypeDef*>[#C11]
-  #C13 = self::EnumMixInFinalMixinTypeDef2 {index:#C1, _name:#C2}
-  #C14 = <self::EnumMixInFinalMixinTypeDef2*>[#C13]
-  #C15 = self::EnumImplementsFinalClassTypedefOutside {index:#C1, _name:#C2}
-  #C16 = <self::EnumImplementsFinalClassTypedefOutside*>[#C15]
-  #C17 = self::EnumImplementsFinalMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C18 = <self::EnumImplementsFinalMixinTypeDefOutside*>[#C17]
-  #C19 = self::EnumMixInFinalMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C20 = <self::EnumMixInFinalMixinTypeDefOutside*>[#C19]
+  #C7 = self::EnumImplementsFinalClassTypedefOutside {index:#C1, _name:#C2}
+  #C8 = <self::EnumImplementsFinalClassTypedefOutside*>[#C7]
 }
 
 
@@ -296,13 +121,4 @@
 - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
 - EnumImplementsFinalClassTypedef2. (from org-dartlang-testcase:///main.dart:17:6)
-- EnumImplementsFinalMixinTypeDef. (from org-dartlang-testcase:///main.dart:23:6)
-- EnumImplementsFinalMixinTypeDef2. (from org-dartlang-testcase:///main.dart:25:6)
-- EnumMixInFinalMixinTypeDef. (from org-dartlang-testcase:///main.dart:31:6)
-- _EnumMixInFinalMixinTypeDef&_Enum&MTypeDef. (from org-dartlang-testcase:///main.dart:31:6)
-- EnumMixInFinalMixinTypeDef2. (from org-dartlang-testcase:///main.dart:33:6)
-- _EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2. (from org-dartlang-testcase:///main.dart:33:6)
-- EnumImplementsFinalClassTypedefOutside. (from org-dartlang-testcase:///main.dart:43:6)
-- EnumImplementsFinalMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:47:6)
-- EnumMixInFinalMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:51:6)
-- _EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef. (from org-dartlang-testcase:///main.dart:51:6)
+- EnumImplementsFinalClassTypedefOutside. (from org-dartlang-testcase:///main.dart:25:6)
diff --git a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.outline.expect b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.outline.expect
index 735186d..4b985c2 100644
--- a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.outline.expect
@@ -26,66 +26,18 @@
 // enum EnumImplementsFinalClassTypedef2 implements ATypeDef2 { x }
 //                                                  ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:19:52: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDef implements MTypeDef {}
-//                                                    ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:21:53: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDef2 implements MTypeDef2 {}
-//                                                     ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:23:49: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDef implements MTypeDef { x }
-//                                                 ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:25:50: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDef2 implements MTypeDef2 { x }
-//                                                  ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:27:41: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDef with MTypeDef {}
-//                                         ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:29:42: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDef2 with MTypeDef2 {}
-//                                          ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:31:38: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDef with MTypeDef { x }
-//                                      ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:33:39: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDef2 with MTypeDef2 { x }
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:39:53: Error: The class 'A' can't be extended outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:21:53: Error: The class 'A' can't be extended outside of its library because it's a final class.
 // final class ExtendsFinalClassTypedefOutside extends AOutsideTypedef {}
 //                                                     ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:41:59: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:23:59: Error: The class 'A' can't be implemented outside of its library because it's a final class.
 // final class ImplementsFinalClassTypedefOutside implements AOutsideTypedef {}
 //                                                           ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:43:56: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:25:56: Error: The class 'A' can't be implemented outside of its library because it's a final class.
 // enum EnumImplementsFinalClassTypedefOutside implements AOutsideTypedef { x }
 //                                                        ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:45:59: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDefOutside implements MOutsideTypedef {}
-//                                                           ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:47:56: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDefOutside implements MOutsideTypedef { x }
-//                                                        ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:49:48: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDefOutside with MOutsideTypedef {}
-//                                                ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:51:45: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDefOutside with MOutsideTypedef { x }
-//                                             ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -93,7 +45,6 @@
 import "org-dartlang-testcase:///main_lib.dart";
 
 typedef AOutsideTypedef = mai::A;
-typedef MOutsideTypedef = mai::M;
 final class ExtendsFinalClassTypedef extends mai::A {
   synthetic constructor •() → self::ExtendsFinalClassTypedef
     ;
@@ -128,76 +79,6 @@
   method _enumToString() → core::String
     return "EnumImplementsFinalClassTypedef2.${this.{core::_Enum::_name}{core::String}}";
 }
-final class ImplementsFinalMixinTypeDef extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDef
-    ;
-}
-final class ImplementsFinalMixinTypeDef2 extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDef2
-    ;
-}
-class EnumImplementsFinalMixinTypeDef extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDef> values = const <self::EnumImplementsFinalMixinTypeDef>[self::EnumImplementsFinalMixinTypeDef::x];
-  enum-element static const field self::EnumImplementsFinalMixinTypeDef x = const self::EnumImplementsFinalMixinTypeDef::•(0, "x");
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDef
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-class EnumImplementsFinalMixinTypeDef2 extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDef2> values = const <self::EnumImplementsFinalMixinTypeDef2>[self::EnumImplementsFinalMixinTypeDef2::x];
-  enum-element static const field self::EnumImplementsFinalMixinTypeDef2 x = const self::EnumImplementsFinalMixinTypeDef2::•(0, "x");
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDef2
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _MixInFinalMixinTypeDef&Object&MTypeDef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDef&Object&MTypeDef
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDef extends self::_MixInFinalMixinTypeDef&Object&MTypeDef {
-  synthetic constructor •() → self::MixInFinalMixinTypeDef
-    ;
-}
-abstract final class _MixInFinalMixinTypeDef2&Object&MTypeDef2 = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDef2&Object&MTypeDef2
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDef2 extends self::_MixInFinalMixinTypeDef2&Object&MTypeDef2 {
-  synthetic constructor •() → self::MixInFinalMixinTypeDef2
-    ;
-}
-abstract final class _EnumMixInFinalMixinTypeDef&_Enum&MTypeDef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDef extends self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDef> values = const <self::EnumMixInFinalMixinTypeDef>[self::EnumMixInFinalMixinTypeDef::x];
-  enum-element static const field self::EnumMixInFinalMixinTypeDef x = const self::EnumMixInFinalMixinTypeDef::•(0, "x");
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDef
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2 = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDef2 extends self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2 /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDef2> values = const <self::EnumMixInFinalMixinTypeDef2>[self::EnumMixInFinalMixinTypeDef2::x];
-  enum-element static const field self::EnumMixInFinalMixinTypeDef2 x = const self::EnumMixInFinalMixinTypeDef2::•(0, "x");
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDef2
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
 final class ExtendsFinalClassTypedefOutside extends mai::A {
   synthetic constructor •() → self::ExtendsFinalClassTypedefOutside
     ;
@@ -215,41 +96,6 @@
   method _enumToString() → core::String
     return "EnumImplementsFinalClassTypedefOutside.${this.{core::_Enum::_name}{core::String}}";
 }
-final class ImplementsFinalMixinTypeDefOutside extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDefOutside
-    ;
-}
-class EnumImplementsFinalMixinTypeDefOutside extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDefOutside> values = const <self::EnumImplementsFinalMixinTypeDefOutside>[self::EnumImplementsFinalMixinTypeDefOutside::x];
-  enum-element static const field self::EnumImplementsFinalMixinTypeDefOutside x = const self::EnumImplementsFinalMixinTypeDefOutside::•(0, "x");
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDefOutside
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDefOutside extends self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef {
-  synthetic constructor •() → self::MixInFinalMixinTypeDefOutside
-    ;
-}
-abstract final class _EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDefOutside extends self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDefOutside> values = const <self::EnumMixInFinalMixinTypeDefOutside>[self::EnumMixInFinalMixinTypeDefOutside::x];
-  enum-element static const field self::EnumMixInFinalMixinTypeDefOutside x = const self::EnumMixInFinalMixinTypeDefOutside::•(0, "x");
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDefOutside
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
 
 library /*isNonNullableByDefault*/;
 import self as mai;
@@ -257,14 +103,10 @@
 
 typedef ATypeDef = mai::A;
 typedef ATypeDef2 = mai::A;
-typedef MTypeDef = mai::M;
-typedef MTypeDef2 = mai::M;
 final class A extends core::Object {
   synthetic constructor •() → mai::A
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
-}
 
 
 Extra constant evaluation status:
@@ -272,18 +114,6 @@
 Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:15:60 -> InstanceConstant(const EnumImplementsFinalClassTypedef{_Enum.index: 0, _Enum._name: "x"})
 Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:17:6 -> ListConstant(const <EnumImplementsFinalClassTypedef2*>[const EnumImplementsFinalClassTypedef2{_Enum.index: 0, _Enum._name: "x"}])
 Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:17:62 -> InstanceConstant(const EnumImplementsFinalClassTypedef2{_Enum.index: 0, _Enum._name: "x"})
-Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:23:6 -> ListConstant(const <EnumImplementsFinalMixinTypeDef*>[const EnumImplementsFinalMixinTypeDef{_Enum.index: 0, _Enum._name: "x"}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:23:60 -> InstanceConstant(const EnumImplementsFinalMixinTypeDef{_Enum.index: 0, _Enum._name: "x"})
-Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:25:6 -> ListConstant(const <EnumImplementsFinalMixinTypeDef2*>[const EnumImplementsFinalMixinTypeDef2{_Enum.index: 0, _Enum._name: "x"}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:25:62 -> InstanceConstant(const EnumImplementsFinalMixinTypeDef2{_Enum.index: 0, _Enum._name: "x"})
-Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:31:6 -> ListConstant(const <EnumMixInFinalMixinTypeDef*>[const EnumMixInFinalMixinTypeDef{}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:31:49 -> InstanceConstant(const EnumMixInFinalMixinTypeDef{})
-Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:33:6 -> ListConstant(const <EnumMixInFinalMixinTypeDef2*>[const EnumMixInFinalMixinTypeDef2{}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:33:51 -> InstanceConstant(const EnumMixInFinalMixinTypeDef2{})
-Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:43:6 -> ListConstant(const <EnumImplementsFinalClassTypedefOutside*>[const EnumImplementsFinalClassTypedefOutside{_Enum.index: 0, _Enum._name: "x"}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:43:74 -> InstanceConstant(const EnumImplementsFinalClassTypedefOutside{_Enum.index: 0, _Enum._name: "x"})
-Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:47:6 -> ListConstant(const <EnumImplementsFinalMixinTypeDefOutside*>[const EnumImplementsFinalMixinTypeDefOutside{_Enum.index: 0, _Enum._name: "x"}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:47:74 -> InstanceConstant(const EnumImplementsFinalMixinTypeDefOutside{_Enum.index: 0, _Enum._name: "x"})
-Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:51:6 -> ListConstant(const <EnumMixInFinalMixinTypeDefOutside*>[const EnumMixInFinalMixinTypeDefOutside{}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:51:63 -> InstanceConstant(const EnumMixInFinalMixinTypeDefOutside{})
-Extra constant evaluation: evaluated: 63, effectively constant: 18
+Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:25:6 -> ListConstant(const <EnumImplementsFinalClassTypedefOutside*>[const EnumImplementsFinalClassTypedefOutside{_Enum.index: 0, _Enum._name: "x"}])
+Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:25:74 -> InstanceConstant(const EnumImplementsFinalClassTypedefOutside{_Enum.index: 0, _Enum._name: "x"})
+Extra constant evaluation: evaluated: 21, effectively constant: 6
diff --git a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.transformed.expect b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.transformed.expect
index 9ae3ef8..b2c487c 100644
--- a/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/final/typedef/main.dart.weak.transformed.expect
@@ -26,66 +26,18 @@
 // enum EnumImplementsFinalClassTypedef2 implements ATypeDef2 { x }
 //                                                  ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:19:52: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDef implements MTypeDef {}
-//                                                    ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:21:53: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDef2 implements MTypeDef2 {}
-//                                                     ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:23:49: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDef implements MTypeDef { x }
-//                                                 ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:25:50: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDef2 implements MTypeDef2 { x }
-//                                                  ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:27:41: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDef with MTypeDef {}
-//                                         ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:29:42: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDef2 with MTypeDef2 {}
-//                                          ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:31:38: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDef with MTypeDef { x }
-//                                      ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:33:39: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDef2 with MTypeDef2 { x }
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:39:53: Error: The class 'A' can't be extended outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:21:53: Error: The class 'A' can't be extended outside of its library because it's a final class.
 // final class ExtendsFinalClassTypedefOutside extends AOutsideTypedef {}
 //                                                     ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:41:59: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:23:59: Error: The class 'A' can't be implemented outside of its library because it's a final class.
 // final class ImplementsFinalClassTypedefOutside implements AOutsideTypedef {}
 //                                                           ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:43:56: Error: The class 'A' can't be implemented outside of its library because it's a final class.
+// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:25:56: Error: The class 'A' can't be implemented outside of its library because it's a final class.
 // enum EnumImplementsFinalClassTypedefOutside implements AOutsideTypedef { x }
 //                                                        ^
 //
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:45:59: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// final class ImplementsFinalMixinTypeDefOutside implements MOutsideTypedef {}
-//                                                           ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:47:56: Error: The mixin 'M' can't be implemented outside of its library because it's a final mixin.
-// enum EnumImplementsFinalMixinTypeDefOutside implements MOutsideTypedef { x }
-//                                                        ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:49:48: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// final class MixInFinalMixinTypeDefOutside with MOutsideTypedef {}
-//                                                ^
-//
-// pkg/front_end/testcases/class_modifiers/final/typedef/main.dart:51:45: Error: The mixin 'M' can't be mixed-in outside of its library because it's a final mixin.
-// enum EnumMixInFinalMixinTypeDefOutside with MOutsideTypedef { x }
-//                                             ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -93,7 +45,6 @@
 import "org-dartlang-testcase:///main_lib.dart";
 
 typedef AOutsideTypedef = mai::A;
-typedef MOutsideTypedef = mai::M;
 final class ExtendsFinalClassTypedef extends mai::A {
   synthetic constructor •() → self::ExtendsFinalClassTypedef
     : super mai::A::•()
@@ -132,82 +83,6 @@
   method _enumToString() → core::String
     return "EnumImplementsFinalClassTypedef2.${this.{core::_Enum::_name}{core::String}}";
 }
-final class ImplementsFinalMixinTypeDef extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDef
-    : super core::Object::•()
-    ;
-}
-final class ImplementsFinalMixinTypeDef2 extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDef2
-    : super core::Object::•()
-    ;
-}
-class EnumImplementsFinalMixinTypeDef extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDef> values = #C8;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDef x = #C7;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDef
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-class EnumImplementsFinalMixinTypeDef2 extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDef2> values = #C10;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDef2 x = #C9;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDef2
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _MixInFinalMixinTypeDef&Object&MTypeDef extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDef&Object&MTypeDef
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDef extends self::_MixInFinalMixinTypeDef&Object&MTypeDef {
-  synthetic constructor •() → self::MixInFinalMixinTypeDef
-    : super self::_MixInFinalMixinTypeDef&Object&MTypeDef::•()
-    ;
-}
-abstract final class _MixInFinalMixinTypeDef2&Object&MTypeDef2 extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDef2&Object&MTypeDef2
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDef2 extends self::_MixInFinalMixinTypeDef2&Object&MTypeDef2 {
-  synthetic constructor •() → self::MixInFinalMixinTypeDef2
-    : super self::_MixInFinalMixinTypeDef2&Object&MTypeDef2::•()
-    ;
-}
-abstract final class _EnumMixInFinalMixinTypeDef&_Enum&MTypeDef extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDef extends self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDef> values = #C12;
-  enum-element static const field self::EnumMixInFinalMixinTypeDef x = #C11;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDef
-    : super self::_EnumMixInFinalMixinTypeDef&_Enum&MTypeDef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2 extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDef2 extends self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2 /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDef2> values = #C14;
-  enum-element static const field self::EnumMixInFinalMixinTypeDef2 x = #C13;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDef2
-    : super self::_EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
 final class ExtendsFinalClassTypedefOutside extends mai::A {
   synthetic constructor •() → self::ExtendsFinalClassTypedefOutside
     : super mai::A::•()
@@ -219,52 +94,14 @@
     ;
 }
 class EnumImplementsFinalClassTypedefOutside extends core::_Enum implements mai::A /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalClassTypedefOutside> values = #C16;
-  enum-element static const field self::EnumImplementsFinalClassTypedefOutside x = #C15;
+  static const field core::List<self::EnumImplementsFinalClassTypedefOutside> values = #C8;
+  enum-element static const field self::EnumImplementsFinalClassTypedefOutside x = #C7;
   const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalClassTypedefOutside
     : super core::_Enum::•(#index, #name)
     ;
   method _enumToString() → core::String
     return "EnumImplementsFinalClassTypedefOutside.${this.{core::_Enum::_name}{core::String}}";
 }
-final class ImplementsFinalMixinTypeDefOutside extends core::Object implements mai::M {
-  synthetic constructor •() → self::ImplementsFinalMixinTypeDefOutside
-    : super core::Object::•()
-    ;
-}
-class EnumImplementsFinalMixinTypeDefOutside extends core::_Enum implements mai::M /*isEnum*/  {
-  static const field core::List<self::EnumImplementsFinalMixinTypeDefOutside> values = #C18;
-  enum-element static const field self::EnumImplementsFinalMixinTypeDefOutside x = #C17;
-  const constructor •(core::int #index, core::String #name) → self::EnumImplementsFinalMixinTypeDefOutside
-    : super core::_Enum::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumImplementsFinalMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract final class _MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef
-    : super core::Object::•()
-    ;
-}
-final class MixInFinalMixinTypeDefOutside extends self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef {
-  synthetic constructor •() → self::MixInFinalMixinTypeDefOutside
-    : super self::_MixInFinalMixinTypeDefOutside&Object&MOutsideTypedef::•()
-    ;
-}
-abstract final class _EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInFinalMixinTypeDefOutside extends self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef /*isEnum*/  {
-  static const field core::List<self::EnumMixInFinalMixinTypeDefOutside> values = #C20;
-  enum-element static const field self::EnumMixInFinalMixinTypeDefOutside x = #C19;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInFinalMixinTypeDefOutside
-    : super self::_EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInFinalMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
 
 library /*isNonNullableByDefault*/;
 import self as mai;
@@ -272,15 +109,11 @@
 
 typedef ATypeDef = mai::A;
 typedef ATypeDef2 = mai::A;
-typedef MTypeDef = mai::M;
-typedef MTypeDef2 = mai::M;
 final class A extends core::Object {
   synthetic constructor •() → mai::A
     : super core::Object::•()
     ;
 }
-abstract final class M extends core::Object /*isMixinDeclaration*/  {
-}
 
 constants  {
   #C1 = 0
@@ -289,20 +122,8 @@
   #C4 = <self::EnumImplementsFinalClassTypedef*>[#C3]
   #C5 = self::EnumImplementsFinalClassTypedef2 {index:#C1, _name:#C2}
   #C6 = <self::EnumImplementsFinalClassTypedef2*>[#C5]
-  #C7 = self::EnumImplementsFinalMixinTypeDef {index:#C1, _name:#C2}
-  #C8 = <self::EnumImplementsFinalMixinTypeDef*>[#C7]
-  #C9 = self::EnumImplementsFinalMixinTypeDef2 {index:#C1, _name:#C2}
-  #C10 = <self::EnumImplementsFinalMixinTypeDef2*>[#C9]
-  #C11 = self::EnumMixInFinalMixinTypeDef {index:#C1, _name:#C2}
-  #C12 = <self::EnumMixInFinalMixinTypeDef*>[#C11]
-  #C13 = self::EnumMixInFinalMixinTypeDef2 {index:#C1, _name:#C2}
-  #C14 = <self::EnumMixInFinalMixinTypeDef2*>[#C13]
-  #C15 = self::EnumImplementsFinalClassTypedefOutside {index:#C1, _name:#C2}
-  #C16 = <self::EnumImplementsFinalClassTypedefOutside*>[#C15]
-  #C17 = self::EnumImplementsFinalMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C18 = <self::EnumImplementsFinalMixinTypeDefOutside*>[#C17]
-  #C19 = self::EnumMixInFinalMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C20 = <self::EnumMixInFinalMixinTypeDefOutside*>[#C19]
+  #C7 = self::EnumImplementsFinalClassTypedefOutside {index:#C1, _name:#C2}
+  #C8 = <self::EnumImplementsFinalClassTypedefOutside*>[#C7]
 }
 
 
@@ -312,13 +133,4 @@
 - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
 - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
 - EnumImplementsFinalClassTypedef2. (from org-dartlang-testcase:///main.dart:17:6)
-- EnumImplementsFinalMixinTypeDef. (from org-dartlang-testcase:///main.dart:23:6)
-- EnumImplementsFinalMixinTypeDef2. (from org-dartlang-testcase:///main.dart:25:6)
-- EnumMixInFinalMixinTypeDef. (from org-dartlang-testcase:///main.dart:31:6)
-- _EnumMixInFinalMixinTypeDef&_Enum&MTypeDef. (from org-dartlang-testcase:///main.dart:31:6)
-- EnumMixInFinalMixinTypeDef2. (from org-dartlang-testcase:///main.dart:33:6)
-- _EnumMixInFinalMixinTypeDef2&_Enum&MTypeDef2. (from org-dartlang-testcase:///main.dart:33:6)
-- EnumImplementsFinalClassTypedefOutside. (from org-dartlang-testcase:///main.dart:43:6)
-- EnumImplementsFinalMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:47:6)
-- EnumMixInFinalMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:51:6)
-- _EnumMixInFinalMixinTypeDefOutside&_Enum&MOutsideTypedef. (from org-dartlang-testcase:///main.dart:51:6)
+- EnumImplementsFinalClassTypedefOutside. (from org-dartlang-testcase:///main.dart:25:6)
diff --git a/pkg/front_end/testcases/class_modifiers/final/typedef/main_lib.dart b/pkg/front_end/testcases/class_modifiers/final/typedef/main_lib.dart
index a6bae05..bec85ee 100644
--- a/pkg/front_end/testcases/class_modifiers/final/typedef/main_lib.dart
+++ b/pkg/front_end/testcases/class_modifiers/final/typedef/main_lib.dart
@@ -7,9 +7,3 @@
 typedef ATypeDef = A;
 
 typedef ATypeDef2 = ATypeDef;
-
-final mixin M {}
-
-typedef MTypeDef = M;
-
-typedef MTypeDef2 = MTypeDef;
diff --git a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart
index d3e74b8..21f52f4 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart
+++ b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart
@@ -6,5 +6,5 @@
 
 abstract interface class B {}
 
-interface mixin M {}
+mixin M {}
 interface class C = Object with M;
diff --git a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.strong.expect b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.strong.expect
index dfd3537..c6e26dc 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.strong.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.strong.expect
@@ -12,7 +12,7 @@
     : super core::Object::•()
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
+abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
 interface class C = core::Object with self::M /*hasConstConstructor*/  {
   const synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.strong.transformed.expect
index e9cf346..cf93639 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.strong.transformed.expect
@@ -12,7 +12,7 @@
     : super core::Object::•()
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
+abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
 interface class C extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/  {
   const synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.textual_outline.expect
index 4459d37..30a7bf5 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.textual_outline.expect
@@ -1,5 +1,6 @@
 interface class A {}
+
 abstract interface class B {}
-interface
+
 mixin M {}
 interface class C = Object with M;
diff --git a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.textual_outline_modelled.expect
index e0d0cbb..6078d7b 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
 abstract interface class B {}
+
 interface class A {}
----- unknown chunk starts ----
-interface
----- unknown chunk ends ----
+
 interface class C = Object with M;
 mixin M {}
diff --git a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.expect b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.expect
index dfd3537..c6e26dc 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.expect
@@ -12,7 +12,7 @@
     : super core::Object::•()
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
+abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
 interface class C = core::Object with self::M /*hasConstConstructor*/  {
   const synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.modular.expect
index dfd3537..c6e26dc 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.modular.expect
@@ -12,7 +12,7 @@
     : super core::Object::•()
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
+abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
 interface class C = core::Object with self::M /*hasConstConstructor*/  {
   const synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.outline.expect
index 25d4bba..325f2b2 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.outline.expect
@@ -10,7 +10,7 @@
   synthetic constructor •() → self::B
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
+abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
 interface class C = core::Object with self::M /*hasConstConstructor*/  {
   const synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.transformed.expect
index e9cf346..cf93639 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/interface_class_declaration.dart.weak.transformed.expect
@@ -12,7 +12,7 @@
     : super core::Object::•()
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
+abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
 interface class C extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/  {
   const synthetic constructor •() → self::C
diff --git a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart
index 9f3416f..814b1e9 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart
+++ b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart
@@ -6,14 +6,6 @@
 
 class ExtendsInterfaceClass extends A {}
 
-class MixInInterfaceMixin with M {}
-
-class MixInInterfaceMixinExtendsObject extends Object with M {}
-
-enum EnumSubtype with M { x }
-
 mixin MixinOnA on A {}
 
-mixin MixinOnM on M {}
-
-mixin MixinOnAM on A, M {}
+mixin MixinOnAM on A, B {}
diff --git a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.strong.expect b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.strong.expect
index def686e..bcf799b 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.strong.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.strong.expect
@@ -6,18 +6,6 @@
 // class ExtendsInterfaceClass extends A {}
 //                                     ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:9:32: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixin with M {}
-//                                ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:11:60: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinExtendsObject extends Object with M {}
-//                                                            ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:13:23: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumSubtype with M { x }
-//                       ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -29,50 +17,14 @@
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixin&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixin extends self::_MixInInterfaceMixin&Object&M {
-  synthetic constructor •() → self::MixInInterfaceMixin
-    : super self::_MixInInterfaceMixin&Object&M::•()
-    ;
-}
-abstract class _MixInInterfaceMixinExtendsObject&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinExtendsObject&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinExtendsObject extends self::_MixInInterfaceMixinExtendsObject&Object&M {
-  synthetic constructor •() → self::MixInInterfaceMixinExtendsObject
-    : super self::_MixInInterfaceMixinExtendsObject&Object&M::•()
-    ;
-}
-abstract class _EnumSubtype&_Enum&M = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumSubtype&_Enum&M
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumSubtype extends self::_EnumSubtype&_Enum&M /*isEnum*/  {
-  static const field core::List<self::EnumSubtype> values = #C4;
-  enum-element static const field self::EnumSubtype x = #C3;
-  const constructor •(core::int #index, core::String #name) → self::EnumSubtype
-    : super self::_EnumSubtype&_Enum&M::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumSubtype.${this.{core::_Enum::_name}{core::String}}";
-}
 abstract class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-abstract class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAM&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAM&A&B
     : super core::Object::•()
     ;
 }
-abstract class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract class MixinOnAM extends self::_MixinOnAM&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -84,20 +36,8 @@
     : super core::Object::•()
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
+interface class B extends core::Object {
+  synthetic constructor •() → mai::B
+    : super core::Object::•()
+    ;
 }
-
-constants  {
-  #C1 = 0
-  #C2 = "x"
-  #C3 = self::EnumSubtype {index:#C1, _name:#C2}
-  #C4 = <self::EnumSubtype>[#C3]
-}
-
-
-Constructor coverage from constants:
-org-dartlang-testcase:///main.dart:
-- EnumSubtype. (from org-dartlang-testcase:///main.dart:13:6)
-- _EnumSubtype&_Enum&M. (from org-dartlang-testcase:///main.dart:13:6)
-- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.strong.transformed.expect b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.strong.transformed.expect
index 3e34ed3..bcf799b 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.strong.transformed.expect
@@ -6,18 +6,6 @@
 // class ExtendsInterfaceClass extends A {}
 //                                     ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:9:32: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixin with M {}
-//                                ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:11:60: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinExtendsObject extends Object with M {}
-//                                                            ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:13:23: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumSubtype with M { x }
-//                       ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -29,50 +17,14 @@
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixin&Object&M extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixin extends self::_MixInInterfaceMixin&Object&M {
-  synthetic constructor •() → self::MixInInterfaceMixin
-    : super self::_MixInInterfaceMixin&Object&M::•()
-    ;
-}
-abstract class _MixInInterfaceMixinExtendsObject&Object&M extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinExtendsObject&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinExtendsObject extends self::_MixInInterfaceMixinExtendsObject&Object&M {
-  synthetic constructor •() → self::MixInInterfaceMixinExtendsObject
-    : super self::_MixInInterfaceMixinExtendsObject&Object&M::•()
-    ;
-}
-abstract class _EnumSubtype&_Enum&M extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumSubtype&_Enum&M
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumSubtype extends self::_EnumSubtype&_Enum&M /*isEnum*/  {
-  static const field core::List<self::EnumSubtype> values = #C4;
-  enum-element static const field self::EnumSubtype x = #C3;
-  const constructor •(core::int #index, core::String #name) → self::EnumSubtype
-    : super self::_EnumSubtype&_Enum&M::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumSubtype.${this.{core::_Enum::_name}{core::String}}";
-}
 abstract class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-abstract class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAM&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAM&A&B
     : super core::Object::•()
     ;
 }
-abstract class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract class MixinOnAM extends self::_MixinOnAM&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -84,20 +36,8 @@
     : super core::Object::•()
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
+interface class B extends core::Object {
+  synthetic constructor •() → mai::B
+    : super core::Object::•()
+    ;
 }
-
-constants  {
-  #C1 = 0
-  #C2 = "x"
-  #C3 = self::EnumSubtype {index:#C1, _name:#C2}
-  #C4 = <self::EnumSubtype>[#C3]
-}
-
-
-Constructor coverage from constants:
-org-dartlang-testcase:///main.dart:
-- EnumSubtype. (from org-dartlang-testcase:///main.dart:13:6)
-- _EnumSubtype&_Enum&M. (from org-dartlang-testcase:///main.dart:13:6)
-- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.textual_outline.expect b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.textual_outline.expect
index 30980776..4a17e9f 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.textual_outline.expect
@@ -2,12 +2,5 @@
 
 class ExtendsInterfaceClass extends A {}
 
-class MixInInterfaceMixin with M {}
-
-class MixInInterfaceMixinExtendsObject extends Object with M {}
-
-enum EnumSubtype with M { x }
-
 mixin MixinOnA on A {}
-mixin MixinOnM on M {}
-mixin MixinOnAM on A, M {}
+mixin MixinOnAM on A, B {}
diff --git a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.textual_outline_modelled.expect
index 2ca081a..4a17e9f 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.textual_outline_modelled.expect
@@ -2,12 +2,5 @@
 
 class ExtendsInterfaceClass extends A {}
 
-class MixInInterfaceMixin with M {}
-
-class MixInInterfaceMixinExtendsObject extends Object with M {}
-
-enum EnumSubtype with M { x }
-
 mixin MixinOnA on A {}
-mixin MixinOnAM on A, M {}
-mixin MixinOnM on M {}
+mixin MixinOnAM on A, B {}
diff --git a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.expect b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.expect
index b279ab5..bcf799b 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.expect
@@ -6,18 +6,6 @@
 // class ExtendsInterfaceClass extends A {}
 //                                     ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:9:32: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixin with M {}
-//                                ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:11:60: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinExtendsObject extends Object with M {}
-//                                                            ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:13:23: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumSubtype with M { x }
-//                       ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -29,50 +17,14 @@
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixin&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixin extends self::_MixInInterfaceMixin&Object&M {
-  synthetic constructor •() → self::MixInInterfaceMixin
-    : super self::_MixInInterfaceMixin&Object&M::•()
-    ;
-}
-abstract class _MixInInterfaceMixinExtendsObject&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinExtendsObject&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinExtendsObject extends self::_MixInInterfaceMixinExtendsObject&Object&M {
-  synthetic constructor •() → self::MixInInterfaceMixinExtendsObject
-    : super self::_MixInInterfaceMixinExtendsObject&Object&M::•()
-    ;
-}
-abstract class _EnumSubtype&_Enum&M = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumSubtype&_Enum&M
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumSubtype extends self::_EnumSubtype&_Enum&M /*isEnum*/  {
-  static const field core::List<self::EnumSubtype> values = #C4;
-  enum-element static const field self::EnumSubtype x = #C3;
-  const constructor •(core::int #index, core::String #name) → self::EnumSubtype
-    : super self::_EnumSubtype&_Enum&M::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumSubtype.${this.{core::_Enum::_name}{core::String}}";
-}
 abstract class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-abstract class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAM&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAM&A&B
     : super core::Object::•()
     ;
 }
-abstract class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract class MixinOnAM extends self::_MixinOnAM&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -84,20 +36,8 @@
     : super core::Object::•()
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
+interface class B extends core::Object {
+  synthetic constructor •() → mai::B
+    : super core::Object::•()
+    ;
 }
-
-constants  {
-  #C1 = 0
-  #C2 = "x"
-  #C3 = self::EnumSubtype {index:#C1, _name:#C2}
-  #C4 = <self::EnumSubtype*>[#C3]
-}
-
-
-Constructor coverage from constants:
-org-dartlang-testcase:///main.dart:
-- EnumSubtype. (from org-dartlang-testcase:///main.dart:13:6)
-- _EnumSubtype&_Enum&M. (from org-dartlang-testcase:///main.dart:13:6)
-- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.modular.expect b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.modular.expect
index 1f81372..694f9ae 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.modular.expect
@@ -6,18 +6,6 @@
 // class ExtendsInterfaceClass extends A {}
 //                                     ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:9:32: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixin with M {}
-//                                ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:11:60: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinExtendsObject extends Object with M {}
-//                                                            ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:13:23: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumSubtype with M { x }
-//                       ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -29,63 +17,12 @@
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixin&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixin extends self::_MixInInterfaceMixin&Object&M {
-  synthetic constructor •() → self::MixInInterfaceMixin
-    : super self::_MixInInterfaceMixin&Object&M::•()
-    ;
-}
-abstract class _MixInInterfaceMixinExtendsObject&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinExtendsObject&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinExtendsObject extends self::_MixInInterfaceMixinExtendsObject&Object&M {
-  synthetic constructor •() → self::MixInInterfaceMixinExtendsObject
-    : super self::_MixInInterfaceMixinExtendsObject&Object&M::•()
-    ;
-}
-abstract class _EnumSubtype&_Enum&M = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumSubtype&_Enum&M
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumSubtype extends self::_EnumSubtype&_Enum&M /*isEnum*/  {
-  static const field core::List<self::EnumSubtype> values = #C4;
-  enum-element static const field self::EnumSubtype x = #C3;
-  const constructor •(core::int #index, core::String #name) → self::EnumSubtype
-    : super self::_EnumSubtype&_Enum&M::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumSubtype.${this.{core::_Enum::_name}{core::String}}";
-}
 abstract class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-abstract class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAM&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAM&A&B
     : super core::Object::•()
     ;
 }
-abstract class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract class MixinOnAM extends self::_MixinOnAM&A&B /*isMixinDeclaration*/  {
 }
-
-constants  {
-  #C1 = 0
-  #C2 = "x"
-  #C3 = self::EnumSubtype {index:#C1, _name:#C2}
-  #C4 = <self::EnumSubtype*>[#C3]
-}
-
-
-Constructor coverage from constants:
-org-dartlang-testcase:///main.dart:
-- EnumSubtype. (from org-dartlang-testcase:///main.dart:13:6)
-- _EnumSubtype&_Enum&M. (from org-dartlang-testcase:///main.dart:13:6)
-- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.outline.expect b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.outline.expect
index 5878be7..57e768f 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.outline.expect
@@ -6,18 +6,6 @@
 // class ExtendsInterfaceClass extends A {}
 //                                     ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:9:32: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixin with M {}
-//                                ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:11:60: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinExtendsObject extends Object with M {}
-//                                                            ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:13:23: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumSubtype with M { x }
-//                       ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -28,46 +16,13 @@
   synthetic constructor •() → self::ExtendsInterfaceClass
     ;
 }
-abstract class _MixInInterfaceMixin&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixin extends self::_MixInInterfaceMixin&Object&M {
-  synthetic constructor •() → self::MixInInterfaceMixin
-    ;
-}
-abstract class _MixInInterfaceMixinExtendsObject&Object&M = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinExtendsObject&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinExtendsObject extends self::_MixInInterfaceMixinExtendsObject&Object&M {
-  synthetic constructor •() → self::MixInInterfaceMixinExtendsObject
-    ;
-}
-abstract class _EnumSubtype&_Enum&M = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumSubtype&_Enum&M
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumSubtype extends self::_EnumSubtype&_Enum&M /*isEnum*/  {
-  static const field core::List<self::EnumSubtype> values = const <self::EnumSubtype>[self::EnumSubtype::x];
-  enum-element static const field self::EnumSubtype x = const self::EnumSubtype::•(0, "x");
-  const constructor •(core::int #index, core::String #name) → self::EnumSubtype
-    ;
-  method _enumToString() → core::String
-    return "EnumSubtype.${this.{core::_Enum::_name}{core::String}}";
-}
 abstract class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-abstract class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAM&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAM&A&B
     ;
 }
-abstract class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract class MixinOnAM extends self::_MixinOnAM&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -78,11 +33,7 @@
   synthetic constructor •() → mai::A
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
+interface class B extends core::Object {
+  synthetic constructor •() → mai::B
+    ;
 }
-
-
-Extra constant evaluation status:
-Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:13:6 -> ListConstant(const <EnumSubtype*>[const EnumSubtype{}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:13:27 -> InstanceConstant(const EnumSubtype{})
-Extra constant evaluation: evaluated: 7, effectively constant: 2
diff --git a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.transformed.expect b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.transformed.expect
index 7d2bc38..bcf799b 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart.weak.transformed.expect
@@ -6,18 +6,6 @@
 // class ExtendsInterfaceClass extends A {}
 //                                     ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:9:32: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixin with M {}
-//                                ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:11:60: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinExtendsObject extends Object with M {}
-//                                                            ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/outside_library/main.dart:13:23: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumSubtype with M { x }
-//                       ^
-//
 import self as self;
 import "main_lib.dart" as mai;
 import "dart:core" as core;
@@ -29,50 +17,14 @@
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixin&Object&M extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixin&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixin extends self::_MixInInterfaceMixin&Object&M {
-  synthetic constructor •() → self::MixInInterfaceMixin
-    : super self::_MixInInterfaceMixin&Object&M::•()
-    ;
-}
-abstract class _MixInInterfaceMixinExtendsObject&Object&M extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinExtendsObject&Object&M
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinExtendsObject extends self::_MixInInterfaceMixinExtendsObject&Object&M {
-  synthetic constructor •() → self::MixInInterfaceMixinExtendsObject
-    : super self::_MixInInterfaceMixinExtendsObject&Object&M::•()
-    ;
-}
-abstract class _EnumSubtype&_Enum&M extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumSubtype&_Enum&M
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumSubtype extends self::_EnumSubtype&_Enum&M /*isEnum*/  {
-  static const field core::List<self::EnumSubtype> values = #C4;
-  enum-element static const field self::EnumSubtype x = #C3;
-  const constructor •(core::int #index, core::String #name) → self::EnumSubtype
-    : super self::_EnumSubtype&_Enum&M::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumSubtype.${this.{core::_Enum::_name}{core::String}}";
-}
 abstract class MixinOnA extends mai::A /*isMixinDeclaration*/  {
 }
-abstract class MixinOnM extends mai::M /*isMixinDeclaration*/  {
-}
-abstract class _MixinOnAM&A&M extends core::Object implements mai::A, mai::M /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MixinOnAM&A&M
+abstract class _MixinOnAM&A&B extends core::Object implements mai::A, mai::B /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MixinOnAM&A&B
     : super core::Object::•()
     ;
 }
-abstract class MixinOnAM extends self::_MixinOnAM&A&M /*isMixinDeclaration*/  {
+abstract class MixinOnAM extends self::_MixinOnAM&A&B /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -84,20 +36,8 @@
     : super core::Object::•()
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
+interface class B extends core::Object {
+  synthetic constructor •() → mai::B
+    : super core::Object::•()
+    ;
 }
-
-constants  {
-  #C1 = 0
-  #C2 = "x"
-  #C3 = self::EnumSubtype {index:#C1, _name:#C2}
-  #C4 = <self::EnumSubtype*>[#C3]
-}
-
-
-Constructor coverage from constants:
-org-dartlang-testcase:///main.dart:
-- EnumSubtype. (from org-dartlang-testcase:///main.dart:13:6)
-- _EnumSubtype&_Enum&M. (from org-dartlang-testcase:///main.dart:13:6)
-- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
diff --git a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main_lib.dart b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main_lib.dart
index 610463e..11e11e2 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/outside_library/main_lib.dart
+++ b/pkg/front_end/testcases/class_modifiers/interface/outside_library/main_lib.dart
@@ -4,4 +4,4 @@
 
 interface class A {}
 
-interface mixin M {}
\ No newline at end of file
+interface class B {}
diff --git a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart
index 2f91f93..95fe9e7 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart
+++ b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart
@@ -8,20 +8,6 @@
 
 class ExtendsInterfaceClassTypedef2 extends ATypeDef2 {}
 
-class MixInInterfaceMixinTypeDef with MTypeDef {}
-
-enum EnumMixInInterfaceMixinTypeDef with MTypeDef { foo }
-
-class MixInInterfaceMixinTypeDef2 with MTypeDef2 {}
-
-enum EnumMixInInterfaceMixinTypeDef2 with MTypeDef2 { foo }
-
 typedef AOutsideTypedef = A;
 
-typedef MOutsideTypedef = M;
-
 class ExtendsInterfaceClassTypedefOutside extends AOutsideTypedef {}
-
-class MixInInterfaceMixinTypeDefOutside with MOutsideTypedef {}
-
-enum EnumMixInInterfaceMixinTypeDefOutside with MOutsideTypedef { foo }
diff --git a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.strong.expect b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.strong.expect
index 2a31d43..d0bc50c 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.strong.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.strong.expect
@@ -10,42 +10,16 @@
 // class ExtendsInterfaceClassTypedef2 extends ATypeDef2 {}
 //                                             ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:11:39: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDef with MTypeDef {}
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:13:42: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDef with MTypeDef { foo }
-//                                          ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:15:40: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDef2 with MTypeDef2 {}
-//                                        ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:17:43: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDef2 with MTypeDef2 { foo }
-//                                           ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:23:51: Error: The class 'A' can't be extended outside of its library because it's an interface class.
+// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:13:51: Error: The class 'A' can't be extended outside of its library because it's an interface class.
 // class ExtendsInterfaceClassTypedefOutside extends AOutsideTypedef {}
 //                                                   ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:25:46: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDefOutside with MOutsideTypedef {}
-//                                              ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:27:49: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDefOutside with MOutsideTypedef { foo }
-//                                                 ^
-//
 import self as self;
 import "main_lib.dart" as mai;
-import "dart:core" as core;
 
 import "org-dartlang-testcase:///main_lib.dart";
 
 typedef AOutsideTypedef = mai::A;
-typedef MOutsideTypedef = mai::M;
 class ExtendsInterfaceClassTypedef extends mai::A {
   synthetic constructor •() → self::ExtendsInterfaceClassTypedef
     : super mai::A::•()
@@ -56,83 +30,11 @@
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixinTypeDef&Object&MTypeDef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDef&Object&MTypeDef
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDef extends self::_MixInInterfaceMixinTypeDef&Object&MTypeDef {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDef
-    : super self::_MixInInterfaceMixinTypeDef&Object&MTypeDef::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDef extends self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDef> values = #C4;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDef foo = #C3;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDef
-    : super self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract class _MixInInterfaceMixinTypeDef2&Object&MTypeDef2 = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDef2 extends self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2 {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDef2
-    : super self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2 = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDef2 extends self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2 /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDef2> values = #C6;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDef2 foo = #C5;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDef2
-    : super self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
 class ExtendsInterfaceClassTypedefOutside extends mai::A {
   synthetic constructor •() → self::ExtendsInterfaceClassTypedefOutside
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDefOutside extends self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDefOutside
-    : super self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDefOutside extends self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDefOutside> values = #C8;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDefOutside foo = #C7;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDefOutside
-    : super self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
 
 library /*isNonNullableByDefault*/;
 import self as mai;
@@ -140,35 +42,8 @@
 
 typedef ATypeDef = mai::A;
 typedef ATypeDef2 = mai::A;
-typedef MTypeDef = mai::M;
-typedef MTypeDef2 = mai::M;
 interface class A extends core::Object {
   synthetic constructor •() → mai::A
     : super core::Object::•()
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
-}
-
-constants  {
-  #C1 = 0
-  #C2 = "foo"
-  #C3 = self::EnumMixInInterfaceMixinTypeDef {index:#C1, _name:#C2}
-  #C4 = <self::EnumMixInInterfaceMixinTypeDef>[#C3]
-  #C5 = self::EnumMixInInterfaceMixinTypeDef2 {index:#C1, _name:#C2}
-  #C6 = <self::EnumMixInInterfaceMixinTypeDef2>[#C5]
-  #C7 = self::EnumMixInInterfaceMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C8 = <self::EnumMixInInterfaceMixinTypeDefOutside>[#C7]
-}
-
-
-Constructor coverage from constants:
-org-dartlang-testcase:///main.dart:
-- EnumMixInInterfaceMixinTypeDef. (from org-dartlang-testcase:///main.dart:13:6)
-- _EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef. (from org-dartlang-testcase:///main.dart:13:6)
-- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
-- EnumMixInInterfaceMixinTypeDef2. (from org-dartlang-testcase:///main.dart:17:6)
-- _EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2. (from org-dartlang-testcase:///main.dart:17:6)
-- EnumMixInInterfaceMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:27:6)
-- _EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef. (from org-dartlang-testcase:///main.dart:27:6)
diff --git a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.strong.transformed.expect b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.strong.transformed.expect
index 59ba4ca..d0bc50c 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.strong.transformed.expect
@@ -10,42 +10,16 @@
 // class ExtendsInterfaceClassTypedef2 extends ATypeDef2 {}
 //                                             ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:11:39: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDef with MTypeDef {}
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:13:42: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDef with MTypeDef { foo }
-//                                          ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:15:40: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDef2 with MTypeDef2 {}
-//                                        ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:17:43: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDef2 with MTypeDef2 { foo }
-//                                           ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:23:51: Error: The class 'A' can't be extended outside of its library because it's an interface class.
+// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:13:51: Error: The class 'A' can't be extended outside of its library because it's an interface class.
 // class ExtendsInterfaceClassTypedefOutside extends AOutsideTypedef {}
 //                                                   ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:25:46: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDefOutside with MOutsideTypedef {}
-//                                              ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:27:49: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDefOutside with MOutsideTypedef { foo }
-//                                                 ^
-//
 import self as self;
 import "main_lib.dart" as mai;
-import "dart:core" as core;
 
 import "org-dartlang-testcase:///main_lib.dart";
 
 typedef AOutsideTypedef = mai::A;
-typedef MOutsideTypedef = mai::M;
 class ExtendsInterfaceClassTypedef extends mai::A {
   synthetic constructor •() → self::ExtendsInterfaceClassTypedef
     : super mai::A::•()
@@ -56,83 +30,11 @@
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixinTypeDef&Object&MTypeDef extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDef&Object&MTypeDef
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDef extends self::_MixInInterfaceMixinTypeDef&Object&MTypeDef {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDef
-    : super self::_MixInInterfaceMixinTypeDef&Object&MTypeDef::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDef extends self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDef> values = #C4;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDef foo = #C3;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDef
-    : super self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract class _MixInInterfaceMixinTypeDef2&Object&MTypeDef2 extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDef2 extends self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2 {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDef2
-    : super self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2 extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDef2 extends self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2 /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDef2> values = #C6;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDef2 foo = #C5;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDef2
-    : super self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
 class ExtendsInterfaceClassTypedefOutside extends mai::A {
   synthetic constructor •() → self::ExtendsInterfaceClassTypedefOutside
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDefOutside extends self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDefOutside
-    : super self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDefOutside extends self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDefOutside> values = #C8;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDefOutside foo = #C7;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDefOutside
-    : super self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
 
 library /*isNonNullableByDefault*/;
 import self as mai;
@@ -140,35 +42,8 @@
 
 typedef ATypeDef = mai::A;
 typedef ATypeDef2 = mai::A;
-typedef MTypeDef = mai::M;
-typedef MTypeDef2 = mai::M;
 interface class A extends core::Object {
   synthetic constructor •() → mai::A
     : super core::Object::•()
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
-}
-
-constants  {
-  #C1 = 0
-  #C2 = "foo"
-  #C3 = self::EnumMixInInterfaceMixinTypeDef {index:#C1, _name:#C2}
-  #C4 = <self::EnumMixInInterfaceMixinTypeDef>[#C3]
-  #C5 = self::EnumMixInInterfaceMixinTypeDef2 {index:#C1, _name:#C2}
-  #C6 = <self::EnumMixInInterfaceMixinTypeDef2>[#C5]
-  #C7 = self::EnumMixInInterfaceMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C8 = <self::EnumMixInInterfaceMixinTypeDefOutside>[#C7]
-}
-
-
-Constructor coverage from constants:
-org-dartlang-testcase:///main.dart:
-- EnumMixInInterfaceMixinTypeDef. (from org-dartlang-testcase:///main.dart:13:6)
-- _EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef. (from org-dartlang-testcase:///main.dart:13:6)
-- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
-- EnumMixInInterfaceMixinTypeDef2. (from org-dartlang-testcase:///main.dart:17:6)
-- _EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2. (from org-dartlang-testcase:///main.dart:17:6)
-- EnumMixInInterfaceMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:27:6)
-- _EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef. (from org-dartlang-testcase:///main.dart:27:6)
diff --git a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.textual_outline.expect b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.textual_outline.expect
index 65b549a..0447478 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.textual_outline.expect
@@ -4,19 +4,6 @@
 
 class ExtendsInterfaceClassTypedef2 extends ATypeDef2 {}
 
-class MixInInterfaceMixinTypeDef with MTypeDef {}
-
-enum EnumMixInInterfaceMixinTypeDef with MTypeDef { foo }
-
-class MixInInterfaceMixinTypeDef2 with MTypeDef2 {}
-
-enum EnumMixInInterfaceMixinTypeDef2 with MTypeDef2 { foo }
-
 typedef AOutsideTypedef = A;
-typedef MOutsideTypedef = M;
 
 class ExtendsInterfaceClassTypedefOutside extends AOutsideTypedef {}
-
-class MixInInterfaceMixinTypeDefOutside with MOutsideTypedef {}
-
-enum EnumMixInInterfaceMixinTypeDefOutside with MOutsideTypedef { foo }
diff --git a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.textual_outline_modelled.expect
index ed9494a..14a2730 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.textual_outline_modelled.expect
@@ -6,17 +6,4 @@
 
 class ExtendsInterfaceClassTypedefOutside extends AOutsideTypedef {}
 
-class MixInInterfaceMixinTypeDef with MTypeDef {}
-
-class MixInInterfaceMixinTypeDef2 with MTypeDef2 {}
-
-class MixInInterfaceMixinTypeDefOutside with MOutsideTypedef {}
-
-enum EnumMixInInterfaceMixinTypeDef with MTypeDef { foo }
-
-enum EnumMixInInterfaceMixinTypeDef2 with MTypeDef2 { foo }
-
-enum EnumMixInInterfaceMixinTypeDefOutside with MOutsideTypedef { foo }
-
 typedef AOutsideTypedef = A;
-typedef MOutsideTypedef = M;
diff --git a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.expect b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.expect
index 73c3a5b..d0bc50c 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.expect
@@ -10,42 +10,16 @@
 // class ExtendsInterfaceClassTypedef2 extends ATypeDef2 {}
 //                                             ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:11:39: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDef with MTypeDef {}
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:13:42: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDef with MTypeDef { foo }
-//                                          ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:15:40: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDef2 with MTypeDef2 {}
-//                                        ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:17:43: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDef2 with MTypeDef2 { foo }
-//                                           ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:23:51: Error: The class 'A' can't be extended outside of its library because it's an interface class.
+// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:13:51: Error: The class 'A' can't be extended outside of its library because it's an interface class.
 // class ExtendsInterfaceClassTypedefOutside extends AOutsideTypedef {}
 //                                                   ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:25:46: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDefOutside with MOutsideTypedef {}
-//                                              ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:27:49: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDefOutside with MOutsideTypedef { foo }
-//                                                 ^
-//
 import self as self;
 import "main_lib.dart" as mai;
-import "dart:core" as core;
 
 import "org-dartlang-testcase:///main_lib.dart";
 
 typedef AOutsideTypedef = mai::A;
-typedef MOutsideTypedef = mai::M;
 class ExtendsInterfaceClassTypedef extends mai::A {
   synthetic constructor •() → self::ExtendsInterfaceClassTypedef
     : super mai::A::•()
@@ -56,83 +30,11 @@
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixinTypeDef&Object&MTypeDef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDef&Object&MTypeDef
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDef extends self::_MixInInterfaceMixinTypeDef&Object&MTypeDef {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDef
-    : super self::_MixInInterfaceMixinTypeDef&Object&MTypeDef::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDef extends self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDef> values = #C4;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDef foo = #C3;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDef
-    : super self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract class _MixInInterfaceMixinTypeDef2&Object&MTypeDef2 = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDef2 extends self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2 {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDef2
-    : super self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2 = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDef2 extends self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2 /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDef2> values = #C6;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDef2 foo = #C5;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDef2
-    : super self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
 class ExtendsInterfaceClassTypedefOutside extends mai::A {
   synthetic constructor •() → self::ExtendsInterfaceClassTypedefOutside
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDefOutside extends self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDefOutside
-    : super self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDefOutside extends self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDefOutside> values = #C8;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDefOutside foo = #C7;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDefOutside
-    : super self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
 
 library /*isNonNullableByDefault*/;
 import self as mai;
@@ -140,35 +42,8 @@
 
 typedef ATypeDef = mai::A;
 typedef ATypeDef2 = mai::A;
-typedef MTypeDef = mai::M;
-typedef MTypeDef2 = mai::M;
 interface class A extends core::Object {
   synthetic constructor •() → mai::A
     : super core::Object::•()
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
-}
-
-constants  {
-  #C1 = 0
-  #C2 = "foo"
-  #C3 = self::EnumMixInInterfaceMixinTypeDef {index:#C1, _name:#C2}
-  #C4 = <self::EnumMixInInterfaceMixinTypeDef*>[#C3]
-  #C5 = self::EnumMixInInterfaceMixinTypeDef2 {index:#C1, _name:#C2}
-  #C6 = <self::EnumMixInInterfaceMixinTypeDef2*>[#C5]
-  #C7 = self::EnumMixInInterfaceMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C8 = <self::EnumMixInInterfaceMixinTypeDefOutside*>[#C7]
-}
-
-
-Constructor coverage from constants:
-org-dartlang-testcase:///main.dart:
-- EnumMixInInterfaceMixinTypeDef. (from org-dartlang-testcase:///main.dart:13:6)
-- _EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef. (from org-dartlang-testcase:///main.dart:13:6)
-- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
-- EnumMixInInterfaceMixinTypeDef2. (from org-dartlang-testcase:///main.dart:17:6)
-- _EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2. (from org-dartlang-testcase:///main.dart:17:6)
-- EnumMixInInterfaceMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:27:6)
-- _EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef. (from org-dartlang-testcase:///main.dart:27:6)
diff --git a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.modular.expect b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.modular.expect
index f302466..5707437 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.modular.expect
@@ -10,42 +10,16 @@
 // class ExtendsInterfaceClassTypedef2 extends ATypeDef2 {}
 //                                             ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:11:39: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDef with MTypeDef {}
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:13:42: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDef with MTypeDef { foo }
-//                                          ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:15:40: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDef2 with MTypeDef2 {}
-//                                        ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:17:43: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDef2 with MTypeDef2 { foo }
-//                                           ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:23:51: Error: The class 'A' can't be extended outside of its library because it's an interface class.
+// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:13:51: Error: The class 'A' can't be extended outside of its library because it's an interface class.
 // class ExtendsInterfaceClassTypedefOutside extends AOutsideTypedef {}
 //                                                   ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:25:46: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDefOutside with MOutsideTypedef {}
-//                                              ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:27:49: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDefOutside with MOutsideTypedef { foo }
-//                                                 ^
-//
 import self as self;
 import "main_lib.dart" as mai;
-import "dart:core" as core;
 
 import "org-dartlang-testcase:///main_lib.dart";
 
 typedef AOutsideTypedef = mai::A;
-typedef MOutsideTypedef = mai::M;
 class ExtendsInterfaceClassTypedef extends mai::A {
   synthetic constructor •() → self::ExtendsInterfaceClassTypedef
     : super mai::A::•()
@@ -56,103 +30,8 @@
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixinTypeDef&Object&MTypeDef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDef&Object&MTypeDef
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDef extends self::_MixInInterfaceMixinTypeDef&Object&MTypeDef {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDef
-    : super self::_MixInInterfaceMixinTypeDef&Object&MTypeDef::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDef extends self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDef> values = #C4;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDef foo = #C3;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDef
-    : super self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract class _MixInInterfaceMixinTypeDef2&Object&MTypeDef2 = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDef2 extends self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2 {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDef2
-    : super self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2 = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDef2 extends self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2 /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDef2> values = #C6;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDef2 foo = #C5;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDef2
-    : super self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
 class ExtendsInterfaceClassTypedefOutside extends mai::A {
   synthetic constructor •() → self::ExtendsInterfaceClassTypedefOutside
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDefOutside extends self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDefOutside
-    : super self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDefOutside extends self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDefOutside> values = #C8;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDefOutside foo = #C7;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDefOutside
-    : super self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
-
-constants  {
-  #C1 = 0
-  #C2 = "foo"
-  #C3 = self::EnumMixInInterfaceMixinTypeDef {index:#C1, _name:#C2}
-  #C4 = <self::EnumMixInInterfaceMixinTypeDef*>[#C3]
-  #C5 = self::EnumMixInInterfaceMixinTypeDef2 {index:#C1, _name:#C2}
-  #C6 = <self::EnumMixInInterfaceMixinTypeDef2*>[#C5]
-  #C7 = self::EnumMixInInterfaceMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C8 = <self::EnumMixInInterfaceMixinTypeDefOutside*>[#C7]
-}
-
-
-Constructor coverage from constants:
-org-dartlang-testcase:///main.dart:
-- EnumMixInInterfaceMixinTypeDef. (from org-dartlang-testcase:///main.dart:13:6)
-- _EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef. (from org-dartlang-testcase:///main.dart:13:6)
-- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
-- EnumMixInInterfaceMixinTypeDef2. (from org-dartlang-testcase:///main.dart:17:6)
-- _EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2. (from org-dartlang-testcase:///main.dart:17:6)
-- EnumMixInInterfaceMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:27:6)
-- _EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef. (from org-dartlang-testcase:///main.dart:27:6)
diff --git a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.outline.expect b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.outline.expect
index b8e678b..0cb8d4d 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.outline.expect
@@ -10,42 +10,16 @@
 // class ExtendsInterfaceClassTypedef2 extends ATypeDef2 {}
 //                                             ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:11:39: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDef with MTypeDef {}
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:13:42: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDef with MTypeDef { foo }
-//                                          ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:15:40: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDef2 with MTypeDef2 {}
-//                                        ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:17:43: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDef2 with MTypeDef2 { foo }
-//                                           ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:23:51: Error: The class 'A' can't be extended outside of its library because it's an interface class.
+// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:13:51: Error: The class 'A' can't be extended outside of its library because it's an interface class.
 // class ExtendsInterfaceClassTypedefOutside extends AOutsideTypedef {}
 //                                                   ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:25:46: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDefOutside with MOutsideTypedef {}
-//                                              ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:27:49: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDefOutside with MOutsideTypedef { foo }
-//                                                 ^
-//
 import self as self;
 import "main_lib.dart" as mai;
-import "dart:core" as core;
 
 import "org-dartlang-testcase:///main_lib.dart";
 
 typedef AOutsideTypedef = mai::A;
-typedef MOutsideTypedef = mai::M;
 class ExtendsInterfaceClassTypedef extends mai::A {
   synthetic constructor •() → self::ExtendsInterfaceClassTypedef
     ;
@@ -54,76 +28,10 @@
   synthetic constructor •() → self::ExtendsInterfaceClassTypedef2
     ;
 }
-abstract class _MixInInterfaceMixinTypeDef&Object&MTypeDef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDef&Object&MTypeDef
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDef extends self::_MixInInterfaceMixinTypeDef&Object&MTypeDef {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDef
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDef extends self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDef> values = const <self::EnumMixInInterfaceMixinTypeDef>[self::EnumMixInInterfaceMixinTypeDef::foo];
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDef foo = const self::EnumMixInInterfaceMixinTypeDef::•(0, "foo");
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDef
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract class _MixInInterfaceMixinTypeDef2&Object&MTypeDef2 = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDef2 extends self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2 {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDef2
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2 = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDef2 extends self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2 /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDef2> values = const <self::EnumMixInInterfaceMixinTypeDef2>[self::EnumMixInInterfaceMixinTypeDef2::foo];
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDef2 foo = const self::EnumMixInInterfaceMixinTypeDef2::•(0, "foo");
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDef2
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
 class ExtendsInterfaceClassTypedefOutside extends mai::A {
   synthetic constructor •() → self::ExtendsInterfaceClassTypedefOutside
     ;
 }
-abstract class _MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef = core::Object with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDefOutside extends self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDefOutside
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef = core::_Enum with mai::M /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDefOutside extends self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDefOutside> values = const <self::EnumMixInInterfaceMixinTypeDefOutside>[self::EnumMixInInterfaceMixinTypeDefOutside::foo];
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDefOutside foo = const self::EnumMixInInterfaceMixinTypeDefOutside::•(0, "foo");
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDefOutside
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
 
 library /*isNonNullableByDefault*/;
 import self as mai;
@@ -131,21 +39,7 @@
 
 typedef ATypeDef = mai::A;
 typedef ATypeDef2 = mai::A;
-typedef MTypeDef = mai::M;
-typedef MTypeDef2 = mai::M;
 interface class A extends core::Object {
   synthetic constructor •() → mai::A
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
-}
-
-
-Extra constant evaluation status:
-Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:13:6 -> ListConstant(const <EnumMixInInterfaceMixinTypeDef*>[const EnumMixInInterfaceMixinTypeDef{}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:13:53 -> InstanceConstant(const EnumMixInInterfaceMixinTypeDef{})
-Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:17:6 -> ListConstant(const <EnumMixInInterfaceMixinTypeDef2*>[const EnumMixInInterfaceMixinTypeDef2{}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:17:55 -> InstanceConstant(const EnumMixInInterfaceMixinTypeDef2{})
-Evaluated: ListLiteral @ org-dartlang-testcase:///main.dart:27:6 -> ListConstant(const <EnumMixInInterfaceMixinTypeDefOutside*>[const EnumMixInInterfaceMixinTypeDefOutside{}])
-Evaluated: ConstructorInvocation @ org-dartlang-testcase:///main.dart:27:67 -> InstanceConstant(const EnumMixInInterfaceMixinTypeDefOutside{})
-Extra constant evaluation: evaluated: 21, effectively constant: 6
diff --git a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.transformed.expect b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.transformed.expect
index 1bbbf21..d0bc50c 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart.weak.transformed.expect
@@ -10,42 +10,16 @@
 // class ExtendsInterfaceClassTypedef2 extends ATypeDef2 {}
 //                                             ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:11:39: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDef with MTypeDef {}
-//                                       ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:13:42: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDef with MTypeDef { foo }
-//                                          ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:15:40: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDef2 with MTypeDef2 {}
-//                                        ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:17:43: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDef2 with MTypeDef2 { foo }
-//                                           ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:23:51: Error: The class 'A' can't be extended outside of its library because it's an interface class.
+// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:13:51: Error: The class 'A' can't be extended outside of its library because it's an interface class.
 // class ExtendsInterfaceClassTypedefOutside extends AOutsideTypedef {}
 //                                                   ^
 //
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:25:46: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// class MixInInterfaceMixinTypeDefOutside with MOutsideTypedef {}
-//                                              ^
-//
-// pkg/front_end/testcases/class_modifiers/interface/typedef/main.dart:27:49: Error: The mixin 'M' can't be mixed-in outside of its library because it's an interface mixin.
-// enum EnumMixInInterfaceMixinTypeDefOutside with MOutsideTypedef { foo }
-//                                                 ^
-//
 import self as self;
 import "main_lib.dart" as mai;
-import "dart:core" as core;
 
 import "org-dartlang-testcase:///main_lib.dart";
 
 typedef AOutsideTypedef = mai::A;
-typedef MOutsideTypedef = mai::M;
 class ExtendsInterfaceClassTypedef extends mai::A {
   synthetic constructor •() → self::ExtendsInterfaceClassTypedef
     : super mai::A::•()
@@ -56,83 +30,11 @@
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixinTypeDef&Object&MTypeDef extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDef&Object&MTypeDef
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDef extends self::_MixInInterfaceMixinTypeDef&Object&MTypeDef {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDef
-    : super self::_MixInInterfaceMixinTypeDef&Object&MTypeDef::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDef extends self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDef> values = #C4;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDef foo = #C3;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDef
-    : super self::_EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDef.${this.{core::_Enum::_name}{core::String}}";
-}
-abstract class _MixInInterfaceMixinTypeDef2&Object&MTypeDef2 extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDef2 extends self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2 {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDef2
-    : super self::_MixInInterfaceMixinTypeDef2&Object&MTypeDef2::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2 extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDef2 extends self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2 /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDef2> values = #C6;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDef2 foo = #C5;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDef2
-    : super self::_EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDef2.${this.{core::_Enum::_name}{core::String}}";
-}
 class ExtendsInterfaceClassTypedefOutside extends mai::A {
   synthetic constructor •() → self::ExtendsInterfaceClassTypedefOutside
     : super mai::A::•()
     ;
 }
-abstract class _MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef extends core::Object implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef
-    : super core::Object::•()
-    ;
-}
-class MixInInterfaceMixinTypeDefOutside extends self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef {
-  synthetic constructor •() → self::MixInInterfaceMixinTypeDefOutside
-    : super self::_MixInInterfaceMixinTypeDefOutside&Object&MOutsideTypedef::•()
-    ;
-}
-abstract class _EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef extends core::_Enum implements mai::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •(core::int index, core::String _name) → self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef
-    : super core::_Enum::•(index, _name)
-    ;
-}
-class EnumMixInInterfaceMixinTypeDefOutside extends self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef /*isEnum*/  {
-  static const field core::List<self::EnumMixInInterfaceMixinTypeDefOutside> values = #C8;
-  enum-element static const field self::EnumMixInInterfaceMixinTypeDefOutside foo = #C7;
-  const constructor •(core::int #index, core::String #name) → self::EnumMixInInterfaceMixinTypeDefOutside
-    : super self::_EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef::•(#index, #name)
-    ;
-  method _enumToString() → core::String
-    return "EnumMixInInterfaceMixinTypeDefOutside.${this.{core::_Enum::_name}{core::String}}";
-}
 
 library /*isNonNullableByDefault*/;
 import self as mai;
@@ -140,35 +42,8 @@
 
 typedef ATypeDef = mai::A;
 typedef ATypeDef2 = mai::A;
-typedef MTypeDef = mai::M;
-typedef MTypeDef2 = mai::M;
 interface class A extends core::Object {
   synthetic constructor •() → mai::A
     : super core::Object::•()
     ;
 }
-abstract interface class M extends core::Object /*isMixinDeclaration*/  {
-}
-
-constants  {
-  #C1 = 0
-  #C2 = "foo"
-  #C3 = self::EnumMixInInterfaceMixinTypeDef {index:#C1, _name:#C2}
-  #C4 = <self::EnumMixInInterfaceMixinTypeDef*>[#C3]
-  #C5 = self::EnumMixInInterfaceMixinTypeDef2 {index:#C1, _name:#C2}
-  #C6 = <self::EnumMixInInterfaceMixinTypeDef2*>[#C5]
-  #C7 = self::EnumMixInInterfaceMixinTypeDefOutside {index:#C1, _name:#C2}
-  #C8 = <self::EnumMixInInterfaceMixinTypeDefOutside*>[#C7]
-}
-
-
-Constructor coverage from constants:
-org-dartlang-testcase:///main.dart:
-- EnumMixInInterfaceMixinTypeDef. (from org-dartlang-testcase:///main.dart:13:6)
-- _EnumMixInInterfaceMixinTypeDef&_Enum&MTypeDef. (from org-dartlang-testcase:///main.dart:13:6)
-- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart)
-- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart)
-- EnumMixInInterfaceMixinTypeDef2. (from org-dartlang-testcase:///main.dart:17:6)
-- _EnumMixInInterfaceMixinTypeDef2&_Enum&MTypeDef2. (from org-dartlang-testcase:///main.dart:17:6)
-- EnumMixInInterfaceMixinTypeDefOutside. (from org-dartlang-testcase:///main.dart:27:6)
-- _EnumMixInInterfaceMixinTypeDefOutside&_Enum&MOutsideTypedef. (from org-dartlang-testcase:///main.dart:27:6)
diff --git a/pkg/front_end/testcases/class_modifiers/interface/typedef/main_lib.dart b/pkg/front_end/testcases/class_modifiers/interface/typedef/main_lib.dart
index ac89ab4..e9db7ac 100644
--- a/pkg/front_end/testcases/class_modifiers/interface/typedef/main_lib.dart
+++ b/pkg/front_end/testcases/class_modifiers/interface/typedef/main_lib.dart
@@ -7,9 +7,3 @@
 typedef ATypeDef = A;
 
 typedef ATypeDef2 = ATypeDef;
-
-interface mixin M {}
-
-typedef MTypeDef = M;
-
-typedef MTypeDef2 = MTypeDef;
diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart b/pkg/front_end/testcases/general/final_class_declaration.dart
index 771fa33..104887d 100644
--- a/pkg/front_end/testcases/general/final_class_declaration.dart
+++ b/pkg/front_end/testcases/general/final_class_declaration.dart
@@ -8,5 +8,5 @@
 
 abstract final class B {}
 
-final mixin M {}
+mixin M {}
 final class C = Object with M;
diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.strong.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.strong.expect
index 17cdd2d..9c0c049 100644
--- a/pkg/front_end/testcases/general/final_class_declaration.dart.strong.expect
+++ b/pkg/front_end/testcases/general/final_class_declaration.dart.strong.expect
@@ -18,14 +18,6 @@
 // // @dart=2.19
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// final mixin M {}
-// ^^^^^
-// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature.
-// // @dart=2.19
-// ^^^^^^^^^^^^^
-//
 // pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
 // final class C = Object with M;
diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.strong.transformed.expect
index 1356a8b..0775d20 100644
--- a/pkg/front_end/testcases/general/final_class_declaration.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/final_class_declaration.dart.strong.transformed.expect
@@ -18,14 +18,6 @@
 // // @dart=2.19
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// final mixin M {}
-// ^^^^^
-// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature.
-// // @dart=2.19
-// ^^^^^^^^^^^^^
-//
 // pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
 // final class C = Object with M;
diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.textual_outline.expect
index f7a9ed4..abfeb31 100644
--- a/pkg/front_end/testcases/general/final_class_declaration.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/final_class_declaration.dart.textual_outline.expect
@@ -1,6 +1,7 @@
 // @dart = 2.19
 final class A {}
+
 abstract final class B {}
-final
+
 mixin M {}
 final class C = Object with M;
diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.textual_outline_modelled.expect
index ab13521..2d96db5 100644
--- a/pkg/front_end/testcases/general/final_class_declaration.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/final_class_declaration.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
 // @dart = 2.19
 abstract final class B {}
+
 final class A {}
----- unknown chunk starts ----
-final
----- unknown chunk ends ----
+
 final class C = Object with M;
 mixin M {}
diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.expect
index 17cdd2d..9c0c049 100644
--- a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.expect
+++ b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.expect
@@ -18,14 +18,6 @@
 // // @dart=2.19
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// final mixin M {}
-// ^^^^^
-// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature.
-// // @dart=2.19
-// ^^^^^^^^^^^^^
-//
 // pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
 // final class C = Object with M;
diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.modular.expect
index 17cdd2d..9c0c049 100644
--- a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.modular.expect
@@ -18,14 +18,6 @@
 // // @dart=2.19
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// final mixin M {}
-// ^^^^^
-// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature.
-// // @dart=2.19
-// ^^^^^^^^^^^^^
-//
 // pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
 // final class C = Object with M;
diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.outline.expect
index 841c233..32aa075 100644
--- a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.outline.expect
@@ -18,14 +18,6 @@
 // // @dart=2.19
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// final mixin M {}
-// ^^^^^
-// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature.
-// // @dart=2.19
-// ^^^^^^^^^^^^^
-//
 // pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
 // final class C = Object with M;
diff --git a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.transformed.expect
index 1356a8b..0775d20 100644
--- a/pkg/front_end/testcases/general/final_class_declaration.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/final_class_declaration.dart.weak.transformed.expect
@@ -18,14 +18,6 @@
 // // @dart=2.19
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/final_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// final mixin M {}
-// ^^^^^
-// pkg/front_end/testcases/general/final_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature.
-// // @dart=2.19
-// ^^^^^^^^^^^^^
-//
 // pkg/front_end/testcases/general/final_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
 // final class C = Object with M;
diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart b/pkg/front_end/testcases/general/interface_class_declaration.dart
index 17c05c8..58da9df 100644
--- a/pkg/front_end/testcases/general/interface_class_declaration.dart
+++ b/pkg/front_end/testcases/general/interface_class_declaration.dart
@@ -8,5 +8,5 @@
 
 abstract interface class B {}
 
-interface mixin M {}
+mixin M {}
 interface class C = Object with M;
diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.expect
index 32e8bb1..b3c9a6e 100644
--- a/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.expect
+++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.expect
@@ -18,14 +18,6 @@
 // // @dart=2.19
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// interface mixin M {}
-// ^^^^^^^^^
-// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature.
-// // @dart=2.19
-// ^^^^^^^^^^^^^
-//
 // pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
 // interface class C = Object with M;
diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.transformed.expect
index 5ebab4a..40fed0e 100644
--- a/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.strong.transformed.expect
@@ -18,14 +18,6 @@
 // // @dart=2.19
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// interface mixin M {}
-// ^^^^^^^^^
-// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature.
-// // @dart=2.19
-// ^^^^^^^^^^^^^
-//
 // pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
 // interface class C = Object with M;
diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline.expect
index 5435672..524f2dc 100644
--- a/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline.expect
@@ -1,6 +1,7 @@
 // @dart = 2.19
 interface class A {}
+
 abstract interface class B {}
-interface
+
 mixin M {}
 interface class C = Object with M;
diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline_modelled.expect
index 4fb6b14..52d6c76 100644
--- a/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
 // @dart = 2.19
 abstract interface class B {}
+
 interface class A {}
----- unknown chunk starts ----
-interface
----- unknown chunk ends ----
+
 interface class C = Object with M;
 mixin M {}
diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.expect
index 32e8bb1..b3c9a6e 100644
--- a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.expect
+++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.expect
@@ -18,14 +18,6 @@
 // // @dart=2.19
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// interface mixin M {}
-// ^^^^^^^^^
-// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature.
-// // @dart=2.19
-// ^^^^^^^^^^^^^
-//
 // pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
 // interface class C = Object with M;
diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.modular.expect
index 32e8bb1..b3c9a6e 100644
--- a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.modular.expect
@@ -18,14 +18,6 @@
 // // @dart=2.19
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// interface mixin M {}
-// ^^^^^^^^^
-// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature.
-// // @dart=2.19
-// ^^^^^^^^^^^^^
-//
 // pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
 // interface class C = Object with M;
diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.outline.expect
index 68c962a..2c452da 100644
--- a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.outline.expect
@@ -18,14 +18,6 @@
 // // @dart=2.19
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// interface mixin M {}
-// ^^^^^^^^^
-// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature.
-// // @dart=2.19
-// ^^^^^^^^^^^^^
-//
 // pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
 // interface class C = Object with M;
diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.transformed.expect
index 5ebab4a..40fed0e 100644
--- a/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.weak.transformed.expect
@@ -18,14 +18,6 @@
 // // @dart=2.19
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/interface_class_declaration.dart:11:1: Error: The 'class-modifiers' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// interface mixin M {}
-// ^^^^^^^^^
-// pkg/front_end/testcases/general/interface_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature.
-// // @dart=2.19
-// ^^^^^^^^^^^^^
-//
 // pkg/front_end/testcases/general/interface_class_declaration.dart:12:1: Error: The 'class-modifiers' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
 // interface class C = Object with M;
diff --git a/pkg/front_end/testcases/general/sealed_class_declaration.dart b/pkg/front_end/testcases/general/sealed_class_declaration.dart
index a1272c8..a38564cb 100644
--- a/pkg/front_end/testcases/general/sealed_class_declaration.dart
+++ b/pkg/front_end/testcases/general/sealed_class_declaration.dart
@@ -6,7 +6,5 @@
 
 sealed class A {}
 
-sealed mixin M {}
-
-mixin MM {}
-sealed class B = Object with MM;
\ No newline at end of file
+mixin M {}
+sealed class B = Object with M;
diff --git a/pkg/front_end/testcases/general/sealed_class_declaration.dart.strong.expect b/pkg/front_end/testcases/general/sealed_class_declaration.dart.strong.expect
index e488359..c044b37 100644
--- a/pkg/front_end/testcases/general/sealed_class_declaration.dart.strong.expect
+++ b/pkg/front_end/testcases/general/sealed_class_declaration.dart.strong.expect
@@ -10,17 +10,9 @@
 // // @dart=2.18
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:9:1: Error: The 'sealed-class' language feature is disabled for this library.
+// pkg/front_end/testcases/general/sealed_class_declaration.dart:10:1: Error: The 'sealed-class' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// sealed mixin M {}
-// ^^^^^^
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'sealed-class' language feature.
-// // @dart=2.18
-// ^^^^^^^^^^^^^
-//
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:12:1: Error: The 'sealed-class' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// sealed class B = Object with MM;
+// sealed class B = Object with M;
 // ^^^^^^
 // pkg/front_end/testcases/general/sealed_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'sealed-class' language feature.
 // // @dart=2.18
@@ -36,9 +28,7 @@
 }
 abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
-abstract class MM extends core::Object /*isMixinDeclaration*/  {
-}
-class B = core::Object with self::MM /*hasConstConstructor*/  {
+class B = core::Object with self::M /*hasConstConstructor*/  {
   const synthetic constructor •() → self::B
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/general/sealed_class_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/general/sealed_class_declaration.dart.strong.transformed.expect
index d53cda7..daece4f 100644
--- a/pkg/front_end/testcases/general/sealed_class_declaration.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/general/sealed_class_declaration.dart.strong.transformed.expect
@@ -10,17 +10,9 @@
 // // @dart=2.18
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:9:1: Error: The 'sealed-class' language feature is disabled for this library.
+// pkg/front_end/testcases/general/sealed_class_declaration.dart:10:1: Error: The 'sealed-class' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// sealed mixin M {}
-// ^^^^^^
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'sealed-class' language feature.
-// // @dart=2.18
-// ^^^^^^^^^^^^^
-//
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:12:1: Error: The 'sealed-class' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// sealed class B = Object with MM;
+// sealed class B = Object with M;
 // ^^^^^^
 // pkg/front_end/testcases/general/sealed_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'sealed-class' language feature.
 // // @dart=2.18
@@ -36,9 +28,7 @@
 }
 abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
-abstract class MM extends core::Object /*isMixinDeclaration*/  {
-}
-class B extends core::Object implements self::MM /*isEliminatedMixin,hasConstConstructor*/  {
+class B extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/  {
   const synthetic constructor •() → self::B
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/general/sealed_class_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/general/sealed_class_declaration.dart.textual_outline.expect
index d4a95f9..1c99063 100644
--- a/pkg/front_end/testcases/general/sealed_class_declaration.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/sealed_class_declaration.dart.textual_outline.expect
@@ -1,6 +1,4 @@
 // @dart = 2.18
 sealed class A {}
-sealed
 mixin M {}
-mixin MM {}
-sealed class B = Object with MM;
+sealed class B = Object with M;
diff --git a/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.expect b/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.expect
index e488359..c044b37 100644
--- a/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.expect
+++ b/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.expect
@@ -10,17 +10,9 @@
 // // @dart=2.18
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:9:1: Error: The 'sealed-class' language feature is disabled for this library.
+// pkg/front_end/testcases/general/sealed_class_declaration.dart:10:1: Error: The 'sealed-class' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// sealed mixin M {}
-// ^^^^^^
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'sealed-class' language feature.
-// // @dart=2.18
-// ^^^^^^^^^^^^^
-//
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:12:1: Error: The 'sealed-class' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// sealed class B = Object with MM;
+// sealed class B = Object with M;
 // ^^^^^^
 // pkg/front_end/testcases/general/sealed_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'sealed-class' language feature.
 // // @dart=2.18
@@ -36,9 +28,7 @@
 }
 abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
-abstract class MM extends core::Object /*isMixinDeclaration*/  {
-}
-class B = core::Object with self::MM /*hasConstConstructor*/  {
+class B = core::Object with self::M /*hasConstConstructor*/  {
   const synthetic constructor •() → self::B
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.modular.expect
index e488359..c044b37 100644
--- a/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.modular.expect
@@ -10,17 +10,9 @@
 // // @dart=2.18
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:9:1: Error: The 'sealed-class' language feature is disabled for this library.
+// pkg/front_end/testcases/general/sealed_class_declaration.dart:10:1: Error: The 'sealed-class' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// sealed mixin M {}
-// ^^^^^^
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'sealed-class' language feature.
-// // @dart=2.18
-// ^^^^^^^^^^^^^
-//
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:12:1: Error: The 'sealed-class' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// sealed class B = Object with MM;
+// sealed class B = Object with M;
 // ^^^^^^
 // pkg/front_end/testcases/general/sealed_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'sealed-class' language feature.
 // // @dart=2.18
@@ -36,9 +28,7 @@
 }
 abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
-abstract class MM extends core::Object /*isMixinDeclaration*/  {
-}
-class B = core::Object with self::MM /*hasConstConstructor*/  {
+class B = core::Object with self::M /*hasConstConstructor*/  {
   const synthetic constructor •() → self::B
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.outline.expect
index cbfb7fe..f9f89a3 100644
--- a/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.outline.expect
@@ -10,17 +10,9 @@
 // // @dart=2.18
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:9:1: Error: The 'sealed-class' language feature is disabled for this library.
+// pkg/front_end/testcases/general/sealed_class_declaration.dart:10:1: Error: The 'sealed-class' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// sealed mixin M {}
-// ^^^^^^
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'sealed-class' language feature.
-// // @dart=2.18
-// ^^^^^^^^^^^^^
-//
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:12:1: Error: The 'sealed-class' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// sealed class B = Object with MM;
+// sealed class B = Object with M;
 // ^^^^^^
 // pkg/front_end/testcases/general/sealed_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'sealed-class' language feature.
 // // @dart=2.18
@@ -35,9 +27,7 @@
 }
 abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
-abstract class MM extends core::Object /*isMixinDeclaration*/  {
-}
-class B = core::Object with self::MM /*hasConstConstructor*/  {
+class B = core::Object with self::M /*hasConstConstructor*/  {
   const synthetic constructor •() → self::B
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.transformed.expect
index d53cda7..daece4f 100644
--- a/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/sealed_class_declaration.dart.weak.transformed.expect
@@ -10,17 +10,9 @@
 // // @dart=2.18
 // ^^^^^^^^^^^^^
 //
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:9:1: Error: The 'sealed-class' language feature is disabled for this library.
+// pkg/front_end/testcases/general/sealed_class_declaration.dart:10:1: Error: The 'sealed-class' language feature is disabled for this library.
 // Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// sealed mixin M {}
-// ^^^^^^
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'sealed-class' language feature.
-// // @dart=2.18
-// ^^^^^^^^^^^^^
-//
-// pkg/front_end/testcases/general/sealed_class_declaration.dart:12:1: Error: The 'sealed-class' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher.
-// sealed class B = Object with MM;
+// sealed class B = Object with M;
 // ^^^^^^
 // pkg/front_end/testcases/general/sealed_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'sealed-class' language feature.
 // // @dart=2.18
@@ -36,9 +28,7 @@
 }
 abstract class M extends core::Object /*isMixinDeclaration*/  {
 }
-abstract class MM extends core::Object /*isMixinDeclaration*/  {
-}
-class B extends core::Object implements self::MM /*isEliminatedMixin,hasConstConstructor*/  {
+class B extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/  {
   const synthetic constructor •() → self::B
     : super core::Object::•()
     ;
diff --git a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart
index c097860..c81e274 100644
--- a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart
+++ b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart
@@ -6,6 +6,4 @@
 
 mixin MClass on SealedClass {}
 
-mixin MMixin on SealedMixin {}
-
-mixin MClassMultiple on SealedClass, SealedMixin {}
+mixin MClassMultiple on SealedClass, SealedClass2 {}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.strong.expect b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.strong.expect
index e6852e0..7897cf8f 100644
--- a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.strong.expect
+++ b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.strong.expect
@@ -7,14 +7,12 @@
 
 abstract class MClass extends mai::SealedClass /*isMixinDeclaration*/  {
 }
-abstract class MMixin extends mai::SealedMixin /*isMixinDeclaration*/  {
-}
-abstract class _MClassMultiple&SealedClass&SealedMixin extends core::Object implements mai::SealedClass, mai::SealedMixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MClassMultiple&SealedClass&SealedMixin
+abstract class _MClassMultiple&SealedClass&SealedClass2 extends core::Object implements mai::SealedClass, mai::SealedClass2 /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MClassMultiple&SealedClass&SealedClass2
     : super core::Object::•()
     ;
 }
-abstract class MClassMultiple extends self::_MClassMultiple&SealedClass&SealedMixin /*isMixinDeclaration*/  {
+abstract class MClassMultiple extends self::_MClassMultiple&SealedClass&SealedClass2 /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -26,5 +24,8 @@
     : super core::Object::•()
     ;
 }
-abstract sealed class SealedMixin extends core::Object /*isMixinDeclaration*/  {
+abstract sealed class SealedClass2 extends core::Object {
+  synthetic constructor •() → mai::SealedClass2
+    : super core::Object::•()
+    ;
 }
diff --git a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.strong.transformed.expect b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.strong.transformed.expect
index e6852e0..7897cf8f 100644
--- a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.strong.transformed.expect
@@ -7,14 +7,12 @@
 
 abstract class MClass extends mai::SealedClass /*isMixinDeclaration*/  {
 }
-abstract class MMixin extends mai::SealedMixin /*isMixinDeclaration*/  {
-}
-abstract class _MClassMultiple&SealedClass&SealedMixin extends core::Object implements mai::SealedClass, mai::SealedMixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MClassMultiple&SealedClass&SealedMixin
+abstract class _MClassMultiple&SealedClass&SealedClass2 extends core::Object implements mai::SealedClass, mai::SealedClass2 /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MClassMultiple&SealedClass&SealedClass2
     : super core::Object::•()
     ;
 }
-abstract class MClassMultiple extends self::_MClassMultiple&SealedClass&SealedMixin /*isMixinDeclaration*/  {
+abstract class MClassMultiple extends self::_MClassMultiple&SealedClass&SealedClass2 /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -26,5 +24,8 @@
     : super core::Object::•()
     ;
 }
-abstract sealed class SealedMixin extends core::Object /*isMixinDeclaration*/  {
+abstract sealed class SealedClass2 extends core::Object {
+  synthetic constructor •() → mai::SealedClass2
+    : super core::Object::•()
+    ;
 }
diff --git a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.textual_outline.expect b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.textual_outline.expect
index 63f4729..4df4cf9 100644
--- a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.textual_outline.expect
@@ -1,5 +1,4 @@
 import 'main_lib.dart';
 
 mixin MClass on SealedClass {}
-mixin MMixin on SealedMixin {}
-mixin MClassMultiple on SealedClass, SealedMixin {}
+mixin MClassMultiple on SealedClass, SealedClass2 {}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.textual_outline_modelled.expect
index 6dba40c..4df4cf9 100644
--- a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
 import 'main_lib.dart';
 
 mixin MClass on SealedClass {}
-mixin MClassMultiple on SealedClass, SealedMixin {}
-mixin MMixin on SealedMixin {}
+mixin MClassMultiple on SealedClass, SealedClass2 {}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.expect b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.expect
index e6852e0..7897cf8f 100644
--- a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.expect
+++ b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.expect
@@ -7,14 +7,12 @@
 
 abstract class MClass extends mai::SealedClass /*isMixinDeclaration*/  {
 }
-abstract class MMixin extends mai::SealedMixin /*isMixinDeclaration*/  {
-}
-abstract class _MClassMultiple&SealedClass&SealedMixin extends core::Object implements mai::SealedClass, mai::SealedMixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MClassMultiple&SealedClass&SealedMixin
+abstract class _MClassMultiple&SealedClass&SealedClass2 extends core::Object implements mai::SealedClass, mai::SealedClass2 /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MClassMultiple&SealedClass&SealedClass2
     : super core::Object::•()
     ;
 }
-abstract class MClassMultiple extends self::_MClassMultiple&SealedClass&SealedMixin /*isMixinDeclaration*/  {
+abstract class MClassMultiple extends self::_MClassMultiple&SealedClass&SealedClass2 /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -26,5 +24,8 @@
     : super core::Object::•()
     ;
 }
-abstract sealed class SealedMixin extends core::Object /*isMixinDeclaration*/  {
+abstract sealed class SealedClass2 extends core::Object {
+  synthetic constructor •() → mai::SealedClass2
+    : super core::Object::•()
+    ;
 }
diff --git a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.modular.expect b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.modular.expect
index 7da05e8..a31caf7 100644
--- a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.modular.expect
@@ -7,12 +7,10 @@
 
 abstract class MClass extends mai::SealedClass /*isMixinDeclaration*/  {
 }
-abstract class MMixin extends mai::SealedMixin /*isMixinDeclaration*/  {
-}
-abstract class _MClassMultiple&SealedClass&SealedMixin extends core::Object implements mai::SealedClass, mai::SealedMixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MClassMultiple&SealedClass&SealedMixin
+abstract class _MClassMultiple&SealedClass&SealedClass2 extends core::Object implements mai::SealedClass, mai::SealedClass2 /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MClassMultiple&SealedClass&SealedClass2
     : super core::Object::•()
     ;
 }
-abstract class MClassMultiple extends self::_MClassMultiple&SealedClass&SealedMixin /*isMixinDeclaration*/  {
+abstract class MClassMultiple extends self::_MClassMultiple&SealedClass&SealedClass2 /*isMixinDeclaration*/  {
 }
diff --git a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.outline.expect b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.outline.expect
index 11f6d02..08ee280 100644
--- a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.outline.expect
@@ -7,13 +7,11 @@
 
 abstract class MClass extends mai::SealedClass /*isMixinDeclaration*/  {
 }
-abstract class MMixin extends mai::SealedMixin /*isMixinDeclaration*/  {
-}
-abstract class _MClassMultiple&SealedClass&SealedMixin extends core::Object implements mai::SealedClass, mai::SealedMixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MClassMultiple&SealedClass&SealedMixin
+abstract class _MClassMultiple&SealedClass&SealedClass2 extends core::Object implements mai::SealedClass, mai::SealedClass2 /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MClassMultiple&SealedClass&SealedClass2
     ;
 }
-abstract class MClassMultiple extends self::_MClassMultiple&SealedClass&SealedMixin /*isMixinDeclaration*/  {
+abstract class MClassMultiple extends self::_MClassMultiple&SealedClass&SealedClass2 /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -24,5 +22,7 @@
   synthetic constructor •() → mai::SealedClass
     ;
 }
-abstract sealed class SealedMixin extends core::Object /*isMixinDeclaration*/  {
+abstract sealed class SealedClass2 extends core::Object {
+  synthetic constructor •() → mai::SealedClass2
+    ;
 }
diff --git a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.transformed.expect b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.transformed.expect
index e6852e0..7897cf8f 100644
--- a/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/sealed_class/mixin_on/main.dart.weak.transformed.expect
@@ -7,14 +7,12 @@
 
 abstract class MClass extends mai::SealedClass /*isMixinDeclaration*/  {
 }
-abstract class MMixin extends mai::SealedMixin /*isMixinDeclaration*/  {
-}
-abstract class _MClassMultiple&SealedClass&SealedMixin extends core::Object implements mai::SealedClass, mai::SealedMixin /*isAnonymousMixin*/  {
-  synthetic constructor •() → self::_MClassMultiple&SealedClass&SealedMixin
+abstract class _MClassMultiple&SealedClass&SealedClass2 extends core::Object implements mai::SealedClass, mai::SealedClass2 /*isAnonymousMixin*/  {
+  synthetic constructor •() → self::_MClassMultiple&SealedClass&SealedClass2
     : super core::Object::•()
     ;
 }
-abstract class MClassMultiple extends self::_MClassMultiple&SealedClass&SealedMixin /*isMixinDeclaration*/  {
+abstract class MClassMultiple extends self::_MClassMultiple&SealedClass&SealedClass2 /*isMixinDeclaration*/  {
 }
 
 library /*isNonNullableByDefault*/;
@@ -26,5 +24,8 @@
     : super core::Object::•()
     ;
 }
-abstract sealed class SealedMixin extends core::Object /*isMixinDeclaration*/  {
+abstract sealed class SealedClass2 extends core::Object {
+  synthetic constructor •() → mai::SealedClass2
+    : super core::Object::•()
+    ;
 }
diff --git a/pkg/front_end/testcases/sealed_class/mixin_on/main_lib.dart b/pkg/front_end/testcases/sealed_class/mixin_on/main_lib.dart
index 6d3377e..6f884f2 100644
--- a/pkg/front_end/testcases/sealed_class/mixin_on/main_lib.dart
+++ b/pkg/front_end/testcases/sealed_class/mixin_on/main_lib.dart
@@ -3,4 +3,5 @@
 // BSD-style license that can be found in the LICENSE file.
 
 sealed class SealedClass {}
-sealed mixin SealedMixin {}
+
+sealed class SealedClass2 {}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart b/pkg/front_end/testcases/sealed_class/mixin_with/main.dart
deleted file mode 100644
index 452c9e0..0000000
--- a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart
+++ /dev/null
@@ -1,7 +0,0 @@
-// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-import 'main_lib.dart';
-
-class Class1 with Sealed {}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.strong.expect b/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.strong.expect
deleted file mode 100644
index 90103ef..0000000
--- a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.strong.expect
+++ /dev/null
@@ -1,31 +0,0 @@
-library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/sealed_class/mixin_with/main.dart:7:19: Error: The mixin 'Sealed' can't be mixed in outside of its library because it's a sealed mixin.
-// class Class1 with Sealed {}
-//                   ^
-//
-import self as self;
-import "dart:core" as core;
-import "main_lib.dart" as mai;
-
-import "org-dartlang-testcase:///main_lib.dart";
-
-abstract sealed class _Class1&Object&Sealed = core::Object with mai::Sealed /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Class1&Object&Sealed
-    : super core::Object::•()
-    ;
-}
-class Class1 extends self::_Class1&Object&Sealed {
-  synthetic constructor •() → self::Class1
-    : super self::_Class1&Object&Sealed::•()
-    ;
-}
-
-library /*isNonNullableByDefault*/;
-import self as mai;
-import "dart:core" as core;
-
-abstract sealed class Sealed extends core::Object /*isMixinDeclaration*/  {
-}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.strong.transformed.expect b/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.strong.transformed.expect
deleted file mode 100644
index b7ef75a0..0000000
--- a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.strong.transformed.expect
+++ /dev/null
@@ -1,31 +0,0 @@
-library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/sealed_class/mixin_with/main.dart:7:19: Error: The mixin 'Sealed' can't be mixed in outside of its library because it's a sealed mixin.
-// class Class1 with Sealed {}
-//                   ^
-//
-import self as self;
-import "dart:core" as core;
-import "main_lib.dart" as mai;
-
-import "org-dartlang-testcase:///main_lib.dart";
-
-abstract sealed class _Class1&Object&Sealed extends core::Object implements mai::Sealed /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Class1&Object&Sealed
-    : super core::Object::•()
-    ;
-}
-class Class1 extends self::_Class1&Object&Sealed {
-  synthetic constructor •() → self::Class1
-    : super self::_Class1&Object&Sealed::•()
-    ;
-}
-
-library /*isNonNullableByDefault*/;
-import self as mai;
-import "dart:core" as core;
-
-abstract sealed class Sealed extends core::Object /*isMixinDeclaration*/  {
-}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.textual_outline.expect b/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.textual_outline.expect
deleted file mode 100644
index a4fc591..0000000
--- a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.textual_outline.expect
+++ /dev/null
@@ -1,3 +0,0 @@
-import 'main_lib.dart';
-
-class Class1 with Sealed {}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.textual_outline_modelled.expect
deleted file mode 100644
index a4fc591..0000000
--- a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,3 +0,0 @@
-import 'main_lib.dart';
-
-class Class1 with Sealed {}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.weak.expect b/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.weak.expect
deleted file mode 100644
index 90103ef..0000000
--- a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.weak.expect
+++ /dev/null
@@ -1,31 +0,0 @@
-library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/sealed_class/mixin_with/main.dart:7:19: Error: The mixin 'Sealed' can't be mixed in outside of its library because it's a sealed mixin.
-// class Class1 with Sealed {}
-//                   ^
-//
-import self as self;
-import "dart:core" as core;
-import "main_lib.dart" as mai;
-
-import "org-dartlang-testcase:///main_lib.dart";
-
-abstract sealed class _Class1&Object&Sealed = core::Object with mai::Sealed /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Class1&Object&Sealed
-    : super core::Object::•()
-    ;
-}
-class Class1 extends self::_Class1&Object&Sealed {
-  synthetic constructor •() → self::Class1
-    : super self::_Class1&Object&Sealed::•()
-    ;
-}
-
-library /*isNonNullableByDefault*/;
-import self as mai;
-import "dart:core" as core;
-
-abstract sealed class Sealed extends core::Object /*isMixinDeclaration*/  {
-}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.weak.modular.expect b/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.weak.modular.expect
deleted file mode 100644
index 6b5c11f..0000000
--- a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.weak.modular.expect
+++ /dev/null
@@ -1,24 +0,0 @@
-library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/sealed_class/mixin_with/main.dart:7:19: Error: The mixin 'Sealed' can't be mixed in outside of its library because it's a sealed mixin.
-// class Class1 with Sealed {}
-//                   ^
-//
-import self as self;
-import "dart:core" as core;
-import "main_lib.dart" as mai;
-
-import "org-dartlang-testcase:///main_lib.dart";
-
-abstract sealed class _Class1&Object&Sealed = core::Object with mai::Sealed /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Class1&Object&Sealed
-    : super core::Object::•()
-    ;
-}
-class Class1 extends self::_Class1&Object&Sealed {
-  synthetic constructor •() → self::Class1
-    : super self::_Class1&Object&Sealed::•()
-    ;
-}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.weak.outline.expect b/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.weak.outline.expect
deleted file mode 100644
index 34829b4..0000000
--- a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.weak.outline.expect
+++ /dev/null
@@ -1,30 +0,0 @@
-library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/sealed_class/mixin_with/main.dart:7:19: Error: The mixin 'Sealed' can't be mixed in outside of its library because it's a sealed mixin.
-// class Class1 with Sealed {}
-//                   ^
-//
-import self as self;
-import "dart:core" as core;
-import "main_lib.dart" as mai;
-
-import "org-dartlang-testcase:///main_lib.dart";
-
-abstract sealed class _Class1&Object&Sealed = core::Object with mai::Sealed /*isAnonymousMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Class1&Object&Sealed
-    : super core::Object::•()
-    ;
-}
-class Class1 extends self::_Class1&Object&Sealed {
-  synthetic constructor •() → self::Class1
-    ;
-}
-
-library /*isNonNullableByDefault*/;
-import self as mai;
-import "dart:core" as core;
-
-abstract sealed class Sealed extends core::Object /*isMixinDeclaration*/  {
-}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.weak.transformed.expect b/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.weak.transformed.expect
deleted file mode 100644
index b7ef75a0..0000000
--- a/pkg/front_end/testcases/sealed_class/mixin_with/main.dart.weak.transformed.expect
+++ /dev/null
@@ -1,31 +0,0 @@
-library /*isNonNullableByDefault*/;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/sealed_class/mixin_with/main.dart:7:19: Error: The mixin 'Sealed' can't be mixed in outside of its library because it's a sealed mixin.
-// class Class1 with Sealed {}
-//                   ^
-//
-import self as self;
-import "dart:core" as core;
-import "main_lib.dart" as mai;
-
-import "org-dartlang-testcase:///main_lib.dart";
-
-abstract sealed class _Class1&Object&Sealed extends core::Object implements mai::Sealed /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/  {
-  const synthetic constructor •() → self::_Class1&Object&Sealed
-    : super core::Object::•()
-    ;
-}
-class Class1 extends self::_Class1&Object&Sealed {
-  synthetic constructor •() → self::Class1
-    : super self::_Class1&Object&Sealed::•()
-    ;
-}
-
-library /*isNonNullableByDefault*/;
-import self as mai;
-import "dart:core" as core;
-
-abstract sealed class Sealed extends core::Object /*isMixinDeclaration*/  {
-}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_with/main_lib.dart b/pkg/front_end/testcases/sealed_class/mixin_with/main_lib.dart
deleted file mode 100644
index 581e7c9..0000000
--- a/pkg/front_end/testcases/sealed_class/mixin_with/main_lib.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-sealed mixin Sealed {}
diff --git a/pkg/front_end/testcases/sealed_class/mixin_with/test.options b/pkg/front_end/testcases/sealed_class/mixin_with/test.options
deleted file mode 100644
index bfe6dc8..0000000
--- a/pkg/front_end/testcases/sealed_class/mixin_with/test.options
+++ /dev/null
@@ -1 +0,0 @@
-main_lib.dart
\ No newline at end of file
diff --git a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart b/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart
deleted file mode 100644
index e192b51..0000000
--- a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart
+++ /dev/null
@@ -1,5 +0,0 @@
-// Copyright (c) 2022, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-sealed mixin M {}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.strong.expect b/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.strong.expect
deleted file mode 100644
index 797572b4..0000000
--- a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.strong.expect
+++ /dev/null
@@ -1,6 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-
-abstract sealed class M extends core::Object /*isMixinDeclaration*/  {
-}
diff --git a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.strong.transformed.expect
deleted file mode 100644
index 797572b4..0000000
--- a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.strong.transformed.expect
+++ /dev/null
@@ -1,6 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-
-abstract sealed class M extends core::Object /*isMixinDeclaration*/  {
-}
diff --git a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.textual_outline.expect
deleted file mode 100644
index 86582b2f..0000000
--- a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.textual_outline.expect
+++ /dev/null
@@ -1,2 +0,0 @@
-sealed
-mixin M {}
diff --git a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.textual_outline_modelled.expect
deleted file mode 100644
index faaac10..0000000
--- a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.textual_outline_modelled.expect
+++ /dev/null
@@ -1,4 +0,0 @@
----- unknown chunk starts ----
-sealed
----- unknown chunk ends ----
-mixin M {}
diff --git a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.weak.expect b/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.weak.expect
deleted file mode 100644
index 797572b4..0000000
--- a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.weak.expect
+++ /dev/null
@@ -1,6 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-
-abstract sealed class M extends core::Object /*isMixinDeclaration*/  {
-}
diff --git a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.weak.modular.expect
deleted file mode 100644
index 797572b4..0000000
--- a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.weak.modular.expect
+++ /dev/null
@@ -1,6 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-
-abstract sealed class M extends core::Object /*isMixinDeclaration*/  {
-}
diff --git a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.weak.outline.expect
deleted file mode 100644
index 797572b4..0000000
--- a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.weak.outline.expect
+++ /dev/null
@@ -1,6 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-
-abstract sealed class M extends core::Object /*isMixinDeclaration*/  {
-}
diff --git a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.weak.transformed.expect
deleted file mode 100644
index 797572b4..0000000
--- a/pkg/front_end/testcases/sealed_class/sealed_mixin_declaration.dart.weak.transformed.expect
+++ /dev/null
@@ -1,6 +0,0 @@
-library /*isNonNullableByDefault*/;
-import self as self;
-import "dart:core" as core;
-
-abstract sealed class M extends core::Object /*isMixinDeclaration*/  {
-}
diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status
index 5de6b24..326cb60 100644
--- a/pkg/front_end/testcases/textual_outline.status
+++ b/pkg/front_end/testcases/textual_outline.status
@@ -21,19 +21,6 @@
 regress/issue_39091_2: EmptyOutput
 regress/utf_16_le_content.crash: EmptyOutput
 
-# TODO(rnystrom): These tests are using modifiers that are no longer valid on
-# mixins. The formatter no longer allows them. When the tests are updated to no
-# longer use those disallowed modifiers, the formatter crashes should be
-# resolved.
-class_modifiers/anonymous_mixin: FormatterCrash
-class_modifiers/final/final_class_declaration: FormatterCrash
-class_modifiers/final/final_subtype_not_base_final_sealed: FormatterCrash
-class_modifiers/final/outside_library/main: FormatterCrash
-class_modifiers/interface/interface_class_declaration: FormatterCrash
-general/final_class_declaration: FormatterCrash
-general/interface_class_declaration: FormatterCrash
-sealed_class/sealed_mixin_declaration: FormatterCrash
-
 class_modifiers/mixin/mixin_class_invalid_modifiers: FormatterCrash
 const_functions/const_functions_const_ctor: FormatterCrash
 const_functions/const_functions_const_ctor_error: FormatterCrash