[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