diff --git a/pkg/_fe_analyzer_shared/lib/src/experiments/flags.dart b/pkg/_fe_analyzer_shared/lib/src/experiments/flags.dart index f1125e57373..ce10d051f33 100644 --- a/pkg/_fe_analyzer_shared/lib/src/experiments/flags.dart +++ b/pkg/_fe_analyzer_shared/lib/src/experiments/flags.dart @@ -11,7 +11,7 @@ enum ExperimentalFlag { classModifiers( name: 'class-modifiers', - isEnabledByDefault: false, + isEnabledByDefault: true, isExpired: false, experimentEnabledVersion: const Version(3, 0), experimentReleasedVersion: const Version(3, 0)), @@ -133,11 +133,11 @@ enum ExperimentalFlag { isEnabledByDefault: false, isExpired: false, experimentEnabledVersion: const Version(3, 0), - experimentReleasedVersion: const Version(2, 19)), + experimentReleasedVersion: const Version(3, 0)), sealedClass( name: 'sealed-class', - isEnabledByDefault: false, + isEnabledByDefault: true, isExpired: false, experimentEnabledVersion: const Version(3, 0), experimentReleasedVersion: const Version(3, 0)), diff --git a/pkg/_fe_analyzer_shared/test/inheritance/data/function.dart b/pkg/_fe_analyzer_shared/test/inheritance/data/function.dart index 3e58786a7be..d1ef41df3a5 100644 --- a/pkg/_fe_analyzer_shared/test/inheritance/data/function.dart +++ b/pkg/_fe_analyzer_shared/test/inheritance/data/function.dart @@ -5,21 +5,26 @@ /*library: nnbd=true*/ /*class: A:A,Object*/ -class A implements Function {} +class /*cfe|cfe:builder.error: SubtypeOfBaseOrFinalIsNotBaseFinalOrSealed*/ A + implements /*analyzer.error: CompileTimeErrorCode.FINAL_CLASS_IMPLEMENTED_OUTSIDE_OF_LIBRARY*/ + /*cfe|cfe:builder.error: FinalClassImplementedOutsideOfLibrary*/ Function {} /*class: B:B,Object*/ -class B extends Function {} +class /*cfe|cfe:builder.error: SubtypeOfBaseOrFinalIsNotBaseFinalOrSealed*/ B + extends /*analyzer.error: CompileTimeErrorCode.FINAL_CLASS_EXTENDED_OUTSIDE_OF_LIBRARY*/ /*cfe|cfe:builder.error: FinalClassExtendedOutsideOfLibrary*/ Function {} /*cfe|cfe:builder.class: C:C,Object,_C&Object&Function*/ /*analyzer.class: C:C,Object*/ -class C extends Object +class /*cfe|cfe:builder.error: SubtypeOfBaseOrFinalIsNotBaseFinalOrSealed*/ C + extends Object with /*analyzer.error: CompileTimeErrorCode.CLASS_USED_AS_MIXIN*/ - Function {} + /*cfe|cfe:builder.error: CantUseClassAsMixin*/ Function {} // CFE hides that this is a mixin declaration since its mixed in type has been // removed. /*cfe|cfe:builder.class: _C&Object&Function:Object,_C&Object&Function*/ /*cfe|cfe:builder.class: D:D,Object*/ -class D = Object - with /*analyzer.error: CompileTimeErrorCode.CLASS_USED_AS_MIXIN*/ Function; +class /*cfe|cfe:builder.error: SubtypeOfBaseOrFinalIsNotBaseFinalOrSealed*/ D = Object + with /*analyzer.error: CompileTimeErrorCode.CLASS_USED_AS_MIXIN*/ /*cfe|cfe:builder.error: CantUseClassAsMixin*/ + Function; diff --git a/pkg/analysis_server/test/src/services/correction/fix/remove_name_from_declaration_clause_test.dart b/pkg/analysis_server/test/src/services/correction/fix/remove_name_from_declaration_clause_test.dart index 39a06b37dcf..a607a4a82c8 100644 --- a/pkg/analysis_server/test/src/services/correction/fix/remove_name_from_declaration_clause_test.dart +++ b/pkg/analysis_server/test/src/services/correction/fix/remove_name_from_declaration_clause_test.dart @@ -37,9 +37,11 @@ class DeprecatedImplementsFunctionTest extends FixProcessorTest { Future test_oneName() async { await resolveTestCode(''' +// @dart = 2.19 abstract class C implements Function {} '''); await assertHasFix(''' +// @dart = 2.19 abstract class C {} '''); } diff --git a/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart b/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart index 51d5defc2f3..846f7445a4b 100644 --- a/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart +++ b/pkg/analyzer/lib/src/dart/analysis/experiments.g.dart @@ -140,8 +140,8 @@ class ExperimentalFeatures { isEnabledByDefault: IsEnabledByDefault.class_modifiers, isExpired: IsExpired.class_modifiers, documentation: 'Class modifiers', - experimentalReleaseVersion: Version.parse('3.0.0'), - releaseVersion: null, + experimentalReleaseVersion: null, + releaseVersion: Version.parse('3.0.0'), ); static final const_functions = ExperimentalFeature( @@ -314,7 +314,7 @@ class ExperimentalFeatures { isEnabledByDefault: IsEnabledByDefault.records, isExpired: IsExpired.records, documentation: 'Records', - experimentalReleaseVersion: Version.parse('3.0.0'), + experimentalReleaseVersion: null, releaseVersion: null, ); @@ -324,8 +324,8 @@ class ExperimentalFeatures { isEnabledByDefault: IsEnabledByDefault.sealed_class, isExpired: IsExpired.sealed_class, documentation: 'Sealed class', - experimentalReleaseVersion: Version.parse('3.0.0'), - releaseVersion: null, + experimentalReleaseVersion: null, + releaseVersion: Version.parse('3.0.0'), ); static final set_literals = ExperimentalFeature( @@ -414,7 +414,7 @@ class ExperimentalFeatures { /// enabled by default. class IsEnabledByDefault { /// Default state of the experiment "class-modifiers" - static const bool class_modifiers = false; + static const bool class_modifiers = true; /// Default state of the experiment "const-functions" static const bool const_functions = false; @@ -468,7 +468,7 @@ class IsEnabledByDefault { static const bool records = false; /// Default state of the experiment "sealed-class" - static const bool sealed_class = false; + static const bool sealed_class = true; /// Default state of the experiment "set-literals" static const bool set_literals = true; diff --git a/pkg/dartdev/test/commands/run_test.dart b/pkg/dartdev/test/commands/run_test.dart index 959379edd09..c429cfcaa6e 100644 --- a/pkg/dartdev/test/commands/run_test.dart +++ b/pkg/dartdev/test/commands/run_test.dart @@ -118,7 +118,7 @@ void run() { // VM service). // // See https://github.com/dart-lang/sdk/issues/50230 - p = project(sdkConstraint: VersionConstraint.parse('>=2.19.0 <3.0.0')); + p = project(sdkConstraint: VersionConstraint.parse('>=3.0.0-0 <4.0.0')); p.file('main.dart', 'void main(args) { print("Record: \${(1, 2)}"); }'); ProcessResult result = await p.run([ 'run', diff --git a/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart b/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart index 91bd594ce61..cea1b2395c3 100644 --- a/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart +++ b/pkg/front_end/lib/src/api_prototype/experimental_flags_generated.dart @@ -61,7 +61,7 @@ class ExperimentalFlag { static const ExperimentalFlag classModifiers = const ExperimentalFlag( name: 'class-modifiers', - isEnabledByDefault: false, + isEnabledByDefault: true, isExpired: false, enabledVersion: const Version(3, 0), experimentEnabledVersion: const Version(3, 0), @@ -201,11 +201,11 @@ class ExperimentalFlag { isExpired: false, enabledVersion: const Version(3, 0), experimentEnabledVersion: const Version(3, 0), - experimentReleasedVersion: const Version(2, 19)); + experimentReleasedVersion: const Version(3, 0)); static const ExperimentalFlag sealedClass = const ExperimentalFlag( name: 'sealed-class', - isEnabledByDefault: false, + isEnabledByDefault: true, isExpired: false, enabledVersion: const Version(3, 0), experimentEnabledVersion: const Version(3, 0), diff --git a/pkg/front_end/messages.yaml b/pkg/front_end/messages.yaml index eec6cf16032..9fdfc3cbcda 100644 --- a/pkg/front_end/messages.yaml +++ b/pkg/front_end/messages.yaml @@ -541,7 +541,7 @@ WithBeforeExtends: problemMessage: "The extends clause must be before the with clause." correctionMessage: "Try moving the extends clause before the with clause." analyzerCode: ParserErrorCode.WITH_BEFORE_EXTENDS - script: "class B {} class C {} class A with B extends C {}" + script: "mixin B {} class C {} class A with B extends C {}" ImplementsBeforeExtends: index: 44 @@ -596,8 +596,8 @@ MultipleClauses: analyzerCode: ParserErrorCode.MULTIPLE_CLAUSES index: 121 script: - - "class B {} enum A implements B implements C, D { v; }" - - "class B {} enum A with B with C, D { v; }" + - "mixin B {} enum A implements B implements C, D { v; }" + - "mixin B {} enum A with B with C, D { v; }" OutOfOrderClauses: problemMessage: "The '#string' clause must come before the '#string2' clause." @@ -5891,6 +5891,7 @@ MixinInheritsFromNotObject: problemMessage: "The class '#name' can't be used as a mixin because it extends a class other than 'Object'." analyzerCode: MIXIN_INHERITS_FROM_NOT_OBJECT script: | + // @dart=2.19 class Base {} class Mixin extends Base {} class C extends Base with Mixin {} diff --git a/pkg/front_end/test/macros/application/data/package_config.json b/pkg/front_end/test/macros/application/data/package_config.json index 2e8365d4891..0a4fb7cb316 100644 --- a/pkg/front_end/test/macros/application/data/package_config.json +++ b/pkg/front_end/test/macros/application/data/package_config.json @@ -8,11 +8,13 @@ { "name": "meta", "rootUri": "../../../../../meta/", - "packageUri": "lib/" + "packageUri": "lib/", + "languageVersion": "2.12" }, { "name": "_fe_analyzer_shared", - "rootUri": "../../../../../_fe_analyzer_shared/lib/" + "rootUri": "../../../../../_fe_analyzer_shared/lib/", + "languageVersion": "2.17" } ] -} \ No newline at end of file +} diff --git a/pkg/front_end/test/macros/application/data/tests/sequence.dart b/pkg/front_end/test/macros/application/data/tests/sequence.dart index cce16034128..1a5cc698f91 100644 --- a/pkg/front_end/test/macros/application/data/tests/sequence.dart +++ b/pkg/front_end/test/macros/application/data/tests/sequence.dart @@ -184,7 +184,7 @@ augment class Class7c { method() {} } */ -class Class7c {} +mixin Class7c {} @SequenceMacro(0) /*class: Class7b: @@ -204,4 +204,4 @@ augment class Class7a { method() {} } */ -class Class7a {} +mixin Class7a {} diff --git a/pkg/front_end/test/macros/application/data/tests/sequence.dart.expect b/pkg/front_end/test/macros/application/data/tests/sequence.dart.expect index 691ef16d4da..b26a054f09d 100644 --- a/pkg/front_end/test/macros/application/data/tests/sequence.dart.expect +++ b/pkg/front_end/test/macros/application/data/tests/sequence.dart.expect @@ -110,10 +110,7 @@ class Class7d extends self::_Class7d&Class7b&Class7c { method /* from org-dartlang-augmentation:/a/b/c/main.dart-17 */ method2() → dynamic {} } @#C2 -class Class7c extends core::Object { - synthetic constructor •() → self::Class7c - : super core::Object::•() - ; +class Class7c extends core::Object /*isMixinDeclaration*/ { method /* from org-dartlang-augmentation:/a/b/c/main.dart-16 */ method() → dynamic {} } abstract class _Class7b&Object&Class7a = core::Object with self::Class7a /*isAnonymousMixin,hasConstConstructor*/ { @@ -131,10 +128,7 @@ class Class7b extends self::_Class7b&Object&Class7a { method /* from org-dartlang-augmentation:/a/b/c/main.dart-15 */ method1() → dynamic {} } @#C2 -class Class7a extends core::Object { - synthetic constructor •() → self::Class7a - : super core::Object::•() - ; +class Class7a extends core::Object /*isMixinDeclaration*/ { method /* from org-dartlang-augmentation:/a/b/c/main.dart-14 */ method() → dynamic {} } diff --git a/pkg/front_end/test/macros/declaration/data/package_config.json b/pkg/front_end/test/macros/declaration/data/package_config.json index 55ff011044b..0cac76a594e 100644 --- a/pkg/front_end/test/macros/declaration/data/package_config.json +++ b/pkg/front_end/test/macros/declaration/data/package_config.json @@ -11,7 +11,8 @@ }, { "name": "_fe_analyzer_shared", - "rootUri": "../../../../../_fe_analyzer_shared/lib/" + "rootUri": "../../../../../_fe_analyzer_shared/lib/", + "languageVersion": "2.17" } ] -} \ No newline at end of file +} diff --git a/pkg/front_end/test/macros/incremental/data/package_config.json b/pkg/front_end/test/macros/incremental/data/package_config.json index 2e8365d4891..0a4fb7cb316 100644 --- a/pkg/front_end/test/macros/incremental/data/package_config.json +++ b/pkg/front_end/test/macros/incremental/data/package_config.json @@ -8,11 +8,13 @@ { "name": "meta", "rootUri": "../../../../../meta/", - "packageUri": "lib/" + "packageUri": "lib/", + "languageVersion": "2.12" }, { "name": "_fe_analyzer_shared", - "rootUri": "../../../../../_fe_analyzer_shared/lib/" + "rootUri": "../../../../../_fe_analyzer_shared/lib/", + "languageVersion": "2.17" } ] -} \ No newline at end of file +} diff --git a/pkg/front_end/testcases/dartino/add_named_mixin_application.incremental.yaml b/pkg/front_end/testcases/dartino/add_named_mixin_application.incremental.yaml index 8cea05d7748..c313c3929ab 100644 --- a/pkg/front_end/testcases/dartino/add_named_mixin_application.incremental.yaml +++ b/pkg/front_end/testcases/dartino/add_named_mixin_application.incremental.yaml @@ -4,7 +4,7 @@ main.dart.patch: | // Test that we can add a mixin application. - class A {} + mixin class A {} <<<< [] ==== [] class C = Object with A; diff --git a/pkg/front_end/testcases/dartino/remove_named_mixin_application.incremental.yaml b/pkg/front_end/testcases/dartino/remove_named_mixin_application.incremental.yaml index 2e053802a75..b72387ba8e2 100644 --- a/pkg/front_end/testcases/dartino/remove_named_mixin_application.incremental.yaml +++ b/pkg/front_end/testcases/dartino/remove_named_mixin_application.incremental.yaml @@ -4,7 +4,7 @@ main.dart.patch: | // Test that we can remove a mixin application. - class A {} + mixin class A {} <<<< [] class C = Object with A; ==== [] diff --git a/pkg/front_end/testcases/dartino/unchanged_named_mixin_application.incremental.yaml b/pkg/front_end/testcases/dartino/unchanged_named_mixin_application.incremental.yaml index b1d48d167ef..49390b54c01 100644 --- a/pkg/front_end/testcases/dartino/unchanged_named_mixin_application.incremental.yaml +++ b/pkg/front_end/testcases/dartino/unchanged_named_mixin_application.incremental.yaml @@ -4,7 +4,7 @@ main.dart.patch: | // Test that we can handle a mixin application that doesn't change. - class A {} + mixin A {} class C = Object with A; main() { diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart index 867944a8f5d..1a2078b614b 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart @@ -2,25 +2,29 @@ // 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. -abstract class A extends Enum { // Ok. +abstract mixin class A extends Enum { + // Error. int get foo => index; } enum EA with A { element } // Error. -abstract class B implements Enum { // Ok. +abstract mixin class B implements Enum { + // Ok. int get foo => index; } enum EB with B { element } -mixin M on Enum { // Ok. +mixin M on Enum { + // Ok. int get foo => index; } enum EM with M { element } -mixin N implements Enum { // Ok. +mixin N implements Enum { + // Ok. int get foo => index; } @@ -33,7 +37,6 @@ expectEquals(x, y) { } main() { - expectEquals(EA.element.foo, EA.element.index); expectEquals(EB.element.foo, EB.element.index); expectEquals(EM.element.foo, EM.element.index); expectEquals(EN.element.foo, EN.element.index); diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.expect index 5ccaff43e5e..fbeffb7b6d7 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.expect @@ -2,14 +2,22 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:9:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:10:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. // enum EA with A { element } // Error. // ^ // import self as self; import "dart:core" as core; -abstract class A extends core::Enum { +abstract mixin class A extends core::Enum { synthetic constructor •() → self::A : super core::Enum::•() ; @@ -32,7 +40,7 @@ class EA extends self::_EA&_Enum&A /*isEnum*/ { method _enumToString() → core::String return "EA.${this.{core::_Enum::_name}{core::String}}"; } -abstract class B extends core::Object implements core::Enum { +abstract mixin class B extends core::Object implements core::Enum { synthetic constructor •() → self::B : super core::Object::•() ; @@ -101,7 +109,6 @@ static method expectEquals(dynamic x, dynamic y) → dynamic { } } static method main() → dynamic { - self::expectEquals(#C3.{self::_EA&_Enum&A::foo}{core::int}, #C3.{core::_Enum::index}{core::int}); self::expectEquals(#C5.{self::_EB&_Enum&B::foo}{core::int}, #C5.{core::_Enum::index}{core::int}); self::expectEquals(#C7.{self::_EM&_Enum&M::foo}{core::int}, #C7.{core::_Enum::index}{core::int}); self::expectEquals(#C9.{self::_EN&_Enum&N::foo}{core::int}, #C9.{core::_Enum::index}{core::int}); @@ -123,13 +130,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///enum_as_supertype.dart: -- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) -- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) +- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) +- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) -- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) +- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) +- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.transformed.expect index a80e1a0aaf1..f5e37b74201 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.strong.transformed.expect @@ -2,14 +2,22 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:9:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:10:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. // enum EA with A { element } // Error. // ^ // import self as self; import "dart:core" as core; -abstract class A extends core::Enum { +abstract mixin class A extends core::Enum { synthetic constructor •() → self::A : super core::Enum::•() ; @@ -32,7 +40,7 @@ class EA extends self::_EA&_Enum&A /*isEnum*/ { method _enumToString() → core::String return "EA.${this.{core::_Enum::_name}{core::String}}"; } -abstract class B extends core::Object implements core::Enum { +abstract mixin class B extends core::Object implements core::Enum { synthetic constructor •() → self::B : super core::Object::•() ; @@ -101,7 +109,6 @@ static method expectEquals(dynamic x, dynamic y) → dynamic { } } static method main() → dynamic { - self::expectEquals(#C3.{self::_EA&_Enum&A::foo}{core::int}, #C3.{core::_Enum::index}{core::int}); self::expectEquals(#C5.{self::_EB&_Enum&B::foo}{core::int}, #C5.{core::_Enum::index}{core::int}); self::expectEquals(#C7.{self::_EM&_Enum&M::foo}{core::int}, #C7.{core::_Enum::index}{core::int}); self::expectEquals(#C9.{self::_EN&_Enum&N::foo}{core::int}, #C9.{core::_Enum::index}{core::int}); @@ -123,13 +130,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///enum_as_supertype.dart: -- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) -- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) +- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) +- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) -- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) +- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) +- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline.expect index c5514b9daf3..6695dac2f51 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline.expect @@ -1,10 +1,10 @@ -abstract class A extends Enum { +abstract mixin class A extends Enum { int get foo => index; } enum EA with A { element } -abstract class B implements Enum { +abstract mixin class B implements Enum { int get foo => index; } diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline_modelled.expect index 1a4630a9067..a2acc3a51f9 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.textual_outline_modelled.expect @@ -1,8 +1,8 @@ -abstract class A extends Enum { +abstract mixin class A extends Enum { int get foo => index; } -abstract class B implements Enum { +abstract mixin class B implements Enum { int get foo => index; } diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.expect index 6c094a91b44..76bd26a7c62 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.expect @@ -2,14 +2,22 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:9:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:10:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. // enum EA with A { element } // Error. // ^ // import self as self; import "dart:core" as core; -abstract class A extends core::Enum { +abstract mixin class A extends core::Enum { synthetic constructor •() → self::A : super core::Enum::•() ; @@ -32,7 +40,7 @@ class EA extends self::_EA&_Enum&A /*isEnum*/ { method _enumToString() → core::String return "EA.${this.{core::_Enum::_name}{core::String}}"; } -abstract class B extends core::Object implements core::Enum { +abstract mixin class B extends core::Object implements core::Enum { synthetic constructor •() → self::B : super core::Object::•() ; @@ -101,7 +109,6 @@ static method expectEquals(dynamic x, dynamic y) → dynamic { } } static method main() → dynamic { - self::expectEquals(#C3.{self::_EA&_Enum&A::foo}{core::int}, #C3.{core::_Enum::index}{core::int}); self::expectEquals(#C5.{self::_EB&_Enum&B::foo}{core::int}, #C5.{core::_Enum::index}{core::int}); self::expectEquals(#C7.{self::_EM&_Enum&M::foo}{core::int}, #C7.{core::_Enum::index}{core::int}); self::expectEquals(#C9.{self::_EN&_Enum&N::foo}{core::int}, #C9.{core::_Enum::index}{core::int}); @@ -123,13 +130,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///enum_as_supertype.dart: -- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) -- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) +- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) +- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) -- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) +- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) +- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.modular.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.modular.expect index 6c094a91b44..76bd26a7c62 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.modular.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.modular.expect @@ -2,14 +2,22 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:9:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:10:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. // enum EA with A { element } // Error. // ^ // import self as self; import "dart:core" as core; -abstract class A extends core::Enum { +abstract mixin class A extends core::Enum { synthetic constructor •() → self::A : super core::Enum::•() ; @@ -32,7 +40,7 @@ class EA extends self::_EA&_Enum&A /*isEnum*/ { method _enumToString() → core::String return "EA.${this.{core::_Enum::_name}{core::String}}"; } -abstract class B extends core::Object implements core::Enum { +abstract mixin class B extends core::Object implements core::Enum { synthetic constructor •() → self::B : super core::Object::•() ; @@ -101,7 +109,6 @@ static method expectEquals(dynamic x, dynamic y) → dynamic { } } static method main() → dynamic { - self::expectEquals(#C3.{self::_EA&_Enum&A::foo}{core::int}, #C3.{core::_Enum::index}{core::int}); self::expectEquals(#C5.{self::_EB&_Enum&B::foo}{core::int}, #C5.{core::_Enum::index}{core::int}); self::expectEquals(#C7.{self::_EM&_Enum&M::foo}{core::int}, #C7.{core::_Enum::index}{core::int}); self::expectEquals(#C9.{self::_EN&_Enum&N::foo}{core::int}, #C9.{core::_Enum::index}{core::int}); @@ -123,13 +130,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///enum_as_supertype.dart: -- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) -- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) +- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) +- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) -- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) +- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) +- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.outline.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.outline.expect index d188b2afa9f..56cabd19a97 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.outline.expect @@ -2,14 +2,22 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:9:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:10:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. // enum EA with A { element } // Error. // ^ // import self as self; import "dart:core" as core; -abstract class A extends core::Enum { +abstract mixin class A extends core::Enum { synthetic constructor •() → self::A ; get foo() → core::int @@ -30,7 +38,7 @@ class EA extends self::_EA&_Enum&A /*isEnum*/ { method _enumToString() → core::String return "EA.${this.{core::_Enum::_name}{core::String}}"; } -abstract class B extends core::Object implements core::Enum { +abstract mixin class B extends core::Object implements core::Enum { synthetic constructor •() → self::B ; get foo() → core::int @@ -96,12 +104,12 @@ static method main() → dynamic Extra constant evaluation status: -Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:9:6 -> ListConstant(const [const EA{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:9:18 -> InstanceConstant(const EA{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:15:6 -> ListConstant(const [const EB{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:15:18 -> InstanceConstant(const EB{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:21:6 -> ListConstant(const [const EM{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:21:18 -> InstanceConstant(const EM{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:27:6 -> ListConstant(const [const EN{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:27:18 -> InstanceConstant(const EN{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:10:6 -> ListConstant(const [const EA{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:10:18 -> InstanceConstant(const EA{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:17:6 -> ListConstant(const [const EB{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:17:18 -> InstanceConstant(const EB{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:24:6 -> ListConstant(const [const EM{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:24:18 -> InstanceConstant(const EM{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///enum_as_supertype.dart:31:6 -> ListConstant(const [const EN{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///enum_as_supertype.dart:31:18 -> InstanceConstant(const EN{}) Extra constant evaluation: evaluated: 32, effectively constant: 8 diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.transformed.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.transformed.expect index c8785066da5..48d479b25e5 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart.weak.transformed.expect @@ -2,14 +2,22 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:9:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:5:32: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. +// abstract mixin class A extends Enum { +// ^ +// +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype.dart:10:14: Error: The class 'A' can't be used as a mixin because it extends a class other than 'Object'. // enum EA with A { element } // Error. // ^ // import self as self; import "dart:core" as core; -abstract class A extends core::Enum { +abstract mixin class A extends core::Enum { synthetic constructor •() → self::A : super core::Enum::•() ; @@ -32,7 +40,7 @@ class EA extends self::_EA&_Enum&A /*isEnum*/ { method _enumToString() → core::String return "EA.${this.{core::_Enum::_name}{core::String}}"; } -abstract class B extends core::Object implements core::Enum { +abstract mixin class B extends core::Object implements core::Enum { synthetic constructor •() → self::B : super core::Object::•() ; @@ -101,7 +109,6 @@ static method expectEquals(dynamic x, dynamic y) → dynamic { } } static method main() → dynamic { - self::expectEquals(#C3.{self::_EA&_Enum&A::foo}{core::int}, #C3.{core::_Enum::index}{core::int}); self::expectEquals(#C5.{self::_EB&_Enum&B::foo}{core::int}, #C5.{core::_Enum::index}{core::int}); self::expectEquals(#C7.{self::_EM&_Enum&M::foo}{core::int}, #C7.{core::_Enum::index}{core::int}); self::expectEquals(#C9.{self::_EN&_Enum&N::foo}{core::int}, #C9.{core::_Enum::index}{core::int}); @@ -123,13 +130,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///enum_as_supertype.dart: -- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) -- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:9:6) +- EA. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) +- _EA&_Enum&A. (from org-dartlang-testcase:///enum_as_supertype.dart:10:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:15:6) -- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:21:6) -- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) -- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:27:6) +- EB. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- _EB&_Enum&B. (from org-dartlang-testcase:///enum_as_supertype.dart:17:6) +- EM. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- _EM&_Enum&M. (from org-dartlang-testcase:///enum_as_supertype.dart:24:6) +- EN. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) +- _EN&_Enum&N. (from org-dartlang-testcase:///enum_as_supertype.dart:31:6) diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.expect index 0eaf7c8fe17..26c15e703f3 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:17: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// class A extends Enum { // Error. +// ^ +// // pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:7: Error: Non-abstract class 'A' has 'Enum' as a superinterface. // class A extends Enum { // Error. // ^ diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.transformed.expect index 07f29f977b4..1c009c9bd19 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.strong.transformed.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:17: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// class A extends Enum { // Error. +// ^ +// // pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:7: Error: Non-abstract class 'A' has 'Enum' as a superinterface. // class A extends Enum { // Error. // ^ diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.expect index 0eaf7c8fe17..26c15e703f3 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:17: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// class A extends Enum { // Error. +// ^ +// // pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:7: Error: Non-abstract class 'A' has 'Enum' as a superinterface. // class A extends Enum { // Error. // ^ diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.modular.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.modular.expect index 0eaf7c8fe17..26c15e703f3 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.modular.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.modular.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:17: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// class A extends Enum { // Error. +// ^ +// // pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:7: Error: Non-abstract class 'A' has 'Enum' as a superinterface. // class A extends Enum { // Error. // ^ diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.outline.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.outline.expect index ee808c747d8..69adef0f7f0 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.outline.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:17: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// class A extends Enum { // Error. +// ^ +// // pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:7: Error: Non-abstract class 'A' has 'Enum' as a superinterface. // class A extends Enum { // Error. // ^ diff --git a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.transformed.expect b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.transformed.expect index 07f29f977b4..1c009c9bd19 100644 --- a/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart.weak.transformed.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:17: Error: The class 'Enum' can't be extended outside of its library because it's an interface class. +// class A extends Enum { // Error. +// ^ +// // pkg/front_end/testcases/enhanced_enums/enum_as_supertype_error.dart:5:7: Error: Non-abstract class 'A' has 'Enum' as a superinterface. // class A extends Enum { // Error. // ^ diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart index d2945288c26..091eaa5d9c9 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart @@ -2,7 +2,7 @@ // 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. -class A1 { +mixin class A1 { int get hashCode => 42; } @@ -10,7 +10,7 @@ enum E1 with A1 { // Error. element } -class A2 { +mixin class A2 { int get values => 42; } @@ -18,7 +18,7 @@ enum E2 with A2 { // Error. element } -class A3 { +mixin class A3 { int get index => 42; } @@ -26,7 +26,7 @@ enum E3 with A3 { // Error. element } -class A4 { +mixin class A4 { bool operator==(Object other) => true; } @@ -66,7 +66,7 @@ enum E8 with M8 { // Error. element } -abstract class A9 { +abstract mixin class A9 { int get index; int get hashCode; bool operator==(Object other); diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.expect index a5bc8fcc3ca..365eefbdf97 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.expect @@ -75,7 +75,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A1 extends core::Object { +mixin class A1 extends core::Object { synthetic constructor •() → self::A1 : super core::Object::•() ; @@ -98,7 +98,7 @@ class E1 extends self::_E1&_Enum&A1 /*isEnum*/ { method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -class A2 extends core::Object { +mixin class A2 extends core::Object { synthetic constructor •() → self::A2 : super core::Object::•() ; @@ -121,7 +121,7 @@ class E2 extends self::_E2&_Enum&A2 /*isEnum*/ { method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -class A3 extends core::Object { +mixin class A3 extends core::Object { synthetic constructor •() → self::A3 : super core::Object::•() ; @@ -144,7 +144,7 @@ class E3 extends self::_E3&_Enum&A3 /*isEnum*/ { method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; } -class A4 extends core::Object { +mixin class A4 extends core::Object { synthetic constructor •() → self::A4 : super core::Object::•() ; @@ -247,7 +247,7 @@ class E8 extends self::_E8&_Enum&M8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -abstract class A9 extends core::Object { +abstract mixin class A9 extends core::Object { synthetic constructor •() → self::A9 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.transformed.expect index 7cea0f35c24..db2b8342222 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.strong.transformed.expect @@ -75,7 +75,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A1 extends core::Object { +mixin class A1 extends core::Object { synthetic constructor •() → self::A1 : super core::Object::•() ; @@ -98,7 +98,7 @@ class E1 extends self::_E1&_Enum&A1 /*isEnum*/ { method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -class A2 extends core::Object { +mixin class A2 extends core::Object { synthetic constructor •() → self::A2 : super core::Object::•() ; @@ -121,7 +121,7 @@ class E2 extends self::_E2&_Enum&A2 /*isEnum*/ { method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -class A3 extends core::Object { +mixin class A3 extends core::Object { synthetic constructor •() → self::A3 : super core::Object::•() ; @@ -144,7 +144,7 @@ class E3 extends self::_E3&_Enum&A3 /*isEnum*/ { method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; } -class A4 extends core::Object { +mixin class A4 extends core::Object { synthetic constructor •() → self::A4 : super core::Object::•() ; @@ -247,7 +247,7 @@ class E8 extends self::_E8&_Enum&M8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -abstract class A9 extends core::Object { +abstract mixin class A9 extends core::Object { synthetic constructor •() → self::A9 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline.expect index 52a07302b8e..6f269a71275 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline.expect @@ -1,22 +1,22 @@ -class A1 { +mixin class A1 { int get hashCode => 42; } enum E1 with A1 { element } -class A2 { +mixin class A2 { int get values => 42; } enum E2 with A2 { element } -class A3 { +mixin class A3 { int get index => 42; } enum E3 with A3 { element } -class A4 { +mixin class A4 { bool operator ==(Object other) => true; } @@ -46,7 +46,7 @@ mixin M8 { enum E8 with M8 { element } -abstract class A9 { +abstract mixin class A9 { int get index; int get hashCode; bool operator ==(Object other); diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline_modelled.expect index 38785e8a855..e632a4ce85a 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.textual_outline_modelled.expect @@ -1,25 +1,9 @@ -abstract class A9 { +abstract mixin class A9 { bool operator ==(Object other); int get hashCode; int get index; } -class A1 { - int get hashCode => 42; -} - -class A2 { - int get values => 42; -} - -class A3 { - int get index => 42; -} - -class A4 { - bool operator ==(Object other) => true; -} - enum E1 with A1 { element } enum E10 with M10 { element } @@ -58,3 +42,19 @@ mixin M7 { mixin M8 { bool operator ==(Object other) => true; } + +mixin class A1 { + int get hashCode => 42; +} + +mixin class A2 { + int get values => 42; +} + +mixin class A3 { + int get index => 42; +} + +mixin class A4 { + bool operator ==(Object other) => true; +} diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.expect index a5116829ced..9ca3336d22f 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.expect @@ -75,7 +75,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A1 extends core::Object { +mixin class A1 extends core::Object { synthetic constructor •() → self::A1 : super core::Object::•() ; @@ -98,7 +98,7 @@ class E1 extends self::_E1&_Enum&A1 /*isEnum*/ { method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -class A2 extends core::Object { +mixin class A2 extends core::Object { synthetic constructor •() → self::A2 : super core::Object::•() ; @@ -121,7 +121,7 @@ class E2 extends self::_E2&_Enum&A2 /*isEnum*/ { method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -class A3 extends core::Object { +mixin class A3 extends core::Object { synthetic constructor •() → self::A3 : super core::Object::•() ; @@ -144,7 +144,7 @@ class E3 extends self::_E3&_Enum&A3 /*isEnum*/ { method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; } -class A4 extends core::Object { +mixin class A4 extends core::Object { synthetic constructor •() → self::A4 : super core::Object::•() ; @@ -247,7 +247,7 @@ class E8 extends self::_E8&_Enum&M8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -abstract class A9 extends core::Object { +abstract mixin class A9 extends core::Object { synthetic constructor •() → self::A9 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.modular.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.modular.expect index a5116829ced..9ca3336d22f 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.modular.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.modular.expect @@ -75,7 +75,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A1 extends core::Object { +mixin class A1 extends core::Object { synthetic constructor •() → self::A1 : super core::Object::•() ; @@ -98,7 +98,7 @@ class E1 extends self::_E1&_Enum&A1 /*isEnum*/ { method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -class A2 extends core::Object { +mixin class A2 extends core::Object { synthetic constructor •() → self::A2 : super core::Object::•() ; @@ -121,7 +121,7 @@ class E2 extends self::_E2&_Enum&A2 /*isEnum*/ { method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -class A3 extends core::Object { +mixin class A3 extends core::Object { synthetic constructor •() → self::A3 : super core::Object::•() ; @@ -144,7 +144,7 @@ class E3 extends self::_E3&_Enum&A3 /*isEnum*/ { method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; } -class A4 extends core::Object { +mixin class A4 extends core::Object { synthetic constructor •() → self::A4 : super core::Object::•() ; @@ -247,7 +247,7 @@ class E8 extends self::_E8&_Enum&M8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -abstract class A9 extends core::Object { +abstract mixin class A9 extends core::Object { synthetic constructor •() → self::A9 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.outline.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.outline.expect index 9d97c0ab24e..033cea29362 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.outline.expect @@ -75,7 +75,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A1 extends core::Object { +mixin class A1 extends core::Object { synthetic constructor •() → self::A1 ; get hashCode() → core::int @@ -96,7 +96,7 @@ class E1 extends self::_E1&_Enum&A1 /*isEnum*/ { method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -class A2 extends core::Object { +mixin class A2 extends core::Object { synthetic constructor •() → self::A2 ; get values() → core::int @@ -117,7 +117,7 @@ class E2 extends self::_E2&_Enum&A2 /*isEnum*/ { method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -class A3 extends core::Object { +mixin class A3 extends core::Object { synthetic constructor •() → self::A3 ; get index() → core::int @@ -138,7 +138,7 @@ class E3 extends self::_E3&_Enum&A3 /*isEnum*/ { method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; } -class A4 extends core::Object { +mixin class A4 extends core::Object { synthetic constructor •() → self::A4 ; operator ==(core::Object other) → core::bool @@ -235,7 +235,7 @@ class E8 extends self::_E8&_Enum&M8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -abstract class A9 extends core::Object { +abstract mixin class A9 extends core::Object { synthetic constructor •() → self::A9 ; abstract get index() → core::int; diff --git a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.transformed.expect b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.transformed.expect index 2033bc68077..c63aeb0d4f2 100644 --- a/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/inherited_restricted_members.dart.weak.transformed.expect @@ -75,7 +75,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A1 extends core::Object { +mixin class A1 extends core::Object { synthetic constructor •() → self::A1 : super core::Object::•() ; @@ -98,7 +98,7 @@ class E1 extends self::_E1&_Enum&A1 /*isEnum*/ { method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -class A2 extends core::Object { +mixin class A2 extends core::Object { synthetic constructor •() → self::A2 : super core::Object::•() ; @@ -121,7 +121,7 @@ class E2 extends self::_E2&_Enum&A2 /*isEnum*/ { method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -class A3 extends core::Object { +mixin class A3 extends core::Object { synthetic constructor •() → self::A3 : super core::Object::•() ; @@ -144,7 +144,7 @@ class E3 extends self::_E3&_Enum&A3 /*isEnum*/ { method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; } -class A4 extends core::Object { +mixin class A4 extends core::Object { synthetic constructor •() → self::A4 : super core::Object::•() ; @@ -247,7 +247,7 @@ class E8 extends self::_E8&_Enum&M8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -abstract class A9 extends core::Object { +abstract mixin class A9 extends core::Object { synthetic constructor •() → self::A9 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart b/pkg/front_end/testcases/enhanced_enums/issue49236.dart index 076a34d3ef2..6486493e87b 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart @@ -6,7 +6,7 @@ mixin M { String toString() => "M"; } -abstract class A { +abstract mixin class A { String toString() => "A"; } @@ -14,9 +14,7 @@ abstract class B implements Enum { String toString() => "B"; } -enum E1 with M { - element -} +enum E1 with M { element } enum E2 with M { element; @@ -30,9 +28,7 @@ enum E3 { String toString() => "E3"; } -enum E4 implements B { - element -} +enum E4 implements B { element } enum E5 implements B { element; @@ -40,9 +36,7 @@ enum E5 implements B { String toString() => "E5"; } -enum E6 with A { - element -} +enum E6 with A { element } enum E7 with A { element; diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.expect index fa3b8fe5705..f98b6208efd 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.expect @@ -6,7 +6,7 @@ abstract class M extends core::Object /*isMixinDeclaration*/ { method toString() → core::String return "M"; } -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; @@ -160,12 +160,12 @@ org-dartlang-testcase:///issue49236.dart: - _E1&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:17:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E2. (from org-dartlang-testcase:///issue49236.dart:21:6) -- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:21:6) -- E3. (from org-dartlang-testcase:///issue49236.dart:27:6) -- E4. (from org-dartlang-testcase:///issue49236.dart:33:6) -- E5. (from org-dartlang-testcase:///issue49236.dart:37:6) -- E6. (from org-dartlang-testcase:///issue49236.dart:43:6) -- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:43:6) -- E7. (from org-dartlang-testcase:///issue49236.dart:47:6) -- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:47:6) +- E2. (from org-dartlang-testcase:///issue49236.dart:19:6) +- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:19:6) +- E3. (from org-dartlang-testcase:///issue49236.dart:25:6) +- E4. (from org-dartlang-testcase:///issue49236.dart:31:6) +- E5. (from org-dartlang-testcase:///issue49236.dart:33:6) +- E6. (from org-dartlang-testcase:///issue49236.dart:39:6) +- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:39:6) +- E7. (from org-dartlang-testcase:///issue49236.dart:41:6) +- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:41:6) diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.transformed.expect index ec28d9cc252..72c93f01873 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.strong.transformed.expect @@ -6,7 +6,7 @@ abstract class M extends core::Object /*isMixinDeclaration*/ { method toString() → core::String return "M"; } -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; @@ -160,12 +160,12 @@ org-dartlang-testcase:///issue49236.dart: - _E1&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:17:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E2. (from org-dartlang-testcase:///issue49236.dart:21:6) -- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:21:6) -- E3. (from org-dartlang-testcase:///issue49236.dart:27:6) -- E4. (from org-dartlang-testcase:///issue49236.dart:33:6) -- E5. (from org-dartlang-testcase:///issue49236.dart:37:6) -- E6. (from org-dartlang-testcase:///issue49236.dart:43:6) -- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:43:6) -- E7. (from org-dartlang-testcase:///issue49236.dart:47:6) -- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:47:6) +- E2. (from org-dartlang-testcase:///issue49236.dart:19:6) +- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:19:6) +- E3. (from org-dartlang-testcase:///issue49236.dart:25:6) +- E4. (from org-dartlang-testcase:///issue49236.dart:31:6) +- E5. (from org-dartlang-testcase:///issue49236.dart:33:6) +- E6. (from org-dartlang-testcase:///issue49236.dart:39:6) +- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:39:6) +- E7. (from org-dartlang-testcase:///issue49236.dart:41:6) +- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:41:6) diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline.expect index 55f4471c608..07c4673e411 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline.expect @@ -2,7 +2,7 @@ mixin M { String toString() => "M"; } -abstract class A { +abstract mixin class A { String toString() => "A"; } diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline_modelled.expect index 76eb999d558..b699b994444 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.textual_outline_modelled.expect @@ -1,11 +1,11 @@ -abstract class A { - String toString() => "A"; -} - abstract class B implements Enum { String toString() => "B"; } +abstract mixin class A { + String toString() => "A"; +} + checkEqual(x, y) {} enum E1 with M { element } diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.expect index c4990bcf5a2..fe9414446aa 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.expect @@ -6,7 +6,7 @@ abstract class M extends core::Object /*isMixinDeclaration*/ { method toString() → core::String return "M"; } -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; @@ -160,12 +160,12 @@ org-dartlang-testcase:///issue49236.dart: - _E1&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:17:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E2. (from org-dartlang-testcase:///issue49236.dart:21:6) -- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:21:6) -- E3. (from org-dartlang-testcase:///issue49236.dart:27:6) -- E4. (from org-dartlang-testcase:///issue49236.dart:33:6) -- E5. (from org-dartlang-testcase:///issue49236.dart:37:6) -- E6. (from org-dartlang-testcase:///issue49236.dart:43:6) -- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:43:6) -- E7. (from org-dartlang-testcase:///issue49236.dart:47:6) -- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:47:6) +- E2. (from org-dartlang-testcase:///issue49236.dart:19:6) +- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:19:6) +- E3. (from org-dartlang-testcase:///issue49236.dart:25:6) +- E4. (from org-dartlang-testcase:///issue49236.dart:31:6) +- E5. (from org-dartlang-testcase:///issue49236.dart:33:6) +- E6. (from org-dartlang-testcase:///issue49236.dart:39:6) +- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:39:6) +- E7. (from org-dartlang-testcase:///issue49236.dart:41:6) +- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:41:6) diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.modular.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.modular.expect index c4990bcf5a2..fe9414446aa 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.modular.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.modular.expect @@ -6,7 +6,7 @@ abstract class M extends core::Object /*isMixinDeclaration*/ { method toString() → core::String return "M"; } -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; @@ -160,12 +160,12 @@ org-dartlang-testcase:///issue49236.dart: - _E1&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:17:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E2. (from org-dartlang-testcase:///issue49236.dart:21:6) -- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:21:6) -- E3. (from org-dartlang-testcase:///issue49236.dart:27:6) -- E4. (from org-dartlang-testcase:///issue49236.dart:33:6) -- E5. (from org-dartlang-testcase:///issue49236.dart:37:6) -- E6. (from org-dartlang-testcase:///issue49236.dart:43:6) -- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:43:6) -- E7. (from org-dartlang-testcase:///issue49236.dart:47:6) -- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:47:6) +- E2. (from org-dartlang-testcase:///issue49236.dart:19:6) +- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:19:6) +- E3. (from org-dartlang-testcase:///issue49236.dart:25:6) +- E4. (from org-dartlang-testcase:///issue49236.dart:31:6) +- E5. (from org-dartlang-testcase:///issue49236.dart:33:6) +- E6. (from org-dartlang-testcase:///issue49236.dart:39:6) +- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:39:6) +- E7. (from org-dartlang-testcase:///issue49236.dart:41:6) +- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:41:6) diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.outline.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.outline.expect index d085f03e037..99a7c968531 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.outline.expect @@ -6,7 +6,7 @@ abstract class M extends core::Object /*isMixinDeclaration*/ { method toString() → core::String ; } -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A ; method toString() → core::String @@ -121,17 +121,17 @@ static method main() → dynamic Extra constant evaluation status: Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:17:6 -> ListConstant(const [const E1{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:18:3 -> InstanceConstant(const E1{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:21:6 -> ListConstant(const [const E2{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:22:3 -> InstanceConstant(const E2{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:27:6 -> ListConstant(const [const E3{_Enum.index: 0, _Enum._name: "element"}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:28:3 -> InstanceConstant(const E3{_Enum.index: 0, _Enum._name: "element"}) -Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:33:6 -> ListConstant(const [const E4{_Enum.index: 0, _Enum._name: "element"}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:34:3 -> InstanceConstant(const E4{_Enum.index: 0, _Enum._name: "element"}) -Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:37:6 -> ListConstant(const [const E5{_Enum.index: 0, _Enum._name: "element"}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:38:3 -> InstanceConstant(const E5{_Enum.index: 0, _Enum._name: "element"}) -Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:43:6 -> ListConstant(const [const E6{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:44:3 -> InstanceConstant(const E6{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:47:6 -> ListConstant(const [const E7{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:48:3 -> InstanceConstant(const E7{}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:17:18 -> InstanceConstant(const E1{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:19:6 -> ListConstant(const [const E2{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:20:3 -> InstanceConstant(const E2{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:25:6 -> ListConstant(const [const E3{_Enum.index: 0, _Enum._name: "element"}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:26:3 -> InstanceConstant(const E3{_Enum.index: 0, _Enum._name: "element"}) +Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:31:6 -> ListConstant(const [const E4{_Enum.index: 0, _Enum._name: "element"}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:31:24 -> InstanceConstant(const E4{_Enum.index: 0, _Enum._name: "element"}) +Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:33:6 -> ListConstant(const [const E5{_Enum.index: 0, _Enum._name: "element"}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:34:3 -> InstanceConstant(const E5{_Enum.index: 0, _Enum._name: "element"}) +Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:39:6 -> ListConstant(const [const E6{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:39:18 -> InstanceConstant(const E6{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///issue49236.dart:41:6 -> ListConstant(const [const E7{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///issue49236.dart:42:3 -> InstanceConstant(const E7{}) Extra constant evaluation: evaluated: 53, effectively constant: 14 diff --git a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.transformed.expect b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.transformed.expect index 4137f1c8cc9..025f9efd76c 100644 --- a/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/issue49236.dart.weak.transformed.expect @@ -6,7 +6,7 @@ abstract class M extends core::Object /*isMixinDeclaration*/ { method toString() → core::String return "M"; } -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; @@ -160,12 +160,12 @@ org-dartlang-testcase:///issue49236.dart: - _E1&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:17:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E2. (from org-dartlang-testcase:///issue49236.dart:21:6) -- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:21:6) -- E3. (from org-dartlang-testcase:///issue49236.dart:27:6) -- E4. (from org-dartlang-testcase:///issue49236.dart:33:6) -- E5. (from org-dartlang-testcase:///issue49236.dart:37:6) -- E6. (from org-dartlang-testcase:///issue49236.dart:43:6) -- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:43:6) -- E7. (from org-dartlang-testcase:///issue49236.dart:47:6) -- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:47:6) +- E2. (from org-dartlang-testcase:///issue49236.dart:19:6) +- _E2&_Enum&M. (from org-dartlang-testcase:///issue49236.dart:19:6) +- E3. (from org-dartlang-testcase:///issue49236.dart:25:6) +- E4. (from org-dartlang-testcase:///issue49236.dart:31:6) +- E5. (from org-dartlang-testcase:///issue49236.dart:33:6) +- E6. (from org-dartlang-testcase:///issue49236.dart:39:6) +- _E6&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:39:6) +- E7. (from org-dartlang-testcase:///issue49236.dart:41:6) +- _E7&_Enum&A. (from org-dartlang-testcase:///issue49236.dart:41:6) diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart index 44f446dcd1f..4a5fee3a43a 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart @@ -6,9 +6,9 @@ typedef ContravariantUse = Function(T); typedef InvariantUse = T Function(T); -class Empty {} +mixin Empty {} -class A {} +mixin class A {} class B extends A {} diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.expect index cf5a68f7d03..6458e29c0f8 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.expect @@ -115,12 +115,9 @@ import "dart:core" as core; typedef ContravariantUse = (T%) → dynamic; typedef InvariantUse = (T%) → T%; -class Empty extends core::Object { - synthetic constructor •() → self::Empty - : super core::Object::•() - ; +abstract class Empty extends core::Object /*isMixinDeclaration*/ { } -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.transformed.expect index 0bdc8f7185a..7a5fd328a19 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.strong.transformed.expect @@ -115,12 +115,9 @@ import "dart:core" as core; typedef ContravariantUse = (T%) → dynamic; typedef InvariantUse = (T%) → T%; -class Empty extends core::Object { - synthetic constructor •() → self::Empty - : super core::Object::•() - ; +abstract class Empty extends core::Object /*isMixinDeclaration*/ { } -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline.expect index c9ae869d1c5..d5e8b69a887 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline.expect @@ -1,9 +1,8 @@ typedef ContravariantUse = Function(T); typedef InvariantUse = T Function(T); +mixin Empty {} -class Empty {} - -class A {} +mixin class A {} class B extends A {} diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline_modelled.expect index 2b6edb90349..28951146dd0 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.textual_outline_modelled.expect @@ -1,5 +1,3 @@ -class A {} - class B extends A {} class Bc extends A> {} @@ -19,8 +17,6 @@ class E = A with Empty; class Ec = A> with Empty; class Ei = A> with Empty; -class Empty {} - class F extends Object with A {} class Fc extends Object with A> {} @@ -73,5 +69,9 @@ class Jffc extends A))> {} class Jfff extends A {} main() {} +mixin Empty {} + +mixin class A {} + typedef ContravariantUse = Function(T); typedef InvariantUse = T Function(T); diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.expect index cf5a68f7d03..6458e29c0f8 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.expect @@ -115,12 +115,9 @@ import "dart:core" as core; typedef ContravariantUse = (T%) → dynamic; typedef InvariantUse = (T%) → T%; -class Empty extends core::Object { - synthetic constructor •() → self::Empty - : super core::Object::•() - ; +abstract class Empty extends core::Object /*isMixinDeclaration*/ { } -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.modular.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.modular.expect index cf5a68f7d03..6458e29c0f8 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.modular.expect @@ -115,12 +115,9 @@ import "dart:core" as core; typedef ContravariantUse = (T%) → dynamic; typedef InvariantUse = (T%) → T%; -class Empty extends core::Object { - synthetic constructor •() → self::Empty - : super core::Object::•() - ; +abstract class Empty extends core::Object /*isMixinDeclaration*/ { } -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.outline.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.outline.expect index b00d9318e6e..7d024522f2f 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.outline.expect @@ -115,11 +115,9 @@ import "dart:core" as core; typedef ContravariantUse = (T%) → dynamic; typedef InvariantUse = (T%) → T%; -class Empty extends core::Object { - synthetic constructor •() → self::Empty - ; +abstract class Empty extends core::Object /*isMixinDeclaration*/ { } -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A ; } diff --git a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.transformed.expect index 0bdc8f7185a..7a5fd328a19 100644 --- a/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/bad_type_variable_uses_in_supertypes.dart.weak.transformed.expect @@ -115,12 +115,9 @@ import "dart:core" as core; typedef ContravariantUse = (T%) → dynamic; typedef InvariantUse = (T%) → T%; -class Empty extends core::Object { - synthetic constructor •() → self::Empty - : super core::Object::•() - ; +abstract class Empty extends core::Object /*isMixinDeclaration*/ { } -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart b/pkg/front_end/testcases/general/base_class_declaration.dart index 03787f362bf..7c9315d6f00 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart +++ b/pkg/front_end/testcases/general/base_class_declaration.dart @@ -2,7 +2,7 @@ // 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. -// @dart=2.18 +// @dart=2.19 base class A {} diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.strong.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.strong.expect index cd1f5614a34..8ab912b5112 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.strong.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.strong.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:7: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. // base class A {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: 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. // abstract base class B {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_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. // base mixin M {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_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. // base class C = Object with M; // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.strong.transformed.expect index b4b183613e7..e353e791126 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.strong.transformed.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:7: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. // base class A {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: 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. // abstract base class B {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_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. // base mixin M {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_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. // base class C = Object with M; // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline.expect index 49436e4b342..db0d660b277 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline.expect @@ -1,6 +1,7 @@ -// @dart = 2.18 +// @dart = 2.19 base class A {} + abstract base class B {} -base -mixin M {} + +base mixin M {} base class C = Object with M; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline_modelled.expect new file mode 100644 index 00000000000..da065871bb5 --- /dev/null +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.textual_outline_modelled.expect @@ -0,0 +1,8 @@ +// @dart = 2.19 +abstract base class B {} +base class A {} +---- unknown chunk starts ---- +base +---- unknown chunk ends ---- +base class C = Object with M; +mixin M {} diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.expect index cd1f5614a34..8ab912b5112 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:7: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. // base class A {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: 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. // abstract base class B {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_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. // base mixin M {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_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. // base class C = Object with M; // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.modular.expect index cd1f5614a34..8ab912b5112 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.modular.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:7: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. // base class A {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: 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. // abstract base class B {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_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. // base mixin M {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_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. // base class C = Object with M; // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.outline.expect index ad951d4aad6..ea22644fa6c 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.outline.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:7: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. // base class A {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: 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. // abstract base class B {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_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. // base mixin M {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_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. // base class C = Object with M; // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.transformed.expect index b4b183613e7..e353e791126 100644 --- a/pkg/front_end/testcases/general/base_class_declaration.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/base_class_declaration.dart.weak.transformed.expect @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/base_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:7: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. // base class A {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_class_declaration.dart:9:10: 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. // abstract base class B {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_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. // base mixin M {} // ^^^^ +// pkg/front_end/testcases/general/base_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/base_class_declaration.dart:12:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/base_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. // base class C = Object with M; // ^^^^ +// pkg/front_end/testcases/general/base_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart b/pkg/front_end/testcases/general/bounds_supertypes.dart index 40f4ea16ebe..315d1734a5d 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart @@ -2,13 +2,13 @@ // 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. -class Class {} +mixin class Class {} class ConcreteClass implements Class {} typedef F> = Class; -class G> {} +mixin class G> {} class ExtendsT1 extends F {} // Error diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.expect index 3c458ced2d1..67da29639a7 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.expect @@ -62,36 +62,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ExtendsS1 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:31:25: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS2 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:33:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS3 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:35:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS4 extends G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:41:25: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -99,18 +99,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ExtendsS7 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:43:25: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS8 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:45:31: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -172,36 +172,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ImplementsS1 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:63:31: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS2 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:65:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS3 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:67:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS4 implements G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:73:31: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -209,18 +209,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ImplementsS7 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:75:31: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS8 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:77:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -337,36 +337,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumImplementsS1 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:127:34: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS2 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:129:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS3 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:131:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS4 implements G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:137:34: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -374,18 +374,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS7 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:139:34: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS8 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:141:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -502,36 +502,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // mixin MixinOnS1 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:191:20: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS2 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:193:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS3 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:195:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS4 on G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:201:20: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -539,18 +539,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:203:20: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:217:28: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Object' is from 'dart:core'. @@ -577,54 +577,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:235:28: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:93:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // class WithS1 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:95:19: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS2 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:97:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS3 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:99:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS4 with G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:105:19: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -632,54 +632,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class WithS7 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:107:19: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS8 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:157:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumWithS1 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:159:22: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS2 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:161:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS3 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:163:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS4 with G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:169:22: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -687,24 +687,24 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumWithS7 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:171:22: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS8 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // import self as self; import "dart:core" as core; typedef F = self::Class> = self::Class; -class Class extends core::Object { +mixin class Class extends core::Object { synthetic constructor •() → self::Class : super core::Object::•() ; @@ -714,7 +714,7 @@ class ConcreteClass extends core::Object implements self::Class = self::Class> extends core::Object { +mixin class G = self::Class> extends core::Object { synthetic constructor •() → self::G : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.transformed.expect index 5f4d8fdcef1..0da3b968235 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.strong.transformed.expect @@ -62,36 +62,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ExtendsS1 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:31:25: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS2 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:33:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS3 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:35:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS4 extends G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:41:25: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -99,18 +99,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ExtendsS7 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:43:25: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS8 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:45:31: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -172,36 +172,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ImplementsS1 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:63:31: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS2 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:65:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS3 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:67:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS4 implements G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:73:31: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -209,18 +209,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ImplementsS7 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:75:31: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS8 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:77:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -337,36 +337,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumImplementsS1 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:127:34: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS2 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:129:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS3 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:131:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS4 implements G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:137:34: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -374,18 +374,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS7 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:139:34: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS8 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:141:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -502,36 +502,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // mixin MixinOnS1 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:191:20: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS2 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:193:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS3 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:195:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS4 on G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:201:20: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -539,18 +539,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:203:20: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:217:28: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Object' is from 'dart:core'. @@ -577,54 +577,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:235:28: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:93:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // class WithS1 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:95:19: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS2 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:97:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS3 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:99:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS4 with G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:105:19: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -632,54 +632,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class WithS7 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:107:19: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS8 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:157:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumWithS1 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:159:22: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS2 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:161:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS3 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:163:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS4 with G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:169:22: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -687,24 +687,24 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumWithS7 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:171:22: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS8 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // import self as self; import "dart:core" as core; typedef F = self::Class> = self::Class; -class Class extends core::Object { +mixin class Class extends core::Object { synthetic constructor •() → self::Class : super core::Object::•() ; @@ -714,7 +714,7 @@ class ConcreteClass extends core::Object implements self::Class = self::Class> extends core::Object { +mixin class G = self::Class> extends core::Object { synthetic constructor •() → self::G : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline.expect index 411c6124967..ab84a2dec56 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline.expect @@ -1,10 +1,10 @@ -class Class {} +mixin class Class {} class ConcreteClass implements Class {} typedef F> = Class; -class G> {} +mixin class G> {} class ExtendsT1 extends F {} diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline_modelled.expect index 5203bb65ea0..f0cabc39b8c 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.textual_outline_modelled.expect @@ -1,5 +1,3 @@ -class Class {} - class ConcreteClass implements Class {} class ExtendsS1 extends G {} @@ -34,8 +32,6 @@ class ExtendsT7 extends F {} class ExtendsT8 extends F {} -class G> {} - class ImplementsS1 implements G {} class ImplementsS2 implements G {} @@ -213,4 +209,9 @@ mixin MixinOnT5 on F {} mixin MixinOnT6 on F> {} mixin MixinOnT7 on F {} mixin MixinOnT8 on F {} + +mixin class Class {} + +mixin class G> {} + typedef F> = Class; diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.expect index b199fbaf298..3ff0ccb6a78 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.expect @@ -62,36 +62,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ExtendsS1 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:31:25: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS2 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:33:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS3 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:35:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS4 extends G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:41:25: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -99,18 +99,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ExtendsS7 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:43:25: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS8 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:45:31: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -172,36 +172,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ImplementsS1 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:63:31: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS2 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:65:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS3 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:67:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS4 implements G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:73:31: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -209,18 +209,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ImplementsS7 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:75:31: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS8 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:77:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -337,36 +337,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumImplementsS1 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:127:34: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS2 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:129:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS3 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:131:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS4 implements G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:137:34: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -374,18 +374,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS7 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:139:34: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS8 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:141:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -502,36 +502,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // mixin MixinOnS1 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:191:20: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS2 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:193:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS3 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:195:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS4 on G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:201:20: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -539,18 +539,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:203:20: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:217:28: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Object' is from 'dart:core'. @@ -577,54 +577,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:235:28: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:93:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // class WithS1 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:95:19: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS2 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:97:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS3 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:99:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS4 with G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:105:19: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -632,54 +632,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class WithS7 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:107:19: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS8 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:157:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumWithS1 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:159:22: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS2 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:161:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS3 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:163:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS4 with G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:169:22: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -687,24 +687,24 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumWithS7 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:171:22: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS8 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // import self as self; import "dart:core" as core; typedef F = self::Class> = self::Class; -class Class extends core::Object { +mixin class Class extends core::Object { synthetic constructor •() → self::Class : super core::Object::•() ; @@ -714,7 +714,7 @@ class ConcreteClass extends core::Object implements self::Class = self::Class> extends core::Object { +mixin class G = self::Class> extends core::Object { synthetic constructor •() → self::G : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.modular.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.modular.expect index b199fbaf298..3ff0ccb6a78 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.modular.expect @@ -62,36 +62,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ExtendsS1 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:31:25: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS2 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:33:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS3 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:35:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS4 extends G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:41:25: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -99,18 +99,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ExtendsS7 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:43:25: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS8 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:45:31: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -172,36 +172,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ImplementsS1 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:63:31: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS2 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:65:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS3 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:67:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS4 implements G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:73:31: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -209,18 +209,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ImplementsS7 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:75:31: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS8 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:77:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -337,36 +337,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumImplementsS1 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:127:34: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS2 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:129:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS3 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:131:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS4 implements G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:137:34: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -374,18 +374,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS7 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:139:34: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS8 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:141:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -502,36 +502,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // mixin MixinOnS1 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:191:20: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS2 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:193:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS3 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:195:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS4 on G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:201:20: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -539,18 +539,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:203:20: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:217:28: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Object' is from 'dart:core'. @@ -577,54 +577,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:235:28: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:93:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // class WithS1 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:95:19: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS2 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:97:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS3 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:99:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS4 with G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:105:19: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -632,54 +632,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class WithS7 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:107:19: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS8 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:157:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumWithS1 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:159:22: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS2 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:161:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS3 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:163:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS4 with G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:169:22: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -687,24 +687,24 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumWithS7 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:171:22: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS8 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // import self as self; import "dart:core" as core; typedef F = self::Class> = self::Class; -class Class extends core::Object { +mixin class Class extends core::Object { synthetic constructor •() → self::Class : super core::Object::•() ; @@ -714,7 +714,7 @@ class ConcreteClass extends core::Object implements self::Class = self::Class> extends core::Object { +mixin class G = self::Class> extends core::Object { synthetic constructor •() → self::G : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.outline.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.outline.expect index 834bd311c51..6e9762141ca 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.outline.expect @@ -62,36 +62,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ExtendsS1 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:31:25: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS2 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:33:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS3 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:35:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS4 extends G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:41:25: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -99,18 +99,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ExtendsS7 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:43:25: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS8 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:45:31: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -172,36 +172,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ImplementsS1 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:63:31: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS2 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:65:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS3 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:67:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS4 implements G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:73:31: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -209,18 +209,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ImplementsS7 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:75:31: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS8 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:77:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -337,36 +337,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumImplementsS1 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:127:34: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS2 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:129:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS3 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:131:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS4 implements G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:137:34: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -374,18 +374,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS7 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:139:34: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS8 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:141:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -502,36 +502,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // mixin MixinOnS1 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:191:20: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS2 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:193:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS3 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:195:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS4 on G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:201:20: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -539,18 +539,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:203:20: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:217:28: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Object' is from 'dart:core'. @@ -577,54 +577,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:235:28: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:93:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // class WithS1 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:95:19: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS2 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:97:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS3 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:99:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS4 with G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:105:19: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -632,54 +632,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class WithS7 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:107:19: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS8 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:157:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumWithS1 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:159:22: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS2 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:161:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS3 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:163:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS4 with G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:169:22: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -687,24 +687,24 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumWithS7 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:171:22: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS8 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // import self as self; import "dart:core" as core; typedef F = self::Class> = self::Class; -class Class extends core::Object { +mixin class Class extends core::Object { synthetic constructor •() → self::Class ; } @@ -712,7 +712,7 @@ class ConcreteClass extends core::Object implements self::Class = self::Class> extends core::Object { +mixin class G = self::Class> extends core::Object { synthetic constructor •() → self::G ; } diff --git a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.transformed.expect index 769b6c58bae..1d2b416c81d 100644 --- a/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/bounds_supertypes.dart.weak.transformed.expect @@ -62,36 +62,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ExtendsS1 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:31:25: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS2 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:33:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS3 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:35:25: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS4 extends G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:41:25: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -99,18 +99,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ExtendsS7 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:43:25: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ExtendsS8 extends G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:45:31: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -172,36 +172,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // class ImplementsS1 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:63:31: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS2 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:65:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS3 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:67:31: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS4 implements G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:73:31: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -209,18 +209,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class ImplementsS7 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:75:31: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class ImplementsS8 implements G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:77:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -337,36 +337,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumImplementsS1 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:127:34: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS2 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:129:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS3 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:131:34: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS4 implements G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:137:34: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -374,18 +374,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS7 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:139:34: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumImplementsS8 implements G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:141:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. @@ -502,36 +502,36 @@ library /*isNonNullableByDefault*/; // Try specifying type arguments explicitly so that they conform to the bounds. // mixin MixinOnS1 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:191:20: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS2 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:193:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS3 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:195:20: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS4 on G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:201:20: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -539,18 +539,18 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:203:20: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // mixin MixinOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:217:28: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'F'. // - 'Object' is from 'dart:core'. @@ -577,54 +577,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS7 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:235:28: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // extension ExtensionOnS8 on G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:93:19: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // class WithS1 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:95:19: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS2 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:97:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS3 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:99:19: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS4 with G> {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:105:19: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -632,54 +632,54 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // class WithS7 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:107:19: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // class WithS8 with G {} // Error // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:157:22: Error: Inferred type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try specifying type arguments explicitly so that they conform to the bounds. // enum EnumWithS1 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:159:22: Error: Type argument 'dynamic' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS2 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:161:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS3 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:163:22: Error: Type argument 'Class' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS4 with G> /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:169:22: Error: Type argument 'Object' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Object' is from 'dart:core'. @@ -687,24 +687,24 @@ library /*isNonNullableByDefault*/; // Try changing type arguments so that they conform to the bounds. // enum EnumWithS7 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // // pkg/front_end/testcases/general/bounds_supertypes.dart:171:22: Error: Type argument 'int' doesn't conform to the bound 'Class' of the type variable 'X' on 'G'. // - 'Class' is from 'pkg/front_end/testcases/general/bounds_supertypes.dart'. // Try changing type arguments so that they conform to the bounds. // enum EnumWithS8 with G /* Error */ { a } // ^ -// pkg/front_end/testcases/general/bounds_supertypes.dart:11:9: Context: This is the type variable whose bound isn't conformed to. -// class G> {} -// ^ +// pkg/front_end/testcases/general/bounds_supertypes.dart:11:15: Context: This is the type variable whose bound isn't conformed to. +// mixin class G> {} +// ^ // import self as self; import "dart:core" as core; typedef F = self::Class> = self::Class; -class Class extends core::Object { +mixin class Class extends core::Object { synthetic constructor •() → self::Class : super core::Object::•() ; @@ -714,7 +714,7 @@ class ConcreteClass extends core::Object implements self::Class = self::Class> extends core::Object { +mixin class G = self::Class> extends core::Object { synthetic constructor •() → self::G : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.expect index 25d5cf7c1b4..d8f4beeb454 100644 --- a/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.expect +++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.expect @@ -316,7 +316,7 @@ library /*isNonNullableByDefault*/; // ^^^^ // // pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // C.(); // ^ // pkg/front_end/testcases/general/duplicated_declarations.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.transformed.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.transformed.expect index 25d5cf7c1b4..d8f4beeb454 100644 --- a/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.strong.transformed.expect @@ -316,7 +316,7 @@ library /*isNonNullableByDefault*/; // ^^^^ // // pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // C.(); // ^ // pkg/front_end/testcases/general/duplicated_declarations.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect index cf7c9cb2acb..b3b3dec64ca 100644 --- a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect +++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.expect @@ -316,7 +316,7 @@ library /*isNonNullableByDefault*/; // ^^^^ // // pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // C.(); // ^ // pkg/front_end/testcases/general/duplicated_declarations.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect index cf7c9cb2acb..b3b3dec64ca 100644 --- a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.modular.expect @@ -316,7 +316,7 @@ library /*isNonNullableByDefault*/; // ^^^^ // // pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // C.(); // ^ // pkg/front_end/testcases/general/duplicated_declarations.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.transformed.expect b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.transformed.expect index cf7c9cb2acb..b3b3dec64ca 100644 --- a/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/duplicated_declarations.dart.weak.transformed.expect @@ -316,7 +316,7 @@ library /*isNonNullableByDefault*/; // ^^^^ // // pkg/front_end/testcases/general/duplicated_declarations.dart:40:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // C.(); // ^ // pkg/front_end/testcases/general/duplicated_declarations.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. 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 f7db384b28a..17cdd2d08a8 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 @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:7: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 A {} // ^^^^^ +// 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:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: 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. // abstract final class B {} // ^^^^^ +// 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:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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; // ^^^^^ +// 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 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; 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 07744559f91..1356a8b365b 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 @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:7: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 A {} // ^^^^^ +// 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:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: 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. // abstract final class B {} // ^^^^^ +// 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:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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; // ^^^^^ +// 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 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; 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 f7db384b28a..17cdd2d08a8 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 @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:7: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 A {} // ^^^^^ +// 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:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: 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. // abstract final class B {} // ^^^^^ +// 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:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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; // ^^^^^ +// 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 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; 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 f7db384b28a..17cdd2d08a8 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 @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:7: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 A {} // ^^^^^ +// 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:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: 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. // abstract final class B {} // ^^^^^ +// 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:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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; // ^^^^^ +// 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 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; 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 deefd106d1a..841c233592a 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 @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:7: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 A {} // ^^^^^ +// 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:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: 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. // abstract final class B {} // ^^^^^ +// 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:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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; // ^^^^^ +// 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 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; 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 07744559f91..1356a8b365b 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 @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/final_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:7: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 A {} // ^^^^^ +// 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:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/final_class_declaration.dart:9:10: 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. // abstract final class B {} // ^^^^^ +// 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:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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; // ^^^^^ +// 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 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/interface_class_declaration.dart b/pkg/front_end/testcases/general/interface_class_declaration.dart index 4ebf140b42d..17c05c8bf4c 100644 --- a/pkg/front_end/testcases/general/interface_class_declaration.dart +++ b/pkg/front_end/testcases/general/interface_class_declaration.dart @@ -2,7 +2,7 @@ // 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. -// @dart=2.18 +// @dart=2.19 interface class A {} 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 d0b06cc9e4c..32e8bb131b2 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 @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:7: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 A {} // ^^^^^^^^^ +// 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:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: 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. // abstract interface class B {} // ^^^^^^^^^ +// 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:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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; // ^^^^^^^^^ +// 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 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; 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 12d8ed92630..5ebab4a20c3 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 @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:7: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 A {} // ^^^^^^^^^ +// 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:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: 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. // abstract interface class B {} // ^^^^^^^^^ +// 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:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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; // ^^^^^^^^^ +// 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 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; 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 b7be3e955c6..731966c8378 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.18 +// @dart = 2.19 interface class A {} + abstract interface class B {} -interface -mixin M {} + +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 new file mode 100644 index 00000000000..4fb6b142882 --- /dev/null +++ b/pkg/front_end/testcases/general/interface_class_declaration.dart.textual_outline_modelled.expect @@ -0,0 +1,8 @@ +// @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 d0b06cc9e4c..32e8bb131b2 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 @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:7: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 A {} // ^^^^^^^^^ +// 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:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: 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. // abstract interface class B {} // ^^^^^^^^^ +// 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:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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; // ^^^^^^^^^ +// 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 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; 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 d0b06cc9e4c..32e8bb131b2 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 @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:7: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 A {} // ^^^^^^^^^ +// 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:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: 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. // abstract interface class B {} // ^^^^^^^^^ +// 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:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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; // ^^^^^^^^^ +// 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 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; 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 ec258abb32d..68c962a0762 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 @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:7: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 A {} // ^^^^^^^^^ +// 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:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: 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. // abstract interface class B {} // ^^^^^^^^^ +// 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:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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; // ^^^^^^^^^ +// 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 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; 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 12d8ed92630..5ebab4a20c3 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 @@ -2,25 +2,37 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/interface_class_declaration.dart:7:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:7: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 A {} // ^^^^^^^^^ +// 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:9:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/interface_class_declaration.dart:9:10: 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. // abstract interface class B {} // ^^^^^^^^^ +// 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:11:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// 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; // ^^^^^^^^^ +// 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 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart b/pkg/front_end/testcases/general/mixin_class_declaration.dart index d2079356bf5..aaf2ecbdebc 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart @@ -2,6 +2,8 @@ // 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. +// @dart=2.19 + mixin class A {} abstract mixin class B {} diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.expect index 7bbee71a204..77897c19ac9 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.expect @@ -2,20 +2,29 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:7: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. // mixin class A {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_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/mixin_class_declaration.dart:7:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:9:10: 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. // abstract mixin class B {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_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/mixin_class_declaration.dart:10:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_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. // mixin class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.transformed.expect index 41d44eee315..3f842df4b22 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.strong.transformed.expect @@ -2,20 +2,29 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:7: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. // mixin class A {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_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/mixin_class_declaration.dart:7:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:9:10: 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. // abstract mixin class B {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_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/mixin_class_declaration.dart:10:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_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. // mixin class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline.expect index 0cc7865b4c0..7da1e5420e2 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline.expect @@ -1,3 +1,4 @@ +// @dart = 2.19 mixin class A {} abstract mixin class B {} diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline_modelled.expect index 02b0ae06607..07fc2f8552f 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.textual_outline_modelled.expect @@ -1,3 +1,4 @@ +// @dart = 2.19 abstract mixin class B {} mixin M {} diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.expect index 7bbee71a204..77897c19ac9 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.expect @@ -2,20 +2,29 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:7: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. // mixin class A {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_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/mixin_class_declaration.dart:7:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:9:10: 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. // abstract mixin class B {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_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/mixin_class_declaration.dart:10:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_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. // mixin class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.modular.expect index 7bbee71a204..77897c19ac9 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.modular.expect @@ -2,20 +2,29 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:7: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. // mixin class A {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_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/mixin_class_declaration.dart:7:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:9:10: 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. // abstract mixin class B {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_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/mixin_class_declaration.dart:10:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_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. // mixin class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.outline.expect index 1ed4e11db51..d1bf3d2b7da 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.outline.expect @@ -2,20 +2,29 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:7: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. // mixin class A {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_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/mixin_class_declaration.dart:7:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:9:10: 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. // abstract mixin class B {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_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/mixin_class_declaration.dart:10:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_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. // mixin class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.transformed.expect index 41d44eee315..3f842df4b22 100644 --- a/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_class_declaration.dart.weak.transformed.expect @@ -2,20 +2,29 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:7: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. // mixin class A {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_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/mixin_class_declaration.dart:7:10: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_class_declaration.dart:9:10: 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. // abstract mixin class B {} // ^^^^^ +// pkg/front_end/testcases/general/mixin_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/mixin_class_declaration.dart:10:1: Error: This requires the experimental 'class-modifiers' language feature to be enabled. -// Try passing the '--enable-experiment=class-modifiers' command line option. +// pkg/front_end/testcases/general/mixin_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. // mixin class C = Object with M; // ^^^^^ +// pkg/front_end/testcases/general/mixin_class_declaration.dart:5:1: Context: This is the annotation that opts out this library from the 'class-modifiers' language feature. +// // @dart=2.19 +// ^^^^^^^^^^^^^ // import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart b/pkg/front_end/testcases/general/mixin_conflicts.dart index 6afebe0db85..2e6c9960d39 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart @@ -2,19 +2,19 @@ // 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. -// This class has no problems. -class M { +// This mixin has no problems. +mixin M { foo() {} } -// This class has no problems. -class N = Object with M; +// This mixin class has no problems. +mixin class N = Object with M; // This class has no problems. class C extends Object with N {} // This class has no problems. -abstract class M2 implements M { +mixin M2 implements M { bar() {} } diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.expect index 2171271aa5b..807ac54df0d 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.expect @@ -33,13 +33,10 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic {} } -class N = core::Object with self::M /*hasConstConstructor*/ { +mixin class N = core::Object with self::M /*hasConstConstructor*/ { const synthetic constructor •() → self::N : super core::Object::•() ; @@ -58,10 +55,7 @@ class C extends self::_C&Object&N { : super self::_C&Object&N::•() ; } -abstract class M2 extends core::Object implements self::M { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object implements self::M /*isMixinDeclaration*/ { method bar() → dynamic {} } class N2 = core::Object with self::M2 /*hasConstConstructor*/ { diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.transformed.expect index badca397770..e6780e24d4a 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.strong.transformed.expect @@ -33,13 +33,10 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic {} } -class N extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/ { +mixin class N extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::N : super core::Object::•() ; @@ -56,10 +53,7 @@ class C extends self::_C&Object&N { : super self::_C&Object&N::•() ; } -abstract class M2 extends core::Object implements self::M { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object implements self::M /*isMixinDeclaration*/ { method bar() → dynamic {} } class N2 extends core::Object implements self::M2 /*isEliminatedMixin,hasConstConstructor*/ { diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline.expect index 5f79e28824f..c615ad91bc5 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline.expect @@ -1,15 +1,13 @@ -class M { +mixin M { foo() {} } - -class N = Object with M; +mixin class N = Object with M; class C extends Object with N {} -abstract class M2 implements M { +mixin M2 implements M { bar() {} } - class N2 = Object with M2; abstract class N3 = Object with M2; diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline_modelled.expect index b2ad75b20b1..2d227232ea6 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.textual_outline_modelled.expect @@ -1,19 +1,17 @@ abstract class C3 extends Object with M2 {} -abstract class M2 implements M { - bar() {} -} - abstract class N3 = Object with M2; class C extends Object with N {} class C2 extends Object with M2 {} -class M { - foo() {} -} - -class N = Object with M; class N2 = Object with M2; main() {} +mixin M { + foo() {} +} +mixin M2 implements M { + bar() {} +} +mixin class N = Object with M; diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.expect index 2171271aa5b..807ac54df0d 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.expect @@ -33,13 +33,10 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic {} } -class N = core::Object with self::M /*hasConstConstructor*/ { +mixin class N = core::Object with self::M /*hasConstConstructor*/ { const synthetic constructor •() → self::N : super core::Object::•() ; @@ -58,10 +55,7 @@ class C extends self::_C&Object&N { : super self::_C&Object&N::•() ; } -abstract class M2 extends core::Object implements self::M { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object implements self::M /*isMixinDeclaration*/ { method bar() → dynamic {} } class N2 = core::Object with self::M2 /*hasConstConstructor*/ { diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.modular.expect index 2171271aa5b..807ac54df0d 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.modular.expect @@ -33,13 +33,10 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic {} } -class N = core::Object with self::M /*hasConstConstructor*/ { +mixin class N = core::Object with self::M /*hasConstConstructor*/ { const synthetic constructor •() → self::N : super core::Object::•() ; @@ -58,10 +55,7 @@ class C extends self::_C&Object&N { : super self::_C&Object&N::•() ; } -abstract class M2 extends core::Object implements self::M { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object implements self::M /*isMixinDeclaration*/ { method bar() → dynamic {} } class N2 = core::Object with self::M2 /*hasConstConstructor*/ { diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.outline.expect index 57ca6116ca3..ab8be3bfe14 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.outline.expect @@ -33,13 +33,11 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M extends core::Object { - synthetic constructor •() → self::M - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic ; } -class N = core::Object with self::M /*hasConstConstructor*/ { +mixin class N = core::Object with self::M /*hasConstConstructor*/ { const synthetic constructor •() → self::N : super core::Object::•() ; @@ -57,9 +55,7 @@ class C extends self::_C&Object&N { synthetic constructor •() → self::C ; } -abstract class M2 extends core::Object implements self::M { - synthetic constructor •() → self::M2 - ; +abstract class M2 extends core::Object implements self::M /*isMixinDeclaration*/ { method bar() → dynamic ; } diff --git a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.transformed.expect index badca397770..e6780e24d4a 100644 --- a/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_conflicts.dart.weak.transformed.expect @@ -33,13 +33,10 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic {} } -class N extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/ { +mixin class N extends core::Object implements self::M /*isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::N : super core::Object::•() ; @@ -56,10 +53,7 @@ class C extends self::_C&Object&N { : super self::_C&Object&N::•() ; } -abstract class M2 extends core::Object implements self::M { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object implements self::M /*isMixinDeclaration*/ { method bar() → dynamic {} } class N2 extends core::Object implements self::M2 /*isEliminatedMixin,hasConstConstructor*/ { diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart index 2cd6db24699..0db573be419 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart @@ -4,7 +4,7 @@ class A {} -class C { +mixin class C { late T _field; foo(T x) { diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.expect index ef14d3ef036..d44c36fa345 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.expect @@ -7,7 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class C extends core::Object { +mixin class C extends core::Object { late covariant-by-class field self::C::T _field; synthetic constructor •() → self::C : super core::Object::•() diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.transformed.expect index a68dbafc1b1..bb485b02fff 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.strong.transformed.expect @@ -7,7 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class C extends core::Object { +mixin class C extends core::Object { late covariant-by-class field self::C::T _field; synthetic constructor •() → self::C : super core::Object::•() diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline.expect index 1c97b579a69..ebe24b7ae5f 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline.expect @@ -1,6 +1,6 @@ class A {} -class C { +mixin class C { late T _field; foo(T x) {} } diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline_modelled.expect index 94c1f73c7f9..8f206744c23 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.textual_outline_modelled.expect @@ -2,13 +2,13 @@ class A {} class B extends A {} -class C { - foo(T x) {} - late T _field; -} - class D extends C {} class Foo extends Object with C {} main() {} + +mixin class C { + foo(T x) {} + late T _field; +} diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.expect index ef14d3ef036..d44c36fa345 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.expect @@ -7,7 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class C extends core::Object { +mixin class C extends core::Object { late covariant-by-class field self::C::T _field; synthetic constructor •() → self::C : super core::Object::•() diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.modular.expect index ef14d3ef036..d44c36fa345 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.modular.expect @@ -7,7 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class C extends core::Object { +mixin class C extends core::Object { late covariant-by-class field self::C::T _field; synthetic constructor •() → self::C : super core::Object::•() diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.outline.expect index 9a6b3bb30d9..fcbe9f08ace 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.outline.expect @@ -6,7 +6,7 @@ class A extends core::Object { synthetic constructor •() → self::A ; } -class C extends core::Object { +mixin class C extends core::Object { late covariant-by-class field self::C::T _field; synthetic constructor •() → self::C ; diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.transformed.expect index a68dbafc1b1..bb485b02fff 100644 --- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field2.dart.weak.transformed.expect @@ -7,7 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class C extends core::Object { +mixin class C extends core::Object { late covariant-by-class field self::C::T _field; synthetic constructor •() → self::C : super core::Object::•() diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart b/pkg/front_end/testcases/general/mixin_stubs.dart index 59f06918899..1af341a496f 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart +++ b/pkg/front_end/testcases/general/mixin_stubs.dart @@ -9,7 +9,7 @@ abstract class Super { void abstractExtendsAbstractMixin(); } -abstract class MixinClass { +abstract mixin class MixinClass { void concreteExtendsConcreteMixin() {} void concreteExtendsAbstractMixin(); void concreteMixin() {} diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.strong.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.strong.expect index 61328597cdc..0592345e70c 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.strong.expect @@ -11,7 +11,7 @@ abstract class Super extends core::Object { abstract method abstractExtendsConcreteMixin() → void; abstract method abstractExtendsAbstractMixin() → void; } -abstract class MixinClass extends core::Object { +abstract mixin class MixinClass extends core::Object { synthetic constructor •() → self::MixinClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.strong.transformed.expect index 1350fad1641..2f2596cd3dc 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.strong.transformed.expect @@ -11,7 +11,7 @@ abstract class Super extends core::Object { abstract method abstractExtendsConcreteMixin() → void; abstract method abstractExtendsAbstractMixin() → void; } -abstract class MixinClass extends core::Object { +abstract mixin class MixinClass extends core::Object { synthetic constructor •() → self::MixinClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline.expect index 9a72527df43..87c5b5c3ac0 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline.expect @@ -5,7 +5,7 @@ abstract class Super { void abstractExtendsAbstractMixin(); } -abstract class MixinClass { +abstract mixin class MixinClass { void concreteExtendsConcreteMixin() {} void concreteExtendsAbstractMixin(); void concreteMixin() {} diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline_modelled.expect index b8362add8bd..903fe5f9c80 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.textual_outline_modelled.expect @@ -5,15 +5,6 @@ abstract class ClassExtendsMixin extends Super with Mixin {} abstract class ClassExtendsMixinClass extends Super with MixinClass {} -abstract class MixinClass { - void abstractExtendsAbstractMixin(); - void abstractExtendsConcreteMixin() {} - void abstractMixin(); - void concreteExtendsAbstractMixin(); - void concreteExtendsConcreteMixin() {} - void concreteMixin() {} -} - abstract class SubclassEqMixin extends ClassEqMixin { method() {} } @@ -37,6 +28,15 @@ abstract class Super { void concreteExtendsConcreteMixin() {} } +abstract mixin class MixinClass { + void abstractExtendsAbstractMixin(); + void abstractExtendsConcreteMixin() {} + void abstractMixin(); + void concreteExtendsAbstractMixin(); + void concreteExtendsConcreteMixin() {} + void concreteMixin() {} +} + main() {} mixin Mixin { void abstractExtendsAbstractMixin(); diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.expect index 61328597cdc..0592345e70c 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.expect @@ -11,7 +11,7 @@ abstract class Super extends core::Object { abstract method abstractExtendsConcreteMixin() → void; abstract method abstractExtendsAbstractMixin() → void; } -abstract class MixinClass extends core::Object { +abstract mixin class MixinClass extends core::Object { synthetic constructor •() → self::MixinClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.modular.expect index 61328597cdc..0592345e70c 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.modular.expect @@ -11,7 +11,7 @@ abstract class Super extends core::Object { abstract method abstractExtendsConcreteMixin() → void; abstract method abstractExtendsAbstractMixin() → void; } -abstract class MixinClass extends core::Object { +abstract mixin class MixinClass extends core::Object { synthetic constructor •() → self::MixinClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.outline.expect index 781d4f51afc..2bb9fb801c7 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.outline.expect @@ -12,7 +12,7 @@ abstract class Super extends core::Object { abstract method abstractExtendsConcreteMixin() → void; abstract method abstractExtendsAbstractMixin() → void; } -abstract class MixinClass extends core::Object { +abstract mixin class MixinClass extends core::Object { synthetic constructor •() → self::MixinClass ; method concreteExtendsConcreteMixin() → void diff --git a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.transformed.expect index 1350fad1641..2f2596cd3dc 100644 --- a/pkg/front_end/testcases/general/mixin_stubs.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_stubs.dart.weak.transformed.expect @@ -11,7 +11,7 @@ abstract class Super extends core::Object { abstract method abstractExtendsConcreteMixin() → void; abstract method abstractExtendsAbstractMixin() → void; } -abstract class MixinClass extends core::Object { +abstract mixin class MixinClass extends core::Object { synthetic constructor •() → self::MixinClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/general/records_opt_out.dart.strong.expect b/pkg/front_end/testcases/general/records_opt_out.dart.strong.expect index 0ac893f2f98..77debef7cd4 100644 --- a/pkg/front_end/testcases/general/records_opt_out.dart.strong.expect +++ b/pkg/front_end/testcases/general/records_opt_out.dart.strong.expect @@ -33,7 +33,7 @@ library /*isNonNullableByDefault*/; // ^ // // pkg/front_end/testcases/general/records_opt_out.dart:7:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String) method1(int a, String b) => (a, b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -41,7 +41,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:8:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method2([(int, String) record = const (0, '')]) => record.$1; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -49,7 +49,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:9:46: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method3([(int, String) record = const (0, '')]) => record.$2; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -57,7 +57,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:10:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // ({int a, String b}) method4(int a, String b) => (a: a, b: b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -65,7 +65,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:11:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method5([({int a, String b}) record = const (a: 0, b: '')]) => record.a; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -73,7 +73,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:12:52: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method6([({int a, String b}) record = const (a: 0, b: '')]) => record.b; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/records_opt_out.dart.strong.transformed.expect b/pkg/front_end/testcases/general/records_opt_out.dart.strong.transformed.expect index 0ac893f2f98..77debef7cd4 100644 --- a/pkg/front_end/testcases/general/records_opt_out.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/records_opt_out.dart.strong.transformed.expect @@ -33,7 +33,7 @@ library /*isNonNullableByDefault*/; // ^ // // pkg/front_end/testcases/general/records_opt_out.dart:7:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String) method1(int a, String b) => (a, b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -41,7 +41,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:8:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method2([(int, String) record = const (0, '')]) => record.$1; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -49,7 +49,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:9:46: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method3([(int, String) record = const (0, '')]) => record.$2; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -57,7 +57,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:10:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // ({int a, String b}) method4(int a, String b) => (a: a, b: b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -65,7 +65,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:11:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method5([({int a, String b}) record = const (a: 0, b: '')]) => record.a; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -73,7 +73,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:12:52: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method6([({int a, String b}) record = const (a: 0, b: '')]) => record.b; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/records_opt_out.dart.weak.expect b/pkg/front_end/testcases/general/records_opt_out.dart.weak.expect index 0ac893f2f98..77debef7cd4 100644 --- a/pkg/front_end/testcases/general/records_opt_out.dart.weak.expect +++ b/pkg/front_end/testcases/general/records_opt_out.dart.weak.expect @@ -33,7 +33,7 @@ library /*isNonNullableByDefault*/; // ^ // // pkg/front_end/testcases/general/records_opt_out.dart:7:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String) method1(int a, String b) => (a, b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -41,7 +41,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:8:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method2([(int, String) record = const (0, '')]) => record.$1; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -49,7 +49,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:9:46: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method3([(int, String) record = const (0, '')]) => record.$2; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -57,7 +57,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:10:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // ({int a, String b}) method4(int a, String b) => (a: a, b: b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -65,7 +65,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:11:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method5([({int a, String b}) record = const (a: 0, b: '')]) => record.a; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -73,7 +73,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:12:52: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method6([({int a, String b}) record = const (a: 0, b: '')]) => record.b; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/records_opt_out.dart.weak.modular.expect b/pkg/front_end/testcases/general/records_opt_out.dart.weak.modular.expect index 0ac893f2f98..77debef7cd4 100644 --- a/pkg/front_end/testcases/general/records_opt_out.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/records_opt_out.dart.weak.modular.expect @@ -33,7 +33,7 @@ library /*isNonNullableByDefault*/; // ^ // // pkg/front_end/testcases/general/records_opt_out.dart:7:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String) method1(int a, String b) => (a, b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -41,7 +41,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:8:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method2([(int, String) record = const (0, '')]) => record.$1; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -49,7 +49,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:9:46: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method3([(int, String) record = const (0, '')]) => record.$2; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -57,7 +57,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:10:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // ({int a, String b}) method4(int a, String b) => (a: a, b: b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -65,7 +65,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:11:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method5([({int a, String b}) record = const (a: 0, b: '')]) => record.a; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -73,7 +73,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:12:52: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method6([({int a, String b}) record = const (a: 0, b: '')]) => record.b; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/general/records_opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/general/records_opt_out.dart.weak.transformed.expect index 0ac893f2f98..77debef7cd4 100644 --- a/pkg/front_end/testcases/general/records_opt_out.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/records_opt_out.dart.weak.transformed.expect @@ -33,7 +33,7 @@ library /*isNonNullableByDefault*/; // ^ // // pkg/front_end/testcases/general/records_opt_out.dart:7:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String) method1(int a, String b) => (a, b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -41,7 +41,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:8:43: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method2([(int, String) record = const (0, '')]) => record.$1; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -49,7 +49,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:9:46: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method3([(int, String) record = const (0, '')]) => record.$2; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -57,7 +57,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:10:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // ({int a, String b}) method4(int a, String b) => (a: a, b: b); // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -65,7 +65,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:11:49: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // int method5([({int a, String b}) record = const (a: 0, b: '')]) => record.a; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -73,7 +73,7 @@ library /*isNonNullableByDefault*/; // ^^^^^^^^^^^^^ // // pkg/front_end/testcases/general/records_opt_out.dart:12:52: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // String method6([({int a, String b}) record = const (a: 0, b: '')]) => record.b; // ^ // pkg/front_end/testcases/general/records_opt_out.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/incremental/strongmode_mixins.yaml b/pkg/front_end/testcases/incremental/strongmode_mixins.yaml index fbfb5bdaf85..9337d661657 100644 --- a/pkg/front_end/testcases/incremental/strongmode_mixins.yaml +++ b/pkg/front_end/testcases/incremental/strongmode_mixins.yaml @@ -16,4 +16,4 @@ sources: class A extends Object with B, C {} b.dart: | mixin C on B {} - abstract class B extends Object {} \ No newline at end of file + abstract mixin class B extends Object {} diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart index 3fb5e10c825..25f593d3e7c 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart @@ -9,7 +9,7 @@ abstract class A { int? get x; } -class B { +mixin class B { int? get x => 0; } diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.expect index 4afb53daa74..10f00b756ec 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract get x() → core::int?; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.transformed.expect index 435793aef9c..fb355b88430 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.transformed.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract get x() → core::int?; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline.expect index d6cce37745c..9e2d66e5478 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline.expect @@ -4,7 +4,7 @@ abstract class A { int? get x; } -class B { +mixin class B { int? get x => 0; } diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline_modelled.expect index d6cce37745c..86b78d4ffda 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline_modelled.expect @@ -4,10 +4,6 @@ abstract class A { int? get x; } -class B { - int? get x => 0; -} - class C extends A { var x; } @@ -29,3 +25,7 @@ class G extends Object with B { } main() {} + +mixin class B { + int? get x => 0; +} diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.expect index 4afb53daa74..10f00b756ec 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract get x() → core::int?; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.modular.expect index 4afb53daa74..10f00b756ec 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.modular.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.modular.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract get x() → core::int?; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.outline.expect index 011e3b635b3..11587bd8f47 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.outline.expect @@ -7,7 +7,7 @@ abstract class A extends core::Object { ; abstract get x() → core::int?; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B ; get x() → core::int? diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.transformed.expect index 435793aef9c..fb355b88430 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.transformed.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract get x() → core::int?; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart index 5e9a8f0521c..e0e8b071a1c 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart @@ -9,7 +9,7 @@ abstract class A { void set x(int? value); } -class B { +mixin class B { void set x(int? value) {} } diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.expect index 379ac213dee..25ad7241219 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract set x(core::int? value) → void; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.transformed.expect index d733625ea53..dd290c30e46 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.transformed.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract set x(core::int? value) → void; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline.expect index 441c5f839ba..30348449d40 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline.expect @@ -4,7 +4,7 @@ abstract class A { void set x(int? value); } -class B { +mixin class B { void set x(int? value) {} } diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline_modelled.expect index 441c5f839ba..2a091e0f1d5 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline_modelled.expect @@ -4,10 +4,6 @@ abstract class A { void set x(int? value); } -class B { - void set x(int? value) {} -} - class C extends A { var x; } @@ -29,3 +25,7 @@ class G extends Object with B { } main() {} + +mixin class B { + void set x(int? value) {} +} diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.expect index 379ac213dee..25ad7241219 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract set x(core::int? value) → void; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.modular.expect index 379ac213dee..25ad7241219 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.modular.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.modular.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract set x(core::int? value) → void; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.outline.expect index f37771ee737..34fe67123a0 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.outline.expect @@ -7,7 +7,7 @@ abstract class A extends core::Object { ; abstract set x(core::int? value) → void; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B ; set x(core::int? value) → void diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.transformed.expect index d733625ea53..dd290c30e46 100644 --- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.transformed.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { ; abstract set x(core::int? value) → void; } -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart index 04db533bfd3..4db596867df 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart @@ -4,7 +4,7 @@ class I {} -class M0 extends I> {} +mixin class M0 extends I> {} class M1 extends I> {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.expect index a9334ea2586..762fa33eb7e 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:7:27: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. +// mixin class M0 extends I> {} +// ^ +// // pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:30: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. // class A extends M2 with M0 {} // ^ @@ -14,7 +18,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends self::I> { +mixin class M0 extends self::I> { synthetic constructor •() → self::M0 : super self::I::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.transformed.expect index 668323bbcaf..102626cc42c 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.transformed.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:7:27: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. +// mixin class M0 extends I> {} +// ^ +// // pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:30: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. // class A extends M2 with M0 {} // ^ @@ -14,7 +18,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends self::I> { +mixin class M0 extends self::I> { synthetic constructor •() → self::M0 : super self::I::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline.expect index dd6e38ea2cb..30e79055f20 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline.expect @@ -1,6 +1,6 @@ class I {} -class M0 extends I> {} +mixin class M0 extends I> {} class M1 extends I> {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline_modelled.expect index 5ca8e99071f..becb65d526f 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline_modelled.expect @@ -2,10 +2,10 @@ class A extends M2 with M0 {} class I {} -class M0 extends I> {} - class M1 extends I> {} class M2 extends M1> {} main() {} + +mixin class M0 extends I> {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.expect index a9334ea2586..762fa33eb7e 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:7:27: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. +// mixin class M0 extends I> {} +// ^ +// // pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:30: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. // class A extends M2 with M0 {} // ^ @@ -14,7 +18,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends self::I> { +mixin class M0 extends self::I> { synthetic constructor •() → self::M0 : super self::I::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.modular.expect index a9334ea2586..762fa33eb7e 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.modular.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.modular.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:7:27: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. +// mixin class M0 extends I> {} +// ^ +// // pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:30: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. // class A extends M2 with M0 {} // ^ @@ -14,7 +18,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends self::I> { +mixin class M0 extends self::I> { synthetic constructor •() → self::M0 : super self::I::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.outline.expect index ac7d6c93409..47debf78c21 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.outline.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:7:27: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. +// mixin class M0 extends I> {} +// ^ +// // pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:30: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. // class A extends M2 with M0 {} // ^ @@ -13,7 +17,7 @@ class I extends core::Object { synthetic constructor •() → self::I ; } -class M0 extends self::I> { +mixin class M0 extends self::I> { synthetic constructor •() → self::M0 ; } diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.transformed.expect index 668323bbcaf..102626cc42c 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.transformed.expect @@ -2,6 +2,10 @@ library /*isNonNullableByDefault*/; // // Problems in library: // +// pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:7:27: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. +// mixin class M0 extends I> {} +// ^ +// // pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart:14:30: Error: The class 'M0' can't be used as a mixin because it extends a class other than 'Object'. // class A extends M2 with M0 {} // ^ @@ -14,7 +18,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends self::I> { +mixin class M0 extends self::I> { synthetic constructor •() → self::M0 : super self::I::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart index 0e8f9f2c302..e312bb78361 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart @@ -4,7 +4,7 @@ class I {} -class M0 extends Object implements I {} +mixin class M0 extends Object implements I {} mixin M1 on I {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.expect index 3052ecbfdcc..1cdc24e7050 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.expect @@ -25,7 +25,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.transformed.expect new file mode 100644 index 00000000000..286fbcbded9 --- /dev/null +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.strong.transformed.expect @@ -0,0 +1,43 @@ +library /*isNonNullableByDefault*/; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart:7:13: Error: Expected 'on' instead of this. +// mixin M0 extends Object implements I {} +// ^^^^^^^ +// +// pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart:13:7: Error: '_A&Object&M0' doesn't implement 'I' so it can't be used with 'M1'. +// - 'Object with M0' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'. +// - 'I' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'. +// - 'M1' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'. +// class A extends Object with M0, M1 {} +// ^ +// +import self as self; +import "dart:core" as core; + +class I extends core::Object { + synthetic constructor •() → self::I + : super core::Object::•() + ; +} +abstract class M0 extends core::Object /*isMixinDeclaration*/ { +} +abstract class M1 extends self::I /*isMixinDeclaration*/ { +} +abstract class _A&Object&M0 extends core::Object implements self::M0 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •() → self::_A&Object&M0 + : super core::Object::•() + ; +} +abstract class _A&Object&M0&M1 extends self::_A&Object&M0 implements self::M1 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •() → self::_A&Object&M0&M1 + : super self::_A&Object&M0::•() + ; +} +class A extends self::_A&Object&M0&M1 { + synthetic constructor •() → self::A + : super self::_A&Object&M0&M1::•() + ; +} +static method main() → dynamic {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline.expect index f771fb91c84..646b53c4289 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline.expect @@ -1,6 +1,6 @@ class I {} -class M0 extends Object implements I {} +mixin class M0 extends Object implements I {} mixin M1 on I {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline_modelled.expect index ec16fbb3f94..c3725dc0e7a 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline_modelled.expect @@ -2,7 +2,7 @@ class A extends Object with M0, M1 {} class I {} -class M0 extends Object implements I {} - main() {} mixin M1 on I {} + +mixin class M0 extends Object implements I {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.expect index 3052ecbfdcc..1cdc24e7050 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.expect @@ -25,7 +25,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.modular.expect index 3052ecbfdcc..1cdc24e7050 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.modular.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.modular.expect @@ -25,7 +25,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.outline.expect index 1bf6e3215ff..5073c2fc41b 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.outline.expect @@ -24,7 +24,7 @@ class I extends core::Object { synthetic constructor •() → self::I ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 ; } diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.transformed.expect new file mode 100644 index 00000000000..286fbcbded9 --- /dev/null +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.transformed.expect @@ -0,0 +1,43 @@ +library /*isNonNullableByDefault*/; +// +// Problems in library: +// +// pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart:7:13: Error: Expected 'on' instead of this. +// mixin M0 extends Object implements I {} +// ^^^^^^^ +// +// pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart:13:7: Error: '_A&Object&M0' doesn't implement 'I' so it can't be used with 'M1'. +// - 'Object with M0' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'. +// - 'I' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'. +// - 'M1' is from 'pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart'. +// class A extends Object with M0, M1 {} +// ^ +// +import self as self; +import "dart:core" as core; + +class I extends core::Object { + synthetic constructor •() → self::I + : super core::Object::•() + ; +} +abstract class M0 extends core::Object /*isMixinDeclaration*/ { +} +abstract class M1 extends self::I /*isMixinDeclaration*/ { +} +abstract class _A&Object&M0 extends core::Object implements self::M0 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •() → self::_A&Object&M0 + : super core::Object::•() + ; +} +abstract class _A&Object&M0&M1 extends self::_A&Object&M0 implements self::M1 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •() → self::_A&Object&M0&M1 + : super self::_A&Object&M0::•() + ; +} +class A extends self::_A&Object&M0&M1 { + synthetic constructor •() → self::A + : super self::_A&Object&M0&M1::•() + ; +} +static method main() → dynamic {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart index 850e2ff0c41..98ba84f02a3 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart @@ -4,7 +4,7 @@ class I {} -class M0 extends Object implements I {} +mixin class M0 extends Object implements I {} mixin M1 on I {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.strong.expect index adf375a76c5..fec2f446cb7 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.strong.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.strong.expect @@ -15,7 +15,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline.expect index d76d2391917..0630772a415 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline.expect @@ -1,6 +1,6 @@ class I {} -class M0 extends Object implements I {} +mixin class M0 extends Object implements I {} mixin M1 on I {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline_modelled.expect index 38cc5856887..72e77a506a9 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline_modelled.expect @@ -2,7 +2,7 @@ class A extends Object with M0, M1 implements I {} class I {} -class M0 extends Object implements I {} - main() {} mixin M1 on I {} + +mixin class M0 extends Object implements I {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.expect index adf375a76c5..fec2f446cb7 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.expect @@ -15,7 +15,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.modular.expect index adf375a76c5..fec2f446cb7 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.modular.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.modular.expect @@ -15,7 +15,7 @@ class I extends core::Object { : super core::Object::•() ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 : super core::Object::•() ; diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.outline.expect index ca26ae38db8..54b96b1a11d 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.outline.expect @@ -14,7 +14,7 @@ class I extends core::Object { synthetic constructor •() → self::I ; } -class M0 extends core::Object implements self::I { +mixin class M0 extends core::Object implements self::I { synthetic constructor •() → self::M0 ; } diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart b/pkg/front_end/testcases/nnbd/forbidden_supers.dart index d25e7ed0222..0cc7d1635c2 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart @@ -5,7 +5,7 @@ // This test checks for compile-time errors in cases when either Never or T? is // extended, implemented, or mixed in, where T is a type. -class Aoo {} +mixin class Aoo {} class Boo {} diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.expect index 45ecb5c51c9..7383a6f98b7 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.expect @@ -154,7 +154,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Aoo extends core::Object { +mixin class Aoo extends core::Object { synthetic constructor •() → self::Aoo : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.transformed.expect index 36281bff784..ff5568c53f3 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.strong.transformed.expect @@ -154,7 +154,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Aoo extends core::Object { +mixin class Aoo extends core::Object { synthetic constructor •() → self::Aoo : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.textual_outline.expect index 2ebb04db0ba..e1e94d9ae18 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.textual_outline.expect @@ -1,4 +1,4 @@ -class Aoo {} +mixin class Aoo {} class Boo {} class Coo extends Boo with Aoo? {} class Doo extends Aoo? {} diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.expect index 45ecb5c51c9..7383a6f98b7 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.expect @@ -154,7 +154,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Aoo extends core::Object { +mixin class Aoo extends core::Object { synthetic constructor •() → self::Aoo : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.modular.expect index 45ecb5c51c9..7383a6f98b7 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.modular.expect @@ -154,7 +154,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Aoo extends core::Object { +mixin class Aoo extends core::Object { synthetic constructor •() → self::Aoo : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.outline.expect index 94601e34aff..c7fe69b5082 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.outline.expect @@ -154,7 +154,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Aoo extends core::Object { +mixin class Aoo extends core::Object { synthetic constructor •() → self::Aoo ; } diff --git a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.transformed.expect index 36281bff784..ff5568c53f3 100644 --- a/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd/forbidden_supers.dart.weak.transformed.expect @@ -154,7 +154,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Aoo extends core::Object { +mixin class Aoo extends core::Object { synthetic constructor •() → self::Aoo : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart index a2ece5f5a57..0273b30b3bb 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart @@ -16,7 +16,7 @@ class Super { abstract final int extendedAbstractMixedInAbstractField; } -class Mixin { +mixin class Mixin { final int mixedInConcreteField = 0; abstract final int mixedInAbstractField; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline.expect index e4fbdcac137..b3db8cac366 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { abstract final int extendedAbstractMixedInAbstractField; } -class Mixin { +mixin class Mixin { final int mixedInConcreteField = 0; abstract final int mixedInAbstractField; final int extendedConcreteMixedInConcreteField = 0; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline_modelled.expect index a8220b45ae1..45b572367aa 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.textual_outline_modelled.expect @@ -1,14 +1,5 @@ class ClassMixin extends Super with Mixin {} -class Mixin { - abstract final int extendedAbstractMixedInAbstractField; - abstract final int extendedConcreteMixedInAbstractField; - abstract final int mixedInAbstractField; - final int extendedAbstractMixedInConcreteField = 0; - final int extendedConcreteMixedInConcreteField = 0; - final int mixedInConcreteField = 0; -} - class NamedMixin = Super with Mixin; class Super { @@ -21,3 +12,12 @@ class Super { } main() {} + +mixin class Mixin { + abstract final int extendedAbstractMixedInAbstractField; + abstract final int extendedConcreteMixedInAbstractField; + abstract final int mixedInAbstractField; + final int extendedAbstractMixedInConcreteField = 0; + final int extendedConcreteMixedInConcreteField = 0; + final int mixedInConcreteField = 0; +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.expect index aa5c0aa6318..e50fdac2af3 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // abstract final int extendedAbstractMixedInConcreteField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractField // - Mixin.extendedConcreteMixedInAbstractField // - Mixin.mixedInAbstractField @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:30:22: Context: 'Mixin.extendedAbstractMixedInAbstractField' is defined here. // abstract final int extendedAbstractMixedInAbstractField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { abstract get extendedAbstractMixedInConcreteField() → core::int; abstract get extendedAbstractMixedInAbstractField() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { final field core::int mixedInConcreteField = 0; final field core::int extendedConcreteMixedInConcreteField = 0; final field core::int extendedAbstractMixedInConcreteField = 0; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.modular.expect index aa5c0aa6318..e50fdac2af3 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.modular.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // abstract final int extendedAbstractMixedInConcreteField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractField // - Mixin.extendedConcreteMixedInAbstractField // - Mixin.mixedInAbstractField @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:30:22: Context: 'Mixin.extendedAbstractMixedInAbstractField' is defined here. // abstract final int extendedAbstractMixedInAbstractField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { abstract get extendedAbstractMixedInConcreteField() → core::int; abstract get extendedAbstractMixedInAbstractField() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { final field core::int mixedInConcreteField = 0; final field core::int extendedConcreteMixedInConcreteField = 0; final field core::int extendedAbstractMixedInConcreteField = 0; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.outline.expect index 4622863d1a6..1631d36d3be 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.outline.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // abstract final int extendedAbstractMixedInConcreteField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractField // - Mixin.extendedConcreteMixedInAbstractField // - Mixin.mixedInAbstractField @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:30:22: Context: 'Mixin.extendedAbstractMixedInAbstractField' is defined here. // abstract final int extendedAbstractMixedInAbstractField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -111,7 +111,7 @@ class Super extends core::Object { abstract get extendedAbstractMixedInConcreteField() → core::int; abstract get extendedAbstractMixedInAbstractField() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { final field core::int mixedInConcreteField; final field core::int extendedConcreteMixedInConcreteField; final field core::int extendedAbstractMixedInConcreteField; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.transformed.expect index 4a7ba311fd3..e39c2c0f956 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart.weak.transformed.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // abstract final int extendedAbstractMixedInConcreteField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractField // - Mixin.extendedConcreteMixedInAbstractField // - Mixin.mixedInAbstractField @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_final_field.dart:30:22: Context: 'Mixin.extendedAbstractMixedInAbstractField' is defined here. // abstract final int extendedAbstractMixedInAbstractField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { abstract get extendedAbstractMixedInConcreteField() → core::int; abstract get extendedAbstractMixedInAbstractField() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { final field core::int mixedInConcreteField = 0; final field core::int extendedConcreteMixedInConcreteField = 0; final field core::int extendedAbstractMixedInConcreteField = 0; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart index 748e72259ec..81145d9b4f8 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart @@ -16,7 +16,7 @@ class Super { int get extendedAbstractMixedInAbstractGetter; } -class Mixin { +mixin class Mixin { int get mixedInConcreteGetter => 0; int get mixedInAbstractGetter; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline.expect index df3e48805c4..bb3d611bf3d 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { int get extendedAbstractMixedInAbstractGetter; } -class Mixin { +mixin class Mixin { int get mixedInConcreteGetter => 0; int get mixedInAbstractGetter; int get extendedConcreteMixedInConcreteGetter => 0; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline_modelled.expect index e489b9dcf97..7134200a819 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.textual_outline_modelled.expect @@ -1,14 +1,5 @@ class ClassMixin extends Super with Mixin {} -class Mixin { - int get extendedAbstractMixedInAbstractGetter; - int get extendedAbstractMixedInConcreteGetter => 0; - int get extendedConcreteMixedInAbstractGetter; - int get extendedConcreteMixedInConcreteGetter => 0; - int get mixedInAbstractGetter; - int get mixedInConcreteGetter => 0; -} - class NamedMixin = Super with Mixin; class Super { @@ -21,3 +12,12 @@ class Super { } main() {} + +mixin class Mixin { + int get extendedAbstractMixedInAbstractGetter; + int get extendedAbstractMixedInConcreteGetter => 0; + int get extendedConcreteMixedInAbstractGetter; + int get extendedConcreteMixedInConcreteGetter => 0; + int get mixedInAbstractGetter; + int get mixedInConcreteGetter => 0; +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.expect index 09d72f2fb20..0eed33747de 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // int get extendedAbstractMixedInConcreteGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractGetter // - Mixin.extendedConcreteMixedInAbstractGetter // - Mixin.mixedInAbstractGetter @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:30:11: Context: 'Mixin.extendedAbstractMixedInAbstractGetter' is defined here. // int get extendedAbstractMixedInAbstractGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -115,7 +115,7 @@ class Super extends core::Object { return 0; abstract get extendedAbstractMixedInAbstractGetter() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.modular.expect index 09d72f2fb20..0eed33747de 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.modular.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // int get extendedAbstractMixedInConcreteGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractGetter // - Mixin.extendedConcreteMixedInAbstractGetter // - Mixin.mixedInAbstractGetter @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:30:11: Context: 'Mixin.extendedAbstractMixedInAbstractGetter' is defined here. // int get extendedAbstractMixedInAbstractGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -115,7 +115,7 @@ class Super extends core::Object { return 0; abstract get extendedAbstractMixedInAbstractGetter() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.outline.expect index e9a420576e8..8f592953a56 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.outline.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // int get extendedAbstractMixedInConcreteGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractGetter // - Mixin.extendedConcreteMixedInAbstractGetter // - Mixin.mixedInAbstractGetter @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:30:11: Context: 'Mixin.extendedAbstractMixedInAbstractGetter' is defined here. // int get extendedAbstractMixedInAbstractGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -114,7 +114,7 @@ class Super extends core::Object { ; abstract get extendedAbstractMixedInAbstractGetter() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin ; get mixedInConcreteGetter() → core::int diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.transformed.expect index f307297d26f..277f62823ee 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart.weak.transformed.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // int get extendedAbstractMixedInConcreteGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractGetter // - Mixin.extendedConcreteMixedInAbstractGetter // - Mixin.mixedInAbstractGetter @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_getter.dart:30:11: Context: 'Mixin.extendedAbstractMixedInAbstractGetter' is defined here. // int get extendedAbstractMixedInAbstractGetter; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -115,7 +115,7 @@ class Super extends core::Object { return 0; abstract get extendedAbstractMixedInAbstractGetter() → core::int; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart index 89e649d539b..5ce6507b275 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart @@ -16,7 +16,7 @@ class Super { void extendedAbstractMixedInAbstractMethod(); } -class Mixin { +mixin class Mixin { void mixedInConcreteMethod() {} void mixedInAbstractMethod(); diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline.expect index e43b692702c..00e15d55ce8 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { void extendedAbstractMixedInAbstractMethod(); } -class Mixin { +mixin class Mixin { void mixedInConcreteMethod() {} void mixedInAbstractMethod(); void extendedConcreteMixedInConcreteMethod() {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline_modelled.expect index b27951cc2e9..873f82b8041 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.textual_outline_modelled.expect @@ -1,14 +1,5 @@ class ClassMixin extends Super with Mixin {} -class Mixin { - void extendedAbstractMixedInAbstractMethod(); - void extendedAbstractMixedInConcreteMethod() {} - void extendedConcreteMixedInAbstractMethod(); - void extendedConcreteMixedInConcreteMethod() {} - void mixedInAbstractMethod(); - void mixedInConcreteMethod() {} -} - class NamedMixin = Super with Mixin; class Super { @@ -21,3 +12,12 @@ class Super { } main() {} + +mixin class Mixin { + void extendedAbstractMixedInAbstractMethod(); + void extendedAbstractMixedInConcreteMethod() {} + void extendedConcreteMixedInAbstractMethod(); + void extendedConcreteMixedInConcreteMethod() {} + void mixedInAbstractMethod(); + void mixedInConcreteMethod() {} +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.expect index 2c5b76582e9..78bc9dcea7b 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { method extendedConcreteMixedInAbstractMethod() → void {} abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.modular.expect index 2c5b76582e9..78bc9dcea7b 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.modular.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { method extendedConcreteMixedInAbstractMethod() → void {} abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.outline.expect index f1ee6399e05..52a60bf72fb 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.outline.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -114,7 +114,7 @@ class Super extends core::Object { ; abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin ; method mixedInConcreteMethod() → void diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.transformed.expect index ab66dec5fe1..085ccd259f2 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart.weak.transformed.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_method.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { method extendedConcreteMixedInAbstractMethod() → void {} abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart index c841e0481f4..90b7191d34b 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart @@ -16,7 +16,7 @@ class Super { void extendedAbstractMixedInAbstractMethod(); } -class Mixin { +mixin class Mixin { void mixedInConcreteMethod(int i) {} void mixedInAbstractMethod(int i); diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline.expect index 00840cbd75d..690d1ff0496 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { void extendedAbstractMixedInAbstractMethod(); } -class Mixin { +mixin class Mixin { void mixedInConcreteMethod(int i) {} void mixedInAbstractMethod(int i); void extendedConcreteMixedInConcreteMethod(int i) {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline_modelled.expect index 7e105209799..b0375bb75b5 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.textual_outline_modelled.expect @@ -1,14 +1,5 @@ class ClassMixin extends Super with Mixin {} -class Mixin { - void extendedAbstractMixedInAbstractMethod(int i); - void extendedAbstractMixedInConcreteMethod(int i) {} - void extendedConcreteMixedInAbstractMethod(int i); - void extendedConcreteMixedInConcreteMethod(int i) {} - void mixedInAbstractMethod(int i); - void mixedInConcreteMethod(int i) {} -} - class NamedMixin = Super with Mixin; class Super { @@ -21,3 +12,12 @@ class Super { } main() {} + +mixin class Mixin { + void extendedAbstractMixedInAbstractMethod(int i); + void extendedAbstractMixedInConcreteMethod(int i) {} + void extendedConcreteMixedInAbstractMethod(int i); + void extendedConcreteMixedInConcreteMethod(int i) {} + void mixedInAbstractMethod(int i); + void mixedInConcreteMethod(int i) {} +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.expect index 77883edb86a..b4b5f2c2c19 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -202,7 +202,7 @@ class Super extends core::Object { method extendedConcreteMixedInAbstractMethod() → void {} abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.modular.expect index 77883edb86a..b4b5f2c2c19 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.modular.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -202,7 +202,7 @@ class Super extends core::Object { method extendedConcreteMixedInAbstractMethod() → void {} abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.outline.expect index 2799f002d68..b39329d6127 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart.weak.outline.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void extendedAbstractMixedInConcreteMethod(); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractMethod // - Mixin.extendedConcreteMixedInAbstractMethod // - Mixin.mixedInAbstractMethod @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_override.dart:30:8: Context: 'Mixin.extendedAbstractMixedInAbstractMethod' is defined here. // void extendedAbstractMixedInAbstractMethod(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -204,7 +204,7 @@ class Super extends core::Object { ; abstract method extendedAbstractMixedInAbstractMethod() → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin ; method mixedInConcreteMethod(core::int i) → void diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart index 3a6cf3f73e2..aeabf09d0b8 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart @@ -16,7 +16,7 @@ class Super { void set extendedAbstractMixedInAbstractSetter(int i); } -class Mixin { +mixin class Mixin { void set mixedInConcreteSetter(int i) {} void set mixedInAbstractSetter(int i); diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline.expect index 92bb9825f79..c383a7f44f5 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { void set extendedAbstractMixedInAbstractSetter(int i); } -class Mixin { +mixin class Mixin { void set mixedInConcreteSetter(int i) {} void set mixedInAbstractSetter(int i); void set extendedConcreteMixedInConcreteSetter(int i) {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline_modelled.expect index 1cb957db8ab..9fde2d59bf8 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.textual_outline_modelled.expect @@ -1,14 +1,5 @@ class ClassMixin extends Super with Mixin {} -class Mixin { - void set extendedAbstractMixedInAbstractSetter(int i); - void set extendedAbstractMixedInConcreteSetter(int i) {} - void set extendedConcreteMixedInAbstractSetter(int i); - void set extendedConcreteMixedInConcreteSetter(int i) {} - void set mixedInAbstractSetter(int i); - void set mixedInConcreteSetter(int i) {} -} - class NamedMixin = Super with Mixin; class Super { @@ -21,3 +12,12 @@ class Super { } main() {} + +mixin class Mixin { + void set extendedAbstractMixedInAbstractSetter(int i); + void set extendedAbstractMixedInConcreteSetter(int i) {} + void set extendedConcreteMixedInAbstractSetter(int i); + void set extendedConcreteMixedInConcreteSetter(int i) {} + void set mixedInAbstractSetter(int i); + void set mixedInConcreteSetter(int i) {} +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.expect index c9a2f79d844..5e6fe2f78d6 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void set extendedAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractSetter= // - Mixin.extendedConcreteMixedInAbstractSetter= // - Mixin.mixedInAbstractSetter= @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:30:12: Context: 'Mixin.extendedAbstractMixedInAbstractSetter=' is defined here. // void set extendedAbstractMixedInAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { set extendedConcreteMixedInAbstractSetter(core::int i) → void {} abstract set extendedAbstractMixedInAbstractSetter(core::int i) → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.modular.expect index c9a2f79d844..5e6fe2f78d6 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.modular.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void set extendedAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractSetter= // - Mixin.extendedConcreteMixedInAbstractSetter= // - Mixin.mixedInAbstractSetter= @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:30:12: Context: 'Mixin.extendedAbstractMixedInAbstractSetter=' is defined here. // void set extendedAbstractMixedInAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { set extendedConcreteMixedInAbstractSetter(core::int i) → void {} abstract set extendedAbstractMixedInAbstractSetter(core::int i) → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.outline.expect index 180ebb4a98e..69e32dad81a 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.outline.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void set extendedAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractSetter= // - Mixin.extendedConcreteMixedInAbstractSetter= // - Mixin.mixedInAbstractSetter= @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:30:12: Context: 'Mixin.extendedAbstractMixedInAbstractSetter=' is defined here. // void set extendedAbstractMixedInAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -114,7 +114,7 @@ class Super extends core::Object { ; abstract set extendedAbstractMixedInAbstractSetter(core::int i) → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin ; set mixedInConcreteSetter(core::int i) → void diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.transformed.expect index 7bdf664dc47..06dab80f7d9 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart.weak.transformed.expect @@ -24,7 +24,7 @@ library /*isNonNullableByDefault*/; // void set extendedAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: +// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:19:13: Error: The non-abstract class 'Mixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractSetter= // - Mixin.extendedConcreteMixedInAbstractSetter= // - Mixin.mixedInAbstractSetter= @@ -34,8 +34,8 @@ library /*isNonNullableByDefault*/; // - mark the class as abstract, or // - provide a 'noSuchMethod' implementation. // -// class Mixin { -// ^^^^^ +// mixin class Mixin { +// ^^^^^ // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_setter.dart:30:12: Context: 'Mixin.extendedAbstractMixedInAbstractSetter=' is defined here. // void set extendedAbstractMixedInAbstractSetter(int i); // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -112,7 +112,7 @@ class Super extends core::Object { set extendedConcreteMixedInAbstractSetter(core::int i) → void {} abstract set extendedAbstractMixedInAbstractSetter(core::int i) → void; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart index f1e2e068678..c1e0f0fdb78 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart @@ -28,13 +28,13 @@ class FromSuperConcrete extends SuperConcrete implements Interface {} class FromSuperConcreteAbstract extends SuperConcrete implements SuperAbstract, Interface {} -class MixinAbstract { +mixin class MixinAbstract { noSuchMethod(Invocation invocation); } class FromMixinAbstract extends MixinAbstract implements Interface {} -class MixinConcrete { +mixin class MixinConcrete { @override noSuchMethod(Invocation invocation) { return null; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline.expect index 1093cfd893c..6ac047e1742 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline.expect @@ -22,13 +22,13 @@ class FromSuperConcrete extends SuperConcrete implements Interface {} class FromSuperConcreteAbstract extends SuperConcrete implements SuperAbstract, Interface {} -class MixinAbstract { +mixin class MixinAbstract { noSuchMethod(Invocation invocation); } class FromMixinAbstract extends MixinAbstract implements Interface {} -class MixinConcrete { +mixin class MixinConcrete { @override noSuchMethod(Invocation invocation) {} } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline_modelled.expect index 27e9d701144..decd6c65c49 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.textual_outline_modelled.expect @@ -43,15 +43,6 @@ class InterfaceConcrete { noSuchMethod(Invocation invocation) {} } -class MixinAbstract { - noSuchMethod(Invocation invocation); -} - -class MixinConcrete { - @override - noSuchMethod(Invocation invocation) {} -} - class SuperAbstract { noSuchMethod(Invocation invocation); } @@ -62,3 +53,12 @@ class SuperConcrete { } main() {} + +mixin class MixinAbstract { + noSuchMethod(Invocation invocation); +} + +mixin class MixinConcrete { + @override + noSuchMethod(Invocation invocation) {} +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.expect index 6f9e3a73147..4e2dba80ea5 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.expect @@ -228,7 +228,7 @@ class FromSuperConcreteAbstract extends self::SuperConcrete implements self::Sup no-such-method-forwarder set setter(core::int value) → void return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable([value]), core::Map::unmodifiable(#C5))){(core::Invocation) → dynamic}; } -class MixinAbstract extends core::Object { +mixin class MixinAbstract extends core::Object { synthetic constructor •() → self::MixinAbstract : super core::Object::•() ; @@ -239,7 +239,7 @@ class FromMixinAbstract extends self::MixinAbstract implements self::Interface { : super self::MixinAbstract::•() ; } -class MixinConcrete extends core::Object { +mixin class MixinConcrete extends core::Object { synthetic constructor •() → self::MixinConcrete : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.modular.expect index 6f9e3a73147..4e2dba80ea5 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.modular.expect @@ -228,7 +228,7 @@ class FromSuperConcreteAbstract extends self::SuperConcrete implements self::Sup no-such-method-forwarder set setter(core::int value) → void return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable([value]), core::Map::unmodifiable(#C5))){(core::Invocation) → dynamic}; } -class MixinAbstract extends core::Object { +mixin class MixinAbstract extends core::Object { synthetic constructor •() → self::MixinAbstract : super core::Object::•() ; @@ -239,7 +239,7 @@ class FromMixinAbstract extends self::MixinAbstract implements self::Interface { : super self::MixinAbstract::•() ; } -class MixinConcrete extends core::Object { +mixin class MixinConcrete extends core::Object { synthetic constructor •() → self::MixinConcrete : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.outline.expect index 2ee47b2923b..95f8fa7d9b7 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.outline.expect @@ -212,7 +212,7 @@ class FromSuperConcreteAbstract extends self::SuperConcrete implements self::Sup no-such-method-forwarder set setter(core::int value) → void return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#setter=, 2, const [], core::List::unmodifiable([value]), core::Map::unmodifiable(const {}))){(core::Invocation) → dynamic}; } -class MixinAbstract extends core::Object { +mixin class MixinAbstract extends core::Object { synthetic constructor •() → self::MixinAbstract ; abstract method noSuchMethod(core::Invocation invocation) → dynamic; @@ -221,7 +221,7 @@ class FromMixinAbstract extends self::MixinAbstract implements self::Interface { synthetic constructor •() → self::FromMixinAbstract ; } -class MixinConcrete extends core::Object { +mixin class MixinConcrete extends core::Object { synthetic constructor •() → self::MixinConcrete ; @core::override diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.transformed.expect index 575743a3add..adf0d071f2f 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/no_such_method.dart.weak.transformed.expect @@ -228,7 +228,7 @@ class FromSuperConcreteAbstract extends self::SuperConcrete implements self::Sup no-such-method-forwarder set setter(core::int value) → void return this.{self::SuperConcrete::noSuchMethod}(new core::_InvocationMirror::_withType(#C10, 2, #C3, core::List::unmodifiable(core::_GrowableList::_literal1(value)), core::Map::unmodifiable(#C5))){(core::Invocation) → dynamic}; } -class MixinAbstract extends core::Object { +mixin class MixinAbstract extends core::Object { synthetic constructor •() → self::MixinAbstract : super core::Object::•() ; @@ -239,7 +239,7 @@ class FromMixinAbstract extends self::MixinAbstract implements self::Interface { : super self::MixinAbstract::•() ; } -class MixinConcrete extends core::Object { +mixin class MixinConcrete extends core::Object { synthetic constructor •() → self::MixinConcrete : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.expect index 8139dad4922..52cb3ede4a7 100644 --- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.expect @@ -225,7 +225,7 @@ library /*isNonNullableByDefault*/; import self as mix2; import "dart:core" as core; -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → mix2::B : super core::Object::•() ; @@ -235,7 +235,7 @@ class B extends core::Object { method m((core::int) → core::int x) → (core::int) → core::int return x; } -class Bq extends core::Object { +mixin class Bq extends core::Object { synthetic constructor •() → mix2::Bq : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.modular.expect index 8139dad4922..52cb3ede4a7 100644 --- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.modular.expect @@ -225,7 +225,7 @@ library /*isNonNullableByDefault*/; import self as mix2; import "dart:core" as core; -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → mix2::B : super core::Object::•() ; @@ -235,7 +235,7 @@ class B extends core::Object { method m((core::int) → core::int x) → (core::int) → core::int return x; } -class Bq extends core::Object { +mixin class Bq extends core::Object { synthetic constructor •() → mix2::Bq : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.outline.expect index 239138e5a13..0b3653b7252 100644 --- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.outline.expect @@ -216,7 +216,7 @@ library /*isNonNullableByDefault*/; import self as mix2; import "dart:core" as core; -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → mix2::B ; get a() → core::List<(core::int) → core::int> @@ -226,7 +226,7 @@ class B extends core::Object { method m((core::int) → core::int x) → (core::int) → core::int ; } -class Bq extends core::Object { +mixin class Bq extends core::Object { synthetic constructor •() → mix2::Bq ; get a() → core::List<(core::int?) → core::int?> diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.transformed.expect index 3e5c8913c15..dcf99fcefd2 100644 --- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in.dart.weak.transformed.expect @@ -221,7 +221,7 @@ library /*isNonNullableByDefault*/; import self as mix2; import "dart:core" as core; -class B extends core::Object { +mixin class B extends core::Object { synthetic constructor •() → mix2::B : super core::Object::•() ; @@ -231,7 +231,7 @@ class B extends core::Object { method m((core::int) → core::int x) → (core::int) → core::int return x; } -class Bq extends core::Object { +mixin class Bq extends core::Object { synthetic constructor •() → mix2::Bq : super core::Object::•() ; diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in_lib2.dart b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in_lib2.dart index 55a1a29f54f..ce0160a1ca5 100644 --- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in_lib2.dart +++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_opt_in_out_in_lib2.dart @@ -2,13 +2,13 @@ // 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. -class B { +mixin class B { List get a => []; set a(List _) {} int Function(int) m(int Function(int) x) => x; } -class Bq { +mixin class Bq { List get a => []; set a(List _) {} int? Function(int?) m(int? Function(int?) x) => x; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart index f09e2fa7588..91659119b2d 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart @@ -12,7 +12,7 @@ abstract class A { int? foo; } -class B implements A { +mixin class B implements A { noSuchMethod(i) { ++count; return null; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.expect index 8e1d8754dfc..71eff2e9523 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object implements self::A { +mixin class B extends core::Object implements self::A { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect index 98f847e5608..c5a41bd9fc2 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.strong.transformed.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object implements self::A { +mixin class B extends core::Object implements self::A { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline.expect index dbd8bc4b9af..5a076f8a4a7 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline.expect @@ -4,7 +4,7 @@ abstract class A { int? foo; } -class B implements A { +mixin class B implements A { noSuchMethod(i) {} } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline_modelled.expect index 8b516c43b31..11ef99d1ec8 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.textual_outline_modelled.expect @@ -2,10 +2,6 @@ abstract class A { int? foo; } -class B implements A { - noSuchMethod(i) {} -} - class C extends Object with B { int? get foo => 42; void set foo(int? value) {} @@ -13,3 +9,7 @@ class C extends Object with B { int count = 0; main() {} + +mixin class B implements A { + noSuchMethod(i) {} +} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.expect index 8e1d8754dfc..71eff2e9523 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object implements self::A { +mixin class B extends core::Object implements self::A { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.modular.expect index 8e1d8754dfc..71eff2e9523 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.modular.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object implements self::A { +mixin class B extends core::Object implements self::A { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.outline.expect index c290c2be075..a66cc3645a0 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.outline.expect @@ -7,7 +7,7 @@ abstract class A extends core::Object { synthetic constructor •() → self::A ; } -class B extends core::Object implements self::A { +mixin class B extends core::Object implements self::A { synthetic constructor •() → self::B ; method noSuchMethod(core::Invocation i) → dynamic @@ -38,11 +38,11 @@ static method main() → dynamic Extra constant evaluation status: -Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> SymbolConstant(#foo) -Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> ListConstant(const []) -Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> ListConstant(const []) -Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> MapConstant(const {}) -Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> SymbolConstant(#foo=) -Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> ListConstant(const []) -Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:7 -> MapConstant(const {}) +Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> SymbolConstant(#foo) +Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> ListConstant(const []) +Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> ListConstant(const []) +Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> MapConstant(const {}) +Evaluated: SymbolLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> SymbolConstant(#foo=) +Evaluated: ListLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> ListConstant(const []) +Evaluated: MapLiteral @ org-dartlang-testcase:///abstract_accessors_from_field_arent_mixed_in.dart:15:13 -> MapConstant(const {}) Extra constant evaluation: evaluated: 21, effectively constant: 7 diff --git a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.transformed.expect index 98f847e5608..c5a41bd9fc2 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/abstract_accessors_from_field_arent_mixed_in.dart.weak.transformed.expect @@ -8,7 +8,7 @@ abstract class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object implements self::A { +mixin class B extends core::Object implements self::A { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.expect index b4e4d90e091..547b32f4322 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.expect @@ -479,14 +479,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_abstract_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.transformed.expect index 12952911b66..f92de0ef8c4 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.strong.transformed.expect @@ -463,14 +463,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_abstract_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.expect index b4e4d90e091..547b32f4322 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.expect @@ -479,14 +479,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_abstract_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.modular.expect index b4e4d90e091..547b32f4322 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.modular.expect @@ -479,14 +479,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_abstract_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.outline.expect index 864adad934d..a19cf205a79 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.outline.expect @@ -439,7 +439,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_abstract_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass ; method _inaccessibleMethod1() → void @@ -447,7 +447,7 @@ class SuperClass extends core::Object { method accessibleMethod() → void ; } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass ; abstract method noSuchMethod(core::Invocation invocation) → dynamic; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.transformed.expect index 12952911b66..f92de0ef8c4 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm.dart.weak.transformed.expect @@ -463,14 +463,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_abstract_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm_lib.dart b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm_lib.dart index 2fa901aa791..a0aadf3afe0 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm_lib.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_abstract_nsm_lib.dart @@ -4,11 +4,11 @@ import 'access_abstract_nsm.dart'; -class SuperClass { +mixin class SuperClass { void _inaccessibleMethod1() {} void accessibleMethod() {} } -class NoSuchMethodClass { +mixin class NoSuchMethodClass { dynamic noSuchMethod(Invocation invocation); } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.expect index 8cf0f6cc6af..c1007d839fc 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.expect @@ -457,14 +457,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_concrete_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.transformed.expect index 3360825627c..ecdc2bd4332 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.strong.transformed.expect @@ -441,14 +441,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_concrete_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.expect index 8cf0f6cc6af..c1007d839fc 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.expect @@ -457,14 +457,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_concrete_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.modular.expect index 8cf0f6cc6af..c1007d839fc 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.modular.expect @@ -457,14 +457,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_concrete_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.outline.expect index c6f9a8bd398..4eb983da145 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.outline.expect @@ -411,7 +411,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_concrete_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass ; method _inaccessibleMethod1() → void @@ -419,7 +419,7 @@ class SuperClass extends core::Object { method accessibleMethod() → void ; } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass ; method noSuchMethod(core::Invocation invocation) → dynamic diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.transformed.expect index 3360825627c..ecdc2bd4332 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm.dart.weak.transformed.expect @@ -441,14 +441,14 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_concrete_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; method _inaccessibleMethod1() → void {} method accessibleMethod() → void {} } -class NoSuchMethodClass extends core::Object { +mixin class NoSuchMethodClass extends core::Object { synthetic constructor •() → acc::NoSuchMethodClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm_lib.dart b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm_lib.dart index 34c2320d143..fd2b9b4c954 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm_lib.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_concrete_nsm_lib.dart @@ -4,11 +4,11 @@ import 'access_concrete_nsm.dart'; -class SuperClass { +mixin class SuperClass { void _inaccessibleMethod1() {} void accessibleMethod() {} } -class NoSuchMethodClass { +mixin class NoSuchMethodClass { dynamic noSuchMethod(Invocation invocation) => 42; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.expect index 5f8c4d4466e..6158c4d1624 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.expect @@ -139,7 +139,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_no_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.transformed.expect index 413046b8434..1fab764dd38 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.strong.transformed.expect @@ -135,7 +135,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_no_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.expect index 5f8c4d4466e..6158c4d1624 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.expect @@ -139,7 +139,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_no_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.modular.expect index 5f8c4d4466e..6158c4d1624 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.modular.expect @@ -139,7 +139,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_no_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.outline.expect index 350964970e0..a2f79989e5f 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.outline.expect @@ -127,7 +127,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_no_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass ; method _inaccessibleMethod1() → void diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.transformed.expect index 413046b8434..1fab764dd38 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm.dart.weak.transformed.expect @@ -135,7 +135,7 @@ import "dart:core" as core; import "org-dartlang-testcase:///access_no_nsm.dart"; -class SuperClass extends core::Object { +mixin class SuperClass extends core::Object { synthetic constructor •() → acc::SuperClass : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm_lib.dart b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm_lib.dart index 63988b35b2e..19e01f75294 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm_lib.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/access_no_nsm_lib.dart @@ -4,7 +4,7 @@ import 'access_no_nsm.dart'; -class SuperClass { +mixin class SuperClass { void _inaccessibleMethod1() {} void accessibleMethod() {} } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart index de97201f78e..8e99b2655cd 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart @@ -14,7 +14,7 @@ class A { foo() {} } -class B implements I { +mixin class B implements I { noSuchMethod(_) => null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.expect index 28b3e96dfb4..09b9e75700b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.expect @@ -14,7 +14,7 @@ class A extends core::Object { ; method foo() → dynamic {} } -class B extends core::Object implements self::I { +mixin class B extends core::Object implements self::I { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.transformed.expect index ada9683cdb2..24ee6e737ae 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.strong.transformed.expect @@ -14,7 +14,7 @@ class A extends core::Object { ; method foo() → dynamic {} } -class B extends core::Object implements self::I { +mixin class B extends core::Object implements self::I { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline.expect index d94d661d1bf..deec6e7ce7a 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline.expect @@ -6,7 +6,7 @@ class A { foo() {} } -class B implements I { +mixin class B implements I { noSuchMethod(_) => null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline_modelled.expect index d94d661d1bf..0b2241a13b0 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.textual_outline_modelled.expect @@ -6,10 +6,10 @@ class A { foo() {} } -class B implements I { - noSuchMethod(_) => null; -} - class C extends A with B {} main() {} + +mixin class B implements I { + noSuchMethod(_) => null; +} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.expect index 28b3e96dfb4..09b9e75700b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.expect @@ -14,7 +14,7 @@ class A extends core::Object { ; method foo() → dynamic {} } -class B extends core::Object implements self::I { +mixin class B extends core::Object implements self::I { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.modular.expect index 28b3e96dfb4..09b9e75700b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.modular.expect @@ -14,7 +14,7 @@ class A extends core::Object { ; method foo() → dynamic {} } -class B extends core::Object implements self::I { +mixin class B extends core::Object implements self::I { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.outline.expect index 8cb49efd590..46058c00f5b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.outline.expect @@ -13,7 +13,7 @@ class A extends core::Object { method foo() → dynamic ; } -class B extends core::Object implements self::I { +mixin class B extends core::Object implements self::I { synthetic constructor •() → self::B ; method noSuchMethod(core::Invocation _) → dynamic @@ -37,8 +37,8 @@ static method main() → dynamic Extra constant evaluation status: -Evaluated: SymbolLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:7 -> SymbolConstant(#foo) -Evaluated: ListLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:7 -> ListConstant(const []) -Evaluated: ListLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:7 -> ListConstant(const []) -Evaluated: MapLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:7 -> MapConstant(const {}) +Evaluated: SymbolLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:13 -> SymbolConstant(#foo) +Evaluated: ListLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:13 -> ListConstant(const []) +Evaluated: ListLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:13 -> ListConstant(const []) +Evaluated: MapLiteral @ org-dartlang-testcase:///concrete_method_over_forwarder_in_mixin_application.dart:17:13 -> MapConstant(const {}) Extra constant evaluation: evaluated: 11, effectively constant: 4 diff --git a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.transformed.expect index ada9683cdb2..24ee6e737ae 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/concrete_method_over_forwarder_in_mixin_application.dart.weak.transformed.expect @@ -14,7 +14,7 @@ class A extends core::Object { ; method foo() → dynamic {} } -class B extends core::Object implements self::I { +mixin class B extends core::Object implements self::I { synthetic constructor •() → self::B : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart index 6a76ef8761a..fb89416dfb6 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart @@ -10,7 +10,7 @@ abstract class I { void foo(); } -class A implements I { +mixin class A implements I { dynamic noSuchMethod(Invocation i) => null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.expect index 48a7894298c..8a75a175e8a 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → void; } -class A extends core::Object implements self::I { +mixin class A extends core::Object implements self::I { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.transformed.expect index e10f723d04d..31aab7005e5 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.strong.transformed.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → void; } -class A extends core::Object implements self::I { +mixin class A extends core::Object implements self::I { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline.expect index 02f378d5837..45d35c5b7ba 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline.expect @@ -2,7 +2,7 @@ abstract class I { void foo(); } -class A implements I { +mixin class A implements I { dynamic noSuchMethod(Invocation i) => null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline_modelled.expect index 02f378d5837..0acbd7ed760 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.textual_outline_modelled.expect @@ -2,10 +2,10 @@ abstract class I { void foo(); } -class A implements I { - dynamic noSuchMethod(Invocation i) => null; -} - class B extends Object with A {} main() {} + +mixin class A implements I { + dynamic noSuchMethod(Invocation i) => null; +} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.expect index 48a7894298c..8a75a175e8a 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → void; } -class A extends core::Object implements self::I { +mixin class A extends core::Object implements self::I { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.modular.expect index 48a7894298c..8a75a175e8a 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.modular.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → void; } -class A extends core::Object implements self::I { +mixin class A extends core::Object implements self::I { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.outline.expect index 534e0fe3ea2..05fab8ee3e2 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.outline.expect @@ -7,7 +7,7 @@ abstract class I extends core::Object { ; abstract method foo() → void; } -class A extends core::Object implements self::I { +mixin class A extends core::Object implements self::I { synthetic constructor •() → self::A ; method noSuchMethod(core::Invocation i) → dynamic @@ -33,10 +33,10 @@ static method main() → dynamic Extra constant evaluation status: -Evaluated: SymbolLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:7 -> SymbolConstant(#foo) -Evaluated: ListLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:7 -> ListConstant(const []) -Evaluated: ListLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:7 -> ListConstant(const []) -Evaluated: MapLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:7 -> MapConstant(const {}) +Evaluated: SymbolLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:13 -> SymbolConstant(#foo) +Evaluated: ListLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:13 -> ListConstant(const []) +Evaluated: ListLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:13 -> ListConstant(const []) +Evaluated: MapLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:13:13 -> MapConstant(const {}) Evaluated: SymbolLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:17:7 -> SymbolConstant(#foo) Evaluated: ListLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:17:7 -> ListConstant(const []) Evaluated: ListLiteral @ org-dartlang-testcase:///forwarders_not_assumed_from_mixin.dart:17:7 -> ListConstant(const []) diff --git a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.transformed.expect index e10f723d04d..31aab7005e5 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/forwarders_not_assumed_from_mixin.dart.weak.transformed.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → void; } -class A extends core::Object implements self::I { +mixin class A extends core::Object implements self::I { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart index af56a39f658..6eaed0ed4c2 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart @@ -15,7 +15,7 @@ class I { void foo(); } -class M { +mixin class M { dynamic noSuchMethod(Invocation i) => null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.expect index 14e093d77e3..a8e6208c53b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.expect @@ -11,7 +11,7 @@ class I extends core::Object { no-such-method-forwarder method foo() → void return this.{self::I::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable(#C4))){(core::Invocation) → dynamic}; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.transformed.expect index d99487fdb9a..0c6c3e62b28 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.strong.transformed.expect @@ -11,7 +11,7 @@ class I extends core::Object { no-such-method-forwarder method foo() → void return this.{self::I::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable(#C4))){(core::Invocation) → dynamic}; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline.expect index bbc3c6caf9c..dfacdaa64a2 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline.expect @@ -3,7 +3,7 @@ class I { void foo(); } -class M { +mixin class M { dynamic noSuchMethod(Invocation i) => null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline_modelled.expect index a90747d0316..27cedc28f7c 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.textual_outline_modelled.expect @@ -7,8 +7,8 @@ class I { void foo(); } -class M { +main() {} + +mixin class M { dynamic noSuchMethod(Invocation i) => null; } - -main() {} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.expect index 14e093d77e3..a8e6208c53b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.expect @@ -11,7 +11,7 @@ class I extends core::Object { no-such-method-forwarder method foo() → void return this.{self::I::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable(#C4))){(core::Invocation) → dynamic}; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.modular.expect index 14e093d77e3..a8e6208c53b 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.modular.expect @@ -11,7 +11,7 @@ class I extends core::Object { no-such-method-forwarder method foo() → void return this.{self::I::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable(#C4))){(core::Invocation) → dynamic}; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.outline.expect index 6c96a46b96c..0d19f332fa7 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.outline.expect @@ -10,7 +10,7 @@ class I extends core::Object { no-such-method-forwarder method foo() → void return this.{self::I::noSuchMethod}(new core::_InvocationMirror::_withType(#foo, 0, const [], const [], core::Map::unmodifiable(const {}))){(core::Invocation) → dynamic}; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M ; method noSuchMethod(core::Invocation i) → dynamic diff --git a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.transformed.expect index d99487fdb9a..0c6c3e62b28 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/interface_with_nsm.dart.weak.transformed.expect @@ -11,7 +11,7 @@ class I extends core::Object { no-such-method-forwarder method foo() → void return this.{self::I::noSuchMethod}(new core::_InvocationMirror::_withType(#C1, 0, #C2, #C3, core::Map::unmodifiable(#C4))){(core::Invocation) → dynamic}; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart index 66ca171b41f..62f5351ac26 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart @@ -11,7 +11,7 @@ class Super { void method3(num n) {} } -class Mixin { +mixin class Mixin { dynamic noSuchMethod(_) => null; void method1(int i); void method2(covariant int i); diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.strong.expect index 710f7d6f473..d9b6dce2ead 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.strong.expect @@ -29,7 +29,7 @@ class Super extends core::Object { method method2(core::num n) → void {} method method3(core::num n) → void {} } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline.expect index 35d6b0a6f14..50d31d78d9f 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { void method3(num n) {} } -class Mixin { +mixin class Mixin { dynamic noSuchMethod(_) => null; void method1(int i); void method2(covariant int i); diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline_modelled.expect index 9cdc5bc0862..356e268e7d4 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.textual_outline_modelled.expect @@ -4,14 +4,14 @@ abstract class Interface { class Class = Super with Mixin implements Interface; -class Mixin { +class Super { + void method2(num n) {} + void method3(num n) {} +} + +mixin class Mixin { dynamic noSuchMethod(_) => null; void method1(int i); void method2(covariant int i); void method3(num n); } - -class Super { - void method2(num n) {} - void method3(num n) {} -} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.expect index 710f7d6f473..d9b6dce2ead 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.expect @@ -29,7 +29,7 @@ class Super extends core::Object { method method2(core::num n) → void {} method method3(core::num n) → void {} } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.modular.expect index 710f7d6f473..d9b6dce2ead 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.modular.expect @@ -29,7 +29,7 @@ class Super extends core::Object { method method2(core::num n) → void {} method method3(core::num n) → void {} } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.outline.expect index edd87ec7b34..c351746b3e2 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/mixin_nsm.dart.weak.outline.expect @@ -29,7 +29,7 @@ class Super extends core::Object { method method3(core::num n) → void ; } -class Mixin extends core::Object { +mixin class Mixin extends core::Object { synthetic constructor •() → self::Mixin ; method noSuchMethod(core::Invocation _) → dynamic diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart index 284d817be68..f2abc428e57 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart @@ -5,7 +5,7 @@ // This test checks that the noSuchMethod forwarder is generated in cases when // the user-defined noSuchMethod is mixed in to a class with abstract methods. -class A { +mixin class A { dynamic noSuchMethod(Invocation i) { return null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.expect index 29b29b42ee9..14d1611ff25 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.expect @@ -2,7 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.transformed.expect index 97fe39ef2ab..e6560ef3282 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.strong.transformed.expect @@ -2,7 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline.expect index eece1da273a..4bce39676d3 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline.expect @@ -1,4 +1,4 @@ -class A { +mixin class A { dynamic noSuchMethod(Invocation i) {} } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline_modelled.expect index eece1da273a..fc591d00e06 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.textual_outline_modelled.expect @@ -1,9 +1,9 @@ -class A { - dynamic noSuchMethod(Invocation i) {} -} - class B extends Object with A { void foo(); } main() {} + +mixin class A { + dynamic noSuchMethod(Invocation i) {} +} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.expect index 29b29b42ee9..14d1611ff25 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.expect @@ -2,7 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.modular.expect index 29b29b42ee9..14d1611ff25 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.modular.expect @@ -2,7 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.outline.expect index 73d435671e3..8d5d4b796b6 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.outline.expect @@ -2,7 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A ; method noSuchMethod(core::Invocation i) → dynamic diff --git a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.transformed.expect index 97fe39ef2ab..e6560ef3282 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/nsm_mixed_in.dart.weak.transformed.expect @@ -2,7 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { +mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart index 8879c0ef00c..4e05f858a45 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart @@ -10,7 +10,7 @@ abstract class I { T foo(); } -class M { +mixin class M { dynamic noSuchMethod(Invocation i) { return null; } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.expect index 9f65b28e895..3bcb2f86421 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → self::I::T%; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.transformed.expect index a95de302a49..acc7fe5f427 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.strong.transformed.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → self::I::T%; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline.expect index 9ae8a309d87..bcefe83a459 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline.expect @@ -2,7 +2,7 @@ abstract class I { T foo(); } -class M { +mixin class M { dynamic noSuchMethod(Invocation i) {} } diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline_modelled.expect index 1762a6e61ba..d619499cb52 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.textual_outline_modelled.expect @@ -4,8 +4,8 @@ abstract class I { class A extends Object with M implements I {} -class M { +main() {} + +mixin class M { dynamic noSuchMethod(Invocation i) {} } - -main() {} diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.expect index 9f65b28e895..3bcb2f86421 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → self::I::T%; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.modular.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.modular.expect index 9f65b28e895..3bcb2f86421 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.modular.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.modular.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → self::I::T%; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.outline.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.outline.expect index 6655ace8fcf..7e190622ee5 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.outline.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.outline.expect @@ -7,7 +7,7 @@ abstract class I extends core::Object { ; abstract method foo() → self::I::T%; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M ; method noSuchMethod(core::Invocation i) → dynamic diff --git a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.transformed.expect b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.transformed.expect index a95de302a49..acc7fe5f427 100644 --- a/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/no_such_method_forwarders/subst_on_forwarder.dart.weak.transformed.expect @@ -8,7 +8,7 @@ abstract class I extends core::Object { ; abstract method foo() → self::I::T%; } -class M extends core::Object { +mixin class M extends core::Object { synthetic constructor •() → self::M : super core::Object::•() ; diff --git a/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.expect b/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.expect index 35c19b7a1bf..e646dd280f0 100644 --- a/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.expect +++ b/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.expect @@ -7,7 +7,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:8:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -15,7 +15,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:9:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -23,7 +23,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:10:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -31,7 +31,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:11:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -39,7 +39,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:12:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -47,7 +47,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:16:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, c: 2, d: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -55,7 +55,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:17:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, d: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -63,7 +63,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:18:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, d: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -71,7 +71,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:19:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (d: 0, a: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -79,7 +79,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:20:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, 2, a: 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -87,7 +87,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:21:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -95,7 +95,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:22:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -103,7 +103,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:23:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, c: 4, 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -111,7 +111,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:24:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, a: 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -119,7 +119,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:25:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -127,7 +127,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:30:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: this, 0); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.transformed.expect b/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.transformed.expect index 35c19b7a1bf..e646dd280f0 100644 --- a/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/records/record_literal_unsupported.dart.strong.transformed.expect @@ -7,7 +7,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:8:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -15,7 +15,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:9:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -23,7 +23,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:10:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -31,7 +31,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:11:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -39,7 +39,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:12:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -47,7 +47,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:16:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, c: 2, d: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -55,7 +55,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:17:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, d: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -63,7 +63,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:18:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, d: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -71,7 +71,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:19:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (d: 0, a: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -79,7 +79,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:20:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, 2, a: 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -87,7 +87,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:21:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -95,7 +95,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:22:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -103,7 +103,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:23:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, c: 4, 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -111,7 +111,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:24:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, a: 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -119,7 +119,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:25:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -127,7 +127,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:30:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: this, 0); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.expect b/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.expect index 1474cf2ae79..e4266c93052 100644 --- a/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.expect +++ b/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.expect @@ -3,7 +3,7 @@ library; // Problems in library: // // pkg/front_end/testcases/records/record_literal_unsupported.dart:8:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -11,7 +11,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:9:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -19,7 +19,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:10:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -27,7 +27,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:11:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -35,7 +35,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:12:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -43,7 +43,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:16:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, c: 2, d: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -51,7 +51,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:17:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, d: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -59,7 +59,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:18:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, d: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -67,7 +67,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:19:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (d: 0, a: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -75,7 +75,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:20:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, 2, a: 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -83,7 +83,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:21:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -91,7 +91,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:22:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -99,7 +99,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:23:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, c: 4, 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -107,7 +107,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:24:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, a: 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -115,7 +115,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:25:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -123,7 +123,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:30:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: this, 0); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.modular.expect b/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.modular.expect index 1474cf2ae79..e4266c93052 100644 --- a/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.modular.expect +++ b/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.modular.expect @@ -3,7 +3,7 @@ library; // Problems in library: // // pkg/front_end/testcases/records/record_literal_unsupported.dart:8:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -11,7 +11,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:9:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -19,7 +19,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:10:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -27,7 +27,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:11:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -35,7 +35,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:12:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -43,7 +43,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:16:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, c: 2, d: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -51,7 +51,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:17:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, d: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -59,7 +59,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:18:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, d: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -67,7 +67,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:19:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (d: 0, a: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -75,7 +75,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:20:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, 2, a: 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -83,7 +83,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:21:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -91,7 +91,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:22:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -99,7 +99,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:23:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, c: 4, 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -107,7 +107,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:24:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, a: 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -115,7 +115,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:25:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -123,7 +123,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:30:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: this, 0); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.transformed.expect b/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.transformed.expect index 1474cf2ae79..e4266c93052 100644 --- a/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/records/record_literal_unsupported.dart.weak.transformed.expect @@ -3,7 +3,7 @@ library; // Problems in library: // // pkg/front_end/testcases/records/record_literal_unsupported.dart:8:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -11,7 +11,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:9:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -19,7 +19,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:10:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -27,7 +27,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:11:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -35,7 +35,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:12:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (int, String); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -43,7 +43,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:16:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, c: 2, d: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -51,7 +51,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:17:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, b: 1, d: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -59,7 +59,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:18:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, d: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -67,7 +67,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:19:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (d: 0, a: 1, b: 2, c: 3); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -75,7 +75,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:20:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, 2, a: 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -83,7 +83,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:21:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -91,7 +91,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:22:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -99,7 +99,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:23:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, 1, a: 2, b: 3, c: 4, 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -107,7 +107,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:24:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (0, a: 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -115,7 +115,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:25:3: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: 0, 1, 2, 3, b: 4, c: 5); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. @@ -123,7 +123,7 @@ library; // ^^^^^^^^^^^^ // // pkg/front_end/testcases/records/record_literal_unsupported.dart:30:5: Error: The 'records' language feature is disabled for this library. -// Try removing the `@dart=` annotation or setting the language version to 2.19 or higher. +// Try removing the `@dart=` annotation or setting the language version to 3.0 or higher. // (a: this, 0); // ^ // pkg/front_end/testcases/records/record_literal_unsupported.dart:5:1: Context: This is the annotation that opts out this library from the 'records' language feature. diff --git a/pkg/front_end/testcases/records/type_record.dart b/pkg/front_end/testcases/records/type_record.dart index 8e226f93a55..58288a6058c 100644 --- a/pkg/front_end/testcases/records/type_record.dart +++ b/pkg/front_end/testcases/records/type_record.dart @@ -2,7 +2,7 @@ // 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. -abstract class A {} +abstract mixin class A {} typedef R = Record; diff --git a/pkg/front_end/testcases/records/type_record.dart.strong.expect b/pkg/front_end/testcases/records/type_record.dart.strong.expect index 5f3e43cc949..e9057c5d788 100644 --- a/pkg/front_end/testcases/records/type_record.dart.strong.expect +++ b/pkg/front_end/testcases/records/type_record.dart.strong.expect @@ -15,7 +15,7 @@ typedef RR = core::Record; typedef AR2 = self::A; typedef AR3 = self::A; typedef AR4 = self::A>; -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/records/type_record.dart.strong.transformed.expect b/pkg/front_end/testcases/records/type_record.dart.strong.transformed.expect index 799191c2697..ee1deb62e65 100644 --- a/pkg/front_end/testcases/records/type_record.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/records/type_record.dart.strong.transformed.expect @@ -15,7 +15,7 @@ typedef RR = core::Record; typedef AR2 = self::A; typedef AR3 = self::A; typedef AR4 = self::A>; -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/records/type_record.dart.textual_outline.expect b/pkg/front_end/testcases/records/type_record.dart.textual_outline.expect index d2523282e98..c1d259f54fe 100644 --- a/pkg/front_end/testcases/records/type_record.dart.textual_outline.expect +++ b/pkg/front_end/testcases/records/type_record.dart.textual_outline.expect @@ -1,4 +1,4 @@ -abstract class A {} +abstract mixin class A {} typedef R = Record; typedef AR = A; diff --git a/pkg/front_end/testcases/records/type_record.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/records/type_record.dart.textual_outline_modelled.expect index 6c07bf33cf5..14ba6281322 100644 --- a/pkg/front_end/testcases/records/type_record.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/records/type_record.dart.textual_outline_modelled.expect @@ -4,8 +4,6 @@ R foo9() => throw ''; RR foo11() => throw ''; Record foo1() => throw ''; -abstract class A {} - abstract class A1 extends A {} abstract class A2 implements A {} @@ -20,6 +18,8 @@ abstract class A6 extends AR3 {} abstract class A7 extends AR4 {} +abstract mixin class A {} + bar(Record record) {} dynamic foo12(R r) => null; dynamic foo13(AR l) => null; diff --git a/pkg/front_end/testcases/records/type_record.dart.weak.expect b/pkg/front_end/testcases/records/type_record.dart.weak.expect index ab3f4dfd0f2..028525697b2 100644 --- a/pkg/front_end/testcases/records/type_record.dart.weak.expect +++ b/pkg/front_end/testcases/records/type_record.dart.weak.expect @@ -15,7 +15,7 @@ typedef RR = core::Record; typedef AR2 = self::A; typedef AR3 = self::A; typedef AR4 = self::A>; -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/records/type_record.dart.weak.modular.expect b/pkg/front_end/testcases/records/type_record.dart.weak.modular.expect index ab3f4dfd0f2..028525697b2 100644 --- a/pkg/front_end/testcases/records/type_record.dart.weak.modular.expect +++ b/pkg/front_end/testcases/records/type_record.dart.weak.modular.expect @@ -15,7 +15,7 @@ typedef RR = core::Record; typedef AR2 = self::A; typedef AR3 = self::A; typedef AR4 = self::A>; -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/records/type_record.dart.weak.outline.expect b/pkg/front_end/testcases/records/type_record.dart.weak.outline.expect index 266db253b7b..49f0ea6854e 100644 --- a/pkg/front_end/testcases/records/type_record.dart.weak.outline.expect +++ b/pkg/front_end/testcases/records/type_record.dart.weak.outline.expect @@ -8,7 +8,7 @@ typedef RR = core::Record; typedef AR2 = self::A; typedef AR3 = self::A; typedef AR4 = self::A>; -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A ; } diff --git a/pkg/front_end/testcases/records/type_record.dart.weak.transformed.expect b/pkg/front_end/testcases/records/type_record.dart.weak.transformed.expect index 8b645c9ead3..410c9a40864 100644 --- a/pkg/front_end/testcases/records/type_record.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/records/type_record.dart.weak.transformed.expect @@ -15,7 +15,7 @@ typedef RR = core::Record; typedef AR2 = self::A; typedef AR3 = self::A; typedef AR4 = self::A>; -abstract class A extends core::Object { +abstract mixin class A extends core::Object { synthetic constructor •() → self::A : super core::Object::•() ; diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart b/pkg/front_end/testcases/records/type_record_as_supertype.dart index 7a909bcbfa8..44d67c3d093 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart @@ -9,18 +9,27 @@ typedef RR = R; class G {} abstract class A1 extends Record {} // Error. + abstract class A2 extends RR {} // Error. + abstract class A3 extends G {} // Ok. + abstract class A4 extends G {} // Ok. abstract class B1 implements Record {} // Error. + abstract class B2 implements RR {} // Error. + abstract class B3 implements G {} // Ok. + abstract class B4 implements G {} // Ok. abstract class C1 with Record {} // Error. + abstract class C2 with RR {} // Error. + abstract class C3 with G {} // Ok. + abstract class C4 with G {} // Ok. main() {} diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.expect b/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.expect index df2e4483475..17dfac79e44 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.expect +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.expect @@ -6,42 +6,104 @@ library /*isNonNullableByDefault*/; // abstract class A1 extends Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: The type 'A1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class A2 extends RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: The type 'A2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B1 implements Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: The type 'B1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B2 implements RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: The type 'B2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C1 with Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: The type 'C1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'RR' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // sdk/lib/core/record.dart:11:22: Context: This is the type denoted by the type alias. // abstract final class Record {} // ^ // +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: The type 'C2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:31:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C3 with G {} // Ok. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:33:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C4 with G {} // Ok. +// ^ +// import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.transformed.expect b/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.transformed.expect index b4092d315b6..261f7b3452a 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart.strong.transformed.expect @@ -6,42 +6,104 @@ library /*isNonNullableByDefault*/; // abstract class A1 extends Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: The type 'A1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class A2 extends RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: The type 'A2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B1 implements Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: The type 'B1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B2 implements RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: The type 'B2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C1 with Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: The type 'C1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'RR' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // sdk/lib/core/record.dart:11:22: Context: This is the type denoted by the type alias. // abstract final class Record {} // ^ // +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: The type 'C2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:31:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C3 with G {} // Ok. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:33:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C4 with G {} // Ok. +// ^ +// import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.expect b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.expect index df2e4483475..17dfac79e44 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.expect +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.expect @@ -6,42 +6,104 @@ library /*isNonNullableByDefault*/; // abstract class A1 extends Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: The type 'A1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class A2 extends RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: The type 'A2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B1 implements Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: The type 'B1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B2 implements RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: The type 'B2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C1 with Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: The type 'C1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'RR' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // sdk/lib/core/record.dart:11:22: Context: This is the type denoted by the type alias. // abstract final class Record {} // ^ // +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: The type 'C2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:31:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C3 with G {} // Ok. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:33:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C4 with G {} // Ok. +// ^ +// import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.modular.expect b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.modular.expect index df2e4483475..17dfac79e44 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.modular.expect +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.modular.expect @@ -6,42 +6,104 @@ library /*isNonNullableByDefault*/; // abstract class A1 extends Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: The type 'A1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class A2 extends RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: The type 'A2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B1 implements Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: The type 'B1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B2 implements RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: The type 'B2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C1 with Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: The type 'C1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'RR' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // sdk/lib/core/record.dart:11:22: Context: This is the type denoted by the type alias. // abstract final class Record {} // ^ // +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: The type 'C2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:31:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C3 with G {} // Ok. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:33:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C4 with G {} // Ok. +// ^ +// import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.outline.expect b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.outline.expect index c89ec82bf60..a5fa05022ec 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.outline.expect +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.outline.expect @@ -6,42 +6,104 @@ library /*isNonNullableByDefault*/; // abstract class A1 extends Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: The type 'A1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class A2 extends RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: The type 'A2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B1 implements Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: The type 'B1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B2 implements RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: The type 'B2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C1 with Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: The type 'C1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'RR' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // sdk/lib/core/record.dart:11:22: Context: This is the type denoted by the type alias. // abstract final class Record {} // ^ // +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: The type 'C2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:31:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C3 with G {} // Ok. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:33:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C4 with G {} // Ok. +// ^ +// import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.transformed.expect b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.transformed.expect index b4092d315b6..261f7b3452a 100644 --- a/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/records/type_record_as_supertype.dart.weak.transformed.expect @@ -6,42 +6,104 @@ library /*isNonNullableByDefault*/; // abstract class A1 extends Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:12:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:16: Error: The type 'A1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:11:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A1 extends Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class A2 extends RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:16:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:16: Error: The type 'A2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:13:27: Error: The class 'Record' can't be extended outside of its library because it's a final class. +// abstract class A2 extends RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B1 implements Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:17:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:16: Error: The type 'B1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:19:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B1 implements Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class B2 implements RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:16: Error: The type 'B2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:21:30: Error: The class 'Record' can't be implemented outside of its library because it's a final class. +// abstract class B2 implements RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C1 with Record {} // Error. // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'Record' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:27:16: Error: The type 'C1' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C1 with Record {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'Record' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // pkg/front_end/testcases/records/type_record_as_supertype.dart:7:9: Context: The issue arises via this type alias. // typedef RR = R; // ^ // -// pkg/front_end/testcases/records/type_record_as_supertype.dart:22:16: Error: 'RR' is restricted and can't be extended or implemented. +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: 'RR' is restricted and can't be extended or implemented. // abstract class C2 with RR {} // Error. // ^ // sdk/lib/core/record.dart:11:22: Context: This is the type denoted by the type alias. // abstract final class Record {} // ^ // +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:24: Error: The class 'Record' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:29:16: Error: The type 'C2' must be 'base', 'final' or 'sealed' because the supertype 'Record' is 'final'. +// Try adding 'base', 'final', or 'sealed' to the type. +// abstract class C2 with RR {} // Error. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:31:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C3 with G {} // Ok. +// ^ +// +// pkg/front_end/testcases/records/type_record_as_supertype.dart:33:24: Error: The class 'G' can't be used as a mixin because it isn't a mixin class nor a mixin. +// abstract class C4 with G {} // Ok. +// ^ +// import self as self; import "dart:core" as core; diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status index 27b65788510..3dee221e78f 100644 --- a/pkg/front_end/testcases/textual_outline.status +++ b/pkg/front_end/testcases/textual_outline.status @@ -51,7 +51,6 @@ extensions/issue38712: FormatterCrash extensions/issue38745: FormatterCrash general/annotation_eof: FormatterCrash general/bad_setter_abstract: FormatterCrash -general/base_class_declaration: FormatterCrash general/bug31124: FormatterCrash general/clone_function_type: FormatterCrash general/constants/js_semantics/number_folds: FormatterCrash @@ -86,7 +85,6 @@ general/extension_types_feature_not_enabled: FormatterCrash general/function_type_default_value: FormatterCrash general/incomplete_field_formal_parameter: FormatterCrash general/inline_class_declaration: FormatterCrash -general/interface_class_declaration: FormatterCrash general/invalid_operator2: FormatterCrash general/invalid_operator: FormatterCrash general/invalid_super_initializer: FormatterCrash diff --git a/runtime/vm/experimental_features.cc b/runtime/vm/experimental_features.cc index f99b93ab8cc..88a0de89c6e 100644 --- a/runtime/vm/experimental_features.cc +++ b/runtime/vm/experimental_features.cc @@ -18,8 +18,8 @@ namespace dart { bool GetExperimentalFeatureDefault(ExperimentalFeature feature) { constexpr bool kFeatureValues[] = { + true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, - true, true, true, true, true, true, true, }; ASSERT(static_cast(feature) < ARRAY_SIZE(kFeatureValues)); return kFeatureValues[static_cast(feature)]; @@ -27,6 +27,8 @@ bool GetExperimentalFeatureDefault(ExperimentalFeature feature) { const char* GetExperimentalFeatureName(ExperimentalFeature feature) { constexpr const char* kFeatureNames[] = { + "sealed-class", + "class-modifiers", "nonfunction-type-aliases", "non-nullable", "extension-methods", diff --git a/runtime/vm/experimental_features.h b/runtime/vm/experimental_features.h index b0b954b9e55..e0d98ef1e9c 100644 --- a/runtime/vm/experimental_features.h +++ b/runtime/vm/experimental_features.h @@ -14,6 +14,8 @@ namespace dart { enum class ExperimentalFeature { + sealed_class, + class_modifiers, nonfunction_type_aliases, non_nullable, extension_methods, diff --git a/tests/web/native/native_mixin_field2_test.dart b/tests/web/native/native_mixin_field2_test.dart index 80370cea36d..a6dafc45cff 100644 --- a/tests/web/native/native_mixin_field2_test.dart +++ b/tests/web/native/native_mixin_field2_test.dart @@ -2,6 +2,8 @@ // 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. +// SharedOptions=--enable-experiment=class-modifiers + import "native_testing.dart"; // Test that native classes can use ordinary Dart classes with fields @@ -27,11 +29,11 @@ class B1 extends A1 with M1, M2 { set bar(value) {} } -class M1 { +mixin class M1 { var baz; // This field is not a native field, even when mixed in. } -class M2 { +mixin class M2 { var bar; var buz; } diff --git a/tests/web/native/native_mixin_field_test.dart b/tests/web/native/native_mixin_field_test.dart index e9c80e94126..253fb3198e3 100644 --- a/tests/web/native/native_mixin_field_test.dart +++ b/tests/web/native/native_mixin_field_test.dart @@ -2,6 +2,8 @@ // 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. +// SharedOptions=--enable-experiment=class-modifiers + import "native_testing.dart"; // Test that native classes can use ordinary Dart classes with fields @@ -17,11 +19,11 @@ class B extends A with M1, M2 { var bar; } -class M1 { +mixin class M1 { var baz; // This field is not a native field, even when mixed in. } -class M2 { +mixin class M2 { var bar; var buz; } diff --git a/tests/web/native/native_mixin_multiple2_test.dart b/tests/web/native/native_mixin_multiple2_test.dart index 04f5b71ec30..4896b85880b 100644 --- a/tests/web/native/native_mixin_multiple2_test.dart +++ b/tests/web/native/native_mixin_multiple2_test.dart @@ -14,15 +14,15 @@ class A { @Native("B") class B extends A with M1, M2, M3 {} -class M1 {} +mixin M1 {} -class M2 { +mixin M2 { // These methods are only defined in this non-first, non-last mixin. plain(x) => 'P $x'; bar(x, [y]) => '$y,$x'; } -class M3 {} +mixin M3 {} makeB() native; diff --git a/tests/web/native/native_mixin_multiple3_test.dart b/tests/web/native/native_mixin_multiple3_test.dart index ac3442dfd88..639d84b685f 100644 --- a/tests/web/native/native_mixin_multiple3_test.dart +++ b/tests/web/native/native_mixin_multiple3_test.dart @@ -13,13 +13,13 @@ class E extends D { foo() => 'E.foo'; } -class M1 {} +mixin M1 {} -class M2 { +mixin M2 { foo() => 'M2.foo'; } -class M3 {} +mixin M3 {} @Native("A") class A { diff --git a/tests/web/native/native_mixin_multiple_test.dart b/tests/web/native/native_mixin_multiple_test.dart index 68e6714e092..6d9dc44e907 100644 --- a/tests/web/native/native_mixin_multiple_test.dart +++ b/tests/web/native/native_mixin_multiple_test.dart @@ -2,6 +2,8 @@ // 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. +// SharedOptions=--enable-experiment=class-modifiers + import "native_testing.dart"; // Test that native classes can use ordinary Dart classes as mixins. @@ -17,12 +19,12 @@ class B extends A with M1, M2 { bar() => baz(); } -class M1 { +mixin class M1 { foo() => "M1-foo"; baz() => "M1-baz"; } -class M2 { +mixin class M2 { foo() => "M2-foo"; } diff --git a/tests/web/native/native_mixin_test.dart b/tests/web/native/native_mixin_test.dart index 2ba35232096..67622f69e7d 100644 --- a/tests/web/native/native_mixin_test.dart +++ b/tests/web/native/native_mixin_test.dart @@ -2,6 +2,8 @@ // 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. +// SharedOptions=--enable-experiment=class-modifiers + import "native_testing.dart"; // Test that native classes can use ordinary Dart classes as mixins. @@ -17,7 +19,7 @@ class B extends A with M { bar() => baz(); } -class M { +mixin class M { foo() => "M-foo"; bar() => "M-bar"; } diff --git a/tests/web/native/native_mixin_with_plain_test.dart b/tests/web/native/native_mixin_with_plain_test.dart index e31b9045e62..f8f61c3c9f3 100644 --- a/tests/web/native/native_mixin_with_plain_test.dart +++ b/tests/web/native/native_mixin_with_plain_test.dart @@ -2,6 +2,8 @@ // 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. +// SharedOptions=--enable-experiment=class-modifiers + import "native_testing.dart"; // Test that native classes and ordinary Dart classes can both use the same @@ -20,7 +22,7 @@ class B extends A with M { get mm => 'B.mm($aa)'; } -class M { +mixin class M { foo() => "M-foo ${this.mm}"; bar() => "M-bar ${this.mm}"; get mm => 'M.mm'; diff --git a/tests/web/native/subclassing_3_test.dart b/tests/web/native/subclassing_3_test.dart index b7f89d3f024..4cee2ef30bf 100644 --- a/tests/web/native/subclassing_3_test.dart +++ b/tests/web/native/subclassing_3_test.dart @@ -11,7 +11,7 @@ import 'dart:_interceptors' show Interceptor, findInterceptorForType; doFoo(r, x) => '$x,${r.oof()},${r.miz()}'; -class M { +mixin M { miz() => 'M'; } diff --git a/tests/web/native/subclassing_4_test.dart b/tests/web/native/subclassing_4_test.dart index 7dd5e728dac..532d14519ed 100644 --- a/tests/web/native/subclassing_4_test.dart +++ b/tests/web/native/subclassing_4_test.dart @@ -8,7 +8,7 @@ import 'dart:_interceptors' show Interceptor, findInterceptorForType; // Test calling convention on subclasses of native classes. -class M { +mixin M { miz() => 'M'; } diff --git a/tests/web/native/subclassing_5_test.dart b/tests/web/native/subclassing_5_test.dart index 553b1f88fa4..2169840e273 100644 --- a/tests/web/native/subclassing_5_test.dart +++ b/tests/web/native/subclassing_5_test.dart @@ -10,7 +10,7 @@ import 'dart:_interceptors' show Interceptor, findInterceptorForType; class I {} -class M implements I { +mixin M implements I { miz() => 'M'; } diff --git a/tests/web/native/subclassing_type_test.dart b/tests/web/native/subclassing_type_test.dart index e5cc2beabcb..d734262ab8b 100644 --- a/tests/web/native/subclassing_type_test.dart +++ b/tests/web/native/subclassing_type_test.dart @@ -9,7 +9,7 @@ import 'dart:_interceptors' show Interceptor, findInterceptorForType; // Test that type checks and casts work for subclasses of native classes and // mixins on native classes. -class M {} +mixin M {} @Native("N") class N {} diff --git a/tools/FAKE_COMMITS b/tools/FAKE_COMMITS index 508cd6437cd..d85d533ba70 100644 --- a/tools/FAKE_COMMITS +++ b/tools/FAKE_COMMITS @@ -31,6 +31,7 @@ Trigger bots Trigger builds to check recipe changes Trigger builds to test builder configuration change Trigger mac builds now that the snoopy service is installed +Trigger bots Analyzer branch commits: Force build on new analyzer-branch linux build with new workflow diff --git a/tools/experimental_features.yaml b/tools/experimental_features.yaml index 6903371886d..d13d1fe2bda 100644 --- a/tools/experimental_features.yaml +++ b/tools/experimental_features.yaml @@ -132,21 +132,41 @@ features: records: help: "Records" - experimentalReleaseVersion: "2.19.0" + validation: | + final x = (1, 2); + void main() { + final x = ('feature', 'enabled'); + print('${x.$1} ${x.$2}'); + } patterns: help: "Patterns" + validation: | + void main() { + final [x, y] = ['feature', 'enabled']; + print('$x $y'); + } inline-class: help: "Inline class" sealed-class: help: "Sealed class" - experimentalReleaseVersion: "3.0.0" + enabledIn: '3.0.0' + validation: | + sealed class A {} + void main() { + print('feature enabled'); + } class-modifiers: help: "Class modifiers" - experimentalReleaseVersion: "3.0.0" + enabledIn: '3.0.0' + validation: | + interface class A {} + void main() { + print('feature enabled'); + } # Experiment flag only used for testing. test-experiment: