diff --git a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart index ad84c08b754..598ad5f31f6 100644 --- a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart +++ b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart @@ -4,6 +4,7 @@ enum E1 { element; + final int element = 42; // Error. } @@ -42,7 +43,7 @@ enum E7 { static void set element(E7 value) {} } -class A8 { +mixin A8 { void set element(dynamic value) {} } @@ -50,7 +51,7 @@ enum E8 with A8 { element // Error. } -class A9 { +mixin A9 { int element = 42; } @@ -58,7 +59,7 @@ enum E9 with A9 { element // Error. } -class A10 { +mixin A10 { void element() {} } diff --git a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.strong.expect index 124c4c63e59..42a347bd675 100644 --- a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.strong.expect +++ b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.strong.expect @@ -2,70 +2,70 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:7:13: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:8:13: Error: 'element' is already declared in this scope. // final int element = 42; // Error. // ^^^^^^^ // pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:6:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:12:3: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:13:3: Error: 'element' is already declared in this scope. // element; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:11:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:12:3: Context: Previous declaration of 'element'. // element, // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:18:8: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:19:8: Error: 'element' is already declared in this scope. // void element() {} // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:16:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:17:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:24:15: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:25:15: Error: 'element' is already declared in this scope. // static void element() {} // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:22:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:23:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:30:14: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:31:14: Error: 'element' is already declared in this scope. // static int element = 42; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:28:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:29:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:34:3: Error: This static member conflicts with an instance member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:35:3: Error: This static member conflicts with an instance member. // element; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:36:12: Context: This is the instance member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:37:12: Context: This is the instance member. // void set element(E6 value) {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:50:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:51:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:46:12: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:47:12: Context: This is the inherited member. // void set element(dynamic value) {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:58:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:59:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:54:7: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:55:7: Context: This is the inherited member. // int element = 42; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:66:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:67:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:62:8: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:63:8: Context: This is the inherited member. // void element() {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:57:6: Error: A constant constructor can't call a non-constant super constructor. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:58:6: Error: A constant constructor can't call a non-constant super constructor. // enum E9 with A9 { // ^ // @@ -137,10 +137,7 @@ class E7 extends core::_Enum /*isEnum*/ { return "E7.${this.{core::_Enum::_name}{core::String}}"; static set element(self::E7 value) → void {} } -class A8 extends core::Object { - synthetic constructor •() → self::A8 - : super core::Object::•() - ; +abstract class A8 extends core::Object /*isMixinDeclaration*/ { set element(dynamic value) → void {} } abstract class _E8&_Enum&A8 = core::_Enum with self::A8 /*isAnonymousMixin,hasConstConstructor*/ { @@ -159,11 +156,8 @@ class E8 extends self::_E8&_Enum&A8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -class A9 extends core::Object { +abstract class A9 extends core::Object /*isMixinDeclaration*/ { field core::int element = 42; - synthetic constructor •() → self::A9 - : super core::Object::•() - ; } abstract class _E9&_Enum&A9 = core::_Enum with self::A9 /*isAnonymousMixin*/ { synthetic constructor •(core::int index, core::String _name) → self::_E9&_Enum&A9 @@ -183,10 +177,7 @@ class E9 extends self::_E9&_Enum&A9 /*isEnum*/ { method _enumToString() → core::String return "E9.${this.{core::_Enum::_name}{core::String}}"; } -class A10 extends core::Object { - synthetic constructor •() → self::A10 - : super core::Object::•() - ; +abstract class A10 extends core::Object /*isMixinDeclaration*/ { method element() → void {} } abstract class _E10&_Enum&A10 = core::_Enum with self::A10 /*isAnonymousMixin,hasConstConstructor*/ { @@ -229,13 +220,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///conflicting_elements.dart: -- E2. (from org-dartlang-testcase:///conflicting_elements.dart:10:6) +- E2. (from org-dartlang-testcase:///conflicting_elements.dart:11:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E6. (from org-dartlang-testcase:///conflicting_elements.dart:33:6) -- E7. (from org-dartlang-testcase:///conflicting_elements.dart:39:6) -- E8. (from org-dartlang-testcase:///conflicting_elements.dart:49:6) -- _E8&_Enum&A8. (from org-dartlang-testcase:///conflicting_elements.dart:49:6) -- E9. (from org-dartlang-testcase:///conflicting_elements.dart:57:6) -- E10. (from org-dartlang-testcase:///conflicting_elements.dart:65:6) -- _E10&_Enum&A10. (from org-dartlang-testcase:///conflicting_elements.dart:65:6) +- E6. (from org-dartlang-testcase:///conflicting_elements.dart:34:6) +- E7. (from org-dartlang-testcase:///conflicting_elements.dart:40:6) +- E8. (from org-dartlang-testcase:///conflicting_elements.dart:50:6) +- _E8&_Enum&A8. (from org-dartlang-testcase:///conflicting_elements.dart:50:6) +- E9. (from org-dartlang-testcase:///conflicting_elements.dart:58:6) +- E10. (from org-dartlang-testcase:///conflicting_elements.dart:66:6) +- _E10&_Enum&A10. (from org-dartlang-testcase:///conflicting_elements.dart:66:6) diff --git a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.strong.transformed.expect index 2c30dad69dd..83a5a584c77 100644 --- a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.strong.transformed.expect @@ -2,70 +2,70 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:7:13: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:8:13: Error: 'element' is already declared in this scope. // final int element = 42; // Error. // ^^^^^^^ // pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:6:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:12:3: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:13:3: Error: 'element' is already declared in this scope. // element; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:11:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:12:3: Context: Previous declaration of 'element'. // element, // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:18:8: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:19:8: Error: 'element' is already declared in this scope. // void element() {} // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:16:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:17:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:24:15: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:25:15: Error: 'element' is already declared in this scope. // static void element() {} // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:22:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:23:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:30:14: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:31:14: Error: 'element' is already declared in this scope. // static int element = 42; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:28:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:29:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:34:3: Error: This static member conflicts with an instance member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:35:3: Error: This static member conflicts with an instance member. // element; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:36:12: Context: This is the instance member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:37:12: Context: This is the instance member. // void set element(E6 value) {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:50:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:51:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:46:12: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:47:12: Context: This is the inherited member. // void set element(dynamic value) {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:58:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:59:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:54:7: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:55:7: Context: This is the inherited member. // int element = 42; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:66:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:67:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:62:8: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:63:8: Context: This is the inherited member. // void element() {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:57:6: Error: A constant constructor can't call a non-constant super constructor. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:58:6: Error: A constant constructor can't call a non-constant super constructor. // enum E9 with A9 { // ^ // @@ -137,10 +137,7 @@ class E7 extends core::_Enum /*isEnum*/ { return "E7.${this.{core::_Enum::_name}{core::String}}"; static set element(self::E7 value) → void {} } -class A8 extends core::Object { - synthetic constructor •() → self::A8 - : super core::Object::•() - ; +abstract class A8 extends core::Object /*isMixinDeclaration*/ { set element(dynamic value) → void {} } abstract class _E8&_Enum&A8 extends core::_Enum implements self::A8 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { @@ -158,11 +155,8 @@ class E8 extends self::_E8&_Enum&A8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -class A9 extends core::Object { +abstract class A9 extends core::Object /*isMixinDeclaration*/ { field core::int element = 42; - synthetic constructor •() → self::A9 - : super core::Object::•() - ; } abstract class _E9&_Enum&A9 extends core::_Enum implements self::A9 /*isAnonymousMixin,isEliminatedMixin*/ { field core::int element = 42; @@ -179,10 +173,7 @@ class E9 extends self::_E9&_Enum&A9 /*isEnum*/ { method _enumToString() → core::String return "E9.${this.{core::_Enum::_name}{core::String}}"; } -class A10 extends core::Object { - synthetic constructor •() → self::A10 - : super core::Object::•() - ; +abstract class A10 extends core::Object /*isMixinDeclaration*/ { method element() → void {} } abstract class _E10&_Enum&A10 extends core::_Enum implements self::A10 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { @@ -224,13 +215,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///conflicting_elements.dart: -- E2. (from org-dartlang-testcase:///conflicting_elements.dart:10:6) +- E2. (from org-dartlang-testcase:///conflicting_elements.dart:11:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E6. (from org-dartlang-testcase:///conflicting_elements.dart:33:6) -- E7. (from org-dartlang-testcase:///conflicting_elements.dart:39:6) -- E8. (from org-dartlang-testcase:///conflicting_elements.dart:49:6) -- _E8&_Enum&A8. (from org-dartlang-testcase:///conflicting_elements.dart:49:6) -- E9. (from org-dartlang-testcase:///conflicting_elements.dart:57:6) -- E10. (from org-dartlang-testcase:///conflicting_elements.dart:65:6) -- _E10&_Enum&A10. (from org-dartlang-testcase:///conflicting_elements.dart:65:6) +- E6. (from org-dartlang-testcase:///conflicting_elements.dart:34:6) +- E7. (from org-dartlang-testcase:///conflicting_elements.dart:40:6) +- E8. (from org-dartlang-testcase:///conflicting_elements.dart:50:6) +- _E8&_Enum&A8. (from org-dartlang-testcase:///conflicting_elements.dart:50:6) +- E9. (from org-dartlang-testcase:///conflicting_elements.dart:58:6) +- E10. (from org-dartlang-testcase:///conflicting_elements.dart:66:6) +- _E10&_Enum&A10. (from org-dartlang-testcase:///conflicting_elements.dart:66:6) diff --git a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline.expect index 1a83d84f3a4..867bed93d21 100644 --- a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline.expect @@ -39,19 +39,19 @@ enum E7 { static void set element(E7 value) {} } -class A8 { +mixin A8 { void set element(dynamic value) {} } enum E8 with A8 { element } -class A9 { +mixin A9 { int element = 42; } enum E9 with A9 { element } -class A10 { +mixin A10 { void element() {} } diff --git a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline_modelled.expect index 2ef28c8b3d2..5e186de9753 100644 --- a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.textual_outline_modelled.expect @@ -1,15 +1,3 @@ -class A10 { - void element() {} -} - -class A8 { - void set element(dynamic value) {} -} - -class A9 { - int element = 42; -} - enum E1 { element; @@ -58,3 +46,12 @@ enum E8 with A8 { element } enum E9 with A9 { element } main() {} +mixin A10 { + void element() {} +} +mixin A8 { + void set element(dynamic value) {} +} +mixin A9 { + int element = 42; +} diff --git a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.expect b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.expect index ceac1b1c5a7..b00fe416eb4 100644 --- a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.expect +++ b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.expect @@ -2,70 +2,70 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:7:13: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:8:13: Error: 'element' is already declared in this scope. // final int element = 42; // Error. // ^^^^^^^ // pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:6:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:12:3: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:13:3: Error: 'element' is already declared in this scope. // element; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:11:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:12:3: Context: Previous declaration of 'element'. // element, // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:18:8: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:19:8: Error: 'element' is already declared in this scope. // void element() {} // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:16:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:17:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:24:15: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:25:15: Error: 'element' is already declared in this scope. // static void element() {} // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:22:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:23:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:30:14: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:31:14: Error: 'element' is already declared in this scope. // static int element = 42; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:28:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:29:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:34:3: Error: This static member conflicts with an instance member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:35:3: Error: This static member conflicts with an instance member. // element; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:36:12: Context: This is the instance member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:37:12: Context: This is the instance member. // void set element(E6 value) {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:50:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:51:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:46:12: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:47:12: Context: This is the inherited member. // void set element(dynamic value) {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:58:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:59:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:54:7: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:55:7: Context: This is the inherited member. // int element = 42; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:66:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:67:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:62:8: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:63:8: Context: This is the inherited member. // void element() {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:57:6: Error: A constant constructor can't call a non-constant super constructor. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:58:6: Error: A constant constructor can't call a non-constant super constructor. // enum E9 with A9 { // ^ // @@ -137,10 +137,7 @@ class E7 extends core::_Enum /*isEnum*/ { return "E7.${this.{core::_Enum::_name}{core::String}}"; static set element(self::E7 value) → void {} } -class A8 extends core::Object { - synthetic constructor •() → self::A8 - : super core::Object::•() - ; +abstract class A8 extends core::Object /*isMixinDeclaration*/ { set element(dynamic value) → void {} } abstract class _E8&_Enum&A8 = core::_Enum with self::A8 /*isAnonymousMixin,hasConstConstructor*/ { @@ -159,11 +156,8 @@ class E8 extends self::_E8&_Enum&A8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -class A9 extends core::Object { +abstract class A9 extends core::Object /*isMixinDeclaration*/ { field core::int element = 42; - synthetic constructor •() → self::A9 - : super core::Object::•() - ; } abstract class _E9&_Enum&A9 = core::_Enum with self::A9 /*isAnonymousMixin*/ { synthetic constructor •(core::int index, core::String _name) → self::_E9&_Enum&A9 @@ -183,10 +177,7 @@ class E9 extends self::_E9&_Enum&A9 /*isEnum*/ { method _enumToString() → core::String return "E9.${this.{core::_Enum::_name}{core::String}}"; } -class A10 extends core::Object { - synthetic constructor •() → self::A10 - : super core::Object::•() - ; +abstract class A10 extends core::Object /*isMixinDeclaration*/ { method element() → void {} } abstract class _E10&_Enum&A10 = core::_Enum with self::A10 /*isAnonymousMixin,hasConstConstructor*/ { @@ -229,13 +220,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///conflicting_elements.dart: -- E2. (from org-dartlang-testcase:///conflicting_elements.dart:10:6) +- E2. (from org-dartlang-testcase:///conflicting_elements.dart:11:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E6. (from org-dartlang-testcase:///conflicting_elements.dart:33:6) -- E7. (from org-dartlang-testcase:///conflicting_elements.dart:39:6) -- E8. (from org-dartlang-testcase:///conflicting_elements.dart:49:6) -- _E8&_Enum&A8. (from org-dartlang-testcase:///conflicting_elements.dart:49:6) -- E9. (from org-dartlang-testcase:///conflicting_elements.dart:57:6) -- E10. (from org-dartlang-testcase:///conflicting_elements.dart:65:6) -- _E10&_Enum&A10. (from org-dartlang-testcase:///conflicting_elements.dart:65:6) +- E6. (from org-dartlang-testcase:///conflicting_elements.dart:34:6) +- E7. (from org-dartlang-testcase:///conflicting_elements.dart:40:6) +- E8. (from org-dartlang-testcase:///conflicting_elements.dart:50:6) +- _E8&_Enum&A8. (from org-dartlang-testcase:///conflicting_elements.dart:50:6) +- E9. (from org-dartlang-testcase:///conflicting_elements.dart:58:6) +- E10. (from org-dartlang-testcase:///conflicting_elements.dart:66:6) +- _E10&_Enum&A10. (from org-dartlang-testcase:///conflicting_elements.dart:66:6) diff --git a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.modular.expect b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.modular.expect index ceac1b1c5a7..b00fe416eb4 100644 --- a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.modular.expect +++ b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.modular.expect @@ -2,70 +2,70 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:7:13: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:8:13: Error: 'element' is already declared in this scope. // final int element = 42; // Error. // ^^^^^^^ // pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:6:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:12:3: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:13:3: Error: 'element' is already declared in this scope. // element; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:11:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:12:3: Context: Previous declaration of 'element'. // element, // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:18:8: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:19:8: Error: 'element' is already declared in this scope. // void element() {} // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:16:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:17:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:24:15: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:25:15: Error: 'element' is already declared in this scope. // static void element() {} // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:22:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:23:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:30:14: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:31:14: Error: 'element' is already declared in this scope. // static int element = 42; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:28:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:29:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:34:3: Error: This static member conflicts with an instance member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:35:3: Error: This static member conflicts with an instance member. // element; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:36:12: Context: This is the instance member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:37:12: Context: This is the instance member. // void set element(E6 value) {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:50:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:51:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:46:12: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:47:12: Context: This is the inherited member. // void set element(dynamic value) {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:58:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:59:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:54:7: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:55:7: Context: This is the inherited member. // int element = 42; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:66:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:67:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:62:8: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:63:8: Context: This is the inherited member. // void element() {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:57:6: Error: A constant constructor can't call a non-constant super constructor. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:58:6: Error: A constant constructor can't call a non-constant super constructor. // enum E9 with A9 { // ^ // @@ -137,10 +137,7 @@ class E7 extends core::_Enum /*isEnum*/ { return "E7.${this.{core::_Enum::_name}{core::String}}"; static set element(self::E7 value) → void {} } -class A8 extends core::Object { - synthetic constructor •() → self::A8 - : super core::Object::•() - ; +abstract class A8 extends core::Object /*isMixinDeclaration*/ { set element(dynamic value) → void {} } abstract class _E8&_Enum&A8 = core::_Enum with self::A8 /*isAnonymousMixin,hasConstConstructor*/ { @@ -159,11 +156,8 @@ class E8 extends self::_E8&_Enum&A8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -class A9 extends core::Object { +abstract class A9 extends core::Object /*isMixinDeclaration*/ { field core::int element = 42; - synthetic constructor •() → self::A9 - : super core::Object::•() - ; } abstract class _E9&_Enum&A9 = core::_Enum with self::A9 /*isAnonymousMixin*/ { synthetic constructor •(core::int index, core::String _name) → self::_E9&_Enum&A9 @@ -183,10 +177,7 @@ class E9 extends self::_E9&_Enum&A9 /*isEnum*/ { method _enumToString() → core::String return "E9.${this.{core::_Enum::_name}{core::String}}"; } -class A10 extends core::Object { - synthetic constructor •() → self::A10 - : super core::Object::•() - ; +abstract class A10 extends core::Object /*isMixinDeclaration*/ { method element() → void {} } abstract class _E10&_Enum&A10 = core::_Enum with self::A10 /*isAnonymousMixin,hasConstConstructor*/ { @@ -229,13 +220,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///conflicting_elements.dart: -- E2. (from org-dartlang-testcase:///conflicting_elements.dart:10:6) +- E2. (from org-dartlang-testcase:///conflicting_elements.dart:11:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E6. (from org-dartlang-testcase:///conflicting_elements.dart:33:6) -- E7. (from org-dartlang-testcase:///conflicting_elements.dart:39:6) -- E8. (from org-dartlang-testcase:///conflicting_elements.dart:49:6) -- _E8&_Enum&A8. (from org-dartlang-testcase:///conflicting_elements.dart:49:6) -- E9. (from org-dartlang-testcase:///conflicting_elements.dart:57:6) -- E10. (from org-dartlang-testcase:///conflicting_elements.dart:65:6) -- _E10&_Enum&A10. (from org-dartlang-testcase:///conflicting_elements.dart:65:6) +- E6. (from org-dartlang-testcase:///conflicting_elements.dart:34:6) +- E7. (from org-dartlang-testcase:///conflicting_elements.dart:40:6) +- E8. (from org-dartlang-testcase:///conflicting_elements.dart:50:6) +- _E8&_Enum&A8. (from org-dartlang-testcase:///conflicting_elements.dart:50:6) +- E9. (from org-dartlang-testcase:///conflicting_elements.dart:58:6) +- E10. (from org-dartlang-testcase:///conflicting_elements.dart:66:6) +- _E10&_Enum&A10. (from org-dartlang-testcase:///conflicting_elements.dart:66:6) diff --git a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.outline.expect b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.outline.expect index 36d895c84f0..7f894b65fff 100644 --- a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.outline.expect @@ -2,66 +2,66 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:7:13: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:8:13: Error: 'element' is already declared in this scope. // final int element = 42; // Error. // ^^^^^^^ // pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:6:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:12:3: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:13:3: Error: 'element' is already declared in this scope. // element; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:11:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:12:3: Context: Previous declaration of 'element'. // element, // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:18:8: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:19:8: Error: 'element' is already declared in this scope. // void element() {} // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:16:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:17:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:24:15: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:25:15: Error: 'element' is already declared in this scope. // static void element() {} // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:22:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:23:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:30:14: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:31:14: Error: 'element' is already declared in this scope. // static int element = 42; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:28:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:29:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:34:3: Error: This static member conflicts with an instance member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:35:3: Error: This static member conflicts with an instance member. // element; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:36:12: Context: This is the instance member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:37:12: Context: This is the instance member. // void set element(E6 value) {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:50:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:51:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:46:12: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:47:12: Context: This is the inherited member. // void set element(dynamic value) {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:58:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:59:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:54:7: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:55:7: Context: This is the inherited member. // int element = 42; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:66:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:67:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:62:8: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:63:8: Context: This is the inherited member. // void element() {} // ^^^^^^^ // @@ -137,9 +137,7 @@ class E7 extends core::_Enum /*isEnum*/ { static set element(self::E7 value) → void ; } -class A8 extends core::Object { - synthetic constructor •() → self::A8 - ; +abstract class A8 extends core::Object /*isMixinDeclaration*/ { set element(dynamic value) → void ; } @@ -158,10 +156,8 @@ class E8 extends self::_E8&_Enum&A8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -class A9 extends core::Object { +abstract class A9 extends core::Object /*isMixinDeclaration*/ { field core::int element; - synthetic constructor •() → self::A9 - ; } abstract class _E9&_Enum&A9 = core::_Enum with self::A9 /*isAnonymousMixin*/ { synthetic constructor •(core::int index, core::String _name) → self::_E9&_Enum&A9 @@ -180,9 +176,7 @@ class E9 extends self::_E9&_Enum&A9 /*isEnum*/ { method _enumToString() → core::String return "E9.${this.{core::_Enum::_name}{core::String}}"; } -class A10 extends core::Object { - synthetic constructor •() → self::A10 - ; +abstract class A10 extends core::Object /*isMixinDeclaration*/ { method element() → void ; } @@ -207,19 +201,19 @@ static method main() → dynamic Extra constant evaluation status: Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:5:6 -> ListConstant(const []) -Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:10:6 -> ListConstant(const [const E2{_Enum.index: 0, _Enum._name: "element"}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///conflicting_elements.dart:11:3 -> InstanceConstant(const E2{_Enum.index: 0, _Enum._name: "element"}) -Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:15:6 -> ListConstant(const []) -Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:21:6 -> ListConstant(const []) -Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:27:6 -> ListConstant(const []) -Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:33:6 -> ListConstant(const [const E6{_Enum.index: 0, _Enum._name: "element"}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///conflicting_elements.dart:34:3 -> InstanceConstant(const E6{_Enum.index: 0, _Enum._name: "element"}) -Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:39:6 -> ListConstant(const [const E7{_Enum.index: 0, _Enum._name: "element"}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///conflicting_elements.dart:40:3 -> InstanceConstant(const E7{_Enum.index: 0, _Enum._name: "element"}) -Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:49:6 -> ListConstant(const [const E8{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///conflicting_elements.dart:50:3 -> InstanceConstant(const E8{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:57:6 -> ListConstant(const [const E9{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///conflicting_elements.dart:58:3 -> InstanceConstant(const E9{}) -Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:65:6 -> ListConstant(const [const E10{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///conflicting_elements.dart:66:3 -> InstanceConstant(const E10{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:11:6 -> ListConstant(const [const E2{_Enum.index: 0, _Enum._name: "element"}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///conflicting_elements.dart:12:3 -> InstanceConstant(const E2{_Enum.index: 0, _Enum._name: "element"}) +Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:16:6 -> ListConstant(const []) +Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:22:6 -> ListConstant(const []) +Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:28:6 -> ListConstant(const []) +Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:34:6 -> ListConstant(const [const E6{_Enum.index: 0, _Enum._name: "element"}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///conflicting_elements.dart:35:3 -> InstanceConstant(const E6{_Enum.index: 0, _Enum._name: "element"}) +Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:40:6 -> ListConstant(const [const E7{_Enum.index: 0, _Enum._name: "element"}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///conflicting_elements.dart:41:3 -> InstanceConstant(const E7{_Enum.index: 0, _Enum._name: "element"}) +Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:50:6 -> ListConstant(const [const E8{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///conflicting_elements.dart:51:3 -> InstanceConstant(const E8{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:58:6 -> ListConstant(const [const E9{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///conflicting_elements.dart:59:3 -> InstanceConstant(const E9{}) +Evaluated: ListLiteral @ org-dartlang-testcase:///conflicting_elements.dart:66:6 -> ListConstant(const [const E10{}]) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///conflicting_elements.dart:67:3 -> InstanceConstant(const E10{}) Extra constant evaluation: evaluated: 72, effectively constant: 16 diff --git a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.transformed.expect b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.transformed.expect index 92bd3a3bdb2..841c34744d0 100644 --- a/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart.weak.transformed.expect @@ -2,70 +2,70 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:7:13: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:8:13: Error: 'element' is already declared in this scope. // final int element = 42; // Error. // ^^^^^^^ // pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:6:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:12:3: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:13:3: Error: 'element' is already declared in this scope. // element; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:11:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:12:3: Context: Previous declaration of 'element'. // element, // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:18:8: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:19:8: Error: 'element' is already declared in this scope. // void element() {} // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:16:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:17:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:24:15: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:25:15: Error: 'element' is already declared in this scope. // static void element() {} // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:22:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:23:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:30:14: Error: 'element' is already declared in this scope. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:31:14: Error: 'element' is already declared in this scope. // static int element = 42; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:28:3: Context: Previous declaration of 'element'. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:29:3: Context: Previous declaration of 'element'. // element; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:34:3: Error: This static member conflicts with an instance member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:35:3: Error: This static member conflicts with an instance member. // element; // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:36:12: Context: This is the instance member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:37:12: Context: This is the instance member. // void set element(E6 value) {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:50:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:51:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:46:12: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:47:12: Context: This is the inherited member. // void set element(dynamic value) {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:58:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:59:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:54:7: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:55:7: Context: This is the inherited member. // int element = 42; // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:66:3: Error: Can't declare a member that conflicts with an inherited one. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:67:3: Error: Can't declare a member that conflicts with an inherited one. // element // Error. // ^^^^^^^ -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:62:8: Context: This is the inherited member. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:63:8: Context: This is the inherited member. // void element() {} // ^^^^^^^ // -// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:57:6: Error: A constant constructor can't call a non-constant super constructor. +// pkg/front_end/testcases/enhanced_enums/conflicting_elements.dart:58:6: Error: A constant constructor can't call a non-constant super constructor. // enum E9 with A9 { // ^ // @@ -137,10 +137,7 @@ class E7 extends core::_Enum /*isEnum*/ { return "E7.${this.{core::_Enum::_name}{core::String}}"; static set element(self::E7 value) → void {} } -class A8 extends core::Object { - synthetic constructor •() → self::A8 - : super core::Object::•() - ; +abstract class A8 extends core::Object /*isMixinDeclaration*/ { set element(dynamic value) → void {} } abstract class _E8&_Enum&A8 extends core::_Enum implements self::A8 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { @@ -158,11 +155,8 @@ class E8 extends self::_E8&_Enum&A8 /*isEnum*/ { method _enumToString() → core::String return "E8.${this.{core::_Enum::_name}{core::String}}"; } -class A9 extends core::Object { +abstract class A9 extends core::Object /*isMixinDeclaration*/ { field core::int element = 42; - synthetic constructor •() → self::A9 - : super core::Object::•() - ; } abstract class _E9&_Enum&A9 extends core::_Enum implements self::A9 /*isAnonymousMixin,isEliminatedMixin*/ { field core::int element = 42; @@ -179,10 +173,7 @@ class E9 extends self::_E9&_Enum&A9 /*isEnum*/ { method _enumToString() → core::String return "E9.${this.{core::_Enum::_name}{core::String}}"; } -class A10 extends core::Object { - synthetic constructor •() → self::A10 - : super core::Object::•() - ; +abstract class A10 extends core::Object /*isMixinDeclaration*/ { method element() → void {} } abstract class _E10&_Enum&A10 extends core::_Enum implements self::A10 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { @@ -224,13 +215,13 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///conflicting_elements.dart: -- E2. (from org-dartlang-testcase:///conflicting_elements.dart:10:6) +- E2. (from org-dartlang-testcase:///conflicting_elements.dart:11:6) - _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart) - Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart) -- E6. (from org-dartlang-testcase:///conflicting_elements.dart:33:6) -- E7. (from org-dartlang-testcase:///conflicting_elements.dart:39:6) -- E8. (from org-dartlang-testcase:///conflicting_elements.dart:49:6) -- _E8&_Enum&A8. (from org-dartlang-testcase:///conflicting_elements.dart:49:6) -- E9. (from org-dartlang-testcase:///conflicting_elements.dart:57:6) -- E10. (from org-dartlang-testcase:///conflicting_elements.dart:65:6) -- _E10&_Enum&A10. (from org-dartlang-testcase:///conflicting_elements.dart:65:6) +- E6. (from org-dartlang-testcase:///conflicting_elements.dart:34:6) +- E7. (from org-dartlang-testcase:///conflicting_elements.dart:40:6) +- E8. (from org-dartlang-testcase:///conflicting_elements.dart:50:6) +- _E8&_Enum&A8. (from org-dartlang-testcase:///conflicting_elements.dart:50:6) +- E9. (from org-dartlang-testcase:///conflicting_elements.dart:58:6) +- E10. (from org-dartlang-testcase:///conflicting_elements.dart:66:6) +- _E10&_Enum&A10. (from org-dartlang-testcase:///conflicting_elements.dart:66:6) diff --git a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart index 81e592e32ec..9a24980bcab 100644 --- a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart +++ b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart @@ -2,25 +2,25 @@ // 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 A { +mixin M1 { String get foo => "foo"; } -class B { +mixin M2 { int bar() => 42; } -mixin M { +mixin M3 { void set callOnAssignment(void Function() f) { f(); } } -enum E1 with A { one, two } +enum E1 with M1 { one, two } -enum E2 with A, B { one, two } +enum E2 with M1, M2 { one, two } -enum E3 with M { one, two } +enum E3 with M3 { one, two } expectEquals(x, y) { if (x != y) { diff --git a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.strong.expect b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.strong.expect index cf56327918c..9eee6ae7dab 100644 --- a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.strong.expect +++ b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.strong.expect @@ -2,79 +2,73 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { get foo() → core::String return "foo"; } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method bar() → core::int return 42; } -abstract class M extends core::Object /*isMixinDeclaration*/ { +abstract class M3 extends core::Object /*isMixinDeclaration*/ { set callOnAssignment(() → void f) → void { f(){() → void}; } } -abstract class _E1&_Enum&A = core::_Enum with self::A /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&A +abstract class _E1&_Enum&M1 = core::_Enum with self::M1 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&M1 : super core::_Enum::•(index, _name) ; mixin-super-stub get foo() → core::String - return super.{self::A::foo}; + return super.{self::M1::foo}; } -class E1 extends self::_E1&_Enum&A /*isEnum*/ { +class E1 extends self::_E1&_Enum&M1 /*isEnum*/ { static const field core::List values = #C7; enum-element static const field self::E1 one = #C3; enum-element static const field self::E1 two = #C6; const constructor •(core::int #index, core::String #name) → self::E1 - : super self::_E1&_Enum&A::•(#index, #name) + : super self::_E1&_Enum&M1::•(#index, #name) ; method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -abstract class _E2&_Enum&A = core::_Enum with self::A /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A +abstract class _E2&_Enum&M1 = core::_Enum with self::M1 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1 : super core::_Enum::•(index, _name) ; mixin-super-stub get foo() → core::String - return super.{self::A::foo}; + return super.{self::M1::foo}; } -abstract class _E2&_Enum&A&B = self::_E2&_Enum&A with self::B /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A&B - : super self::_E2&_Enum&A::•(index, _name) +abstract class _E2&_Enum&M1&M2 = self::_E2&_Enum&M1 with self::M2 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1&M2 + : super self::_E2&_Enum&M1::•(index, _name) ; mixin-super-stub method bar() → core::int - return super.{self::B::bar}(); + return super.{self::M2::bar}(); } -class E2 extends self::_E2&_Enum&A&B /*isEnum*/ { +class E2 extends self::_E2&_Enum&M1&M2 /*isEnum*/ { static const field core::List values = #C10; enum-element static const field self::E2 one = #C8; enum-element static const field self::E2 two = #C9; const constructor •(core::int #index, core::String #name) → self::E2 - : super self::_E2&_Enum&A&B::•(#index, #name) + : super self::_E2&_Enum&M1&M2::•(#index, #name) ; method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -abstract class _E3&_Enum&M = core::_Enum with self::M /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M +abstract class _E3&_Enum&M3 = core::_Enum with self::M3 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M3 : super core::_Enum::•(index, _name) ; mixin-super-stub set callOnAssignment(() → void f) → void - return super.{self::M::callOnAssignment} = f; + return super.{self::M3::callOnAssignment} = f; } -class E3 extends self::_E3&_Enum&M /*isEnum*/ { +class E3 extends self::_E3&_Enum&M3 /*isEnum*/ { static const field core::List values = #C13; enum-element static const field self::E3 one = #C11; enum-element static const field self::E3 two = #C12; const constructor •(core::int #index, core::String #name) → self::E3 - : super self::_E3&_Enum&M::•(#index, #name) + : super self::_E3&_Enum&M3::•(#index, #name) ; method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; @@ -96,14 +90,14 @@ static method throwOnCall() → void { throw 42; } static method main() → dynamic { - self::expectEquals(#C3.{self::_E1&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C6.{self::_E1&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C8.{self::_E2&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C9.{self::_E2&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C8.{self::_E2&_Enum&A&B::bar}(){() → core::int}, "bar"); - self::expectEquals(#C9.{self::_E2&_Enum&A&B::bar}(){() → core::int}, "bar"); - self::expectThrows(#C11.{self::_E3&_Enum&M::callOnAssignment} = #C14); - self::expectThrows(#C12.{self::_E3&_Enum&M::callOnAssignment} = #C14); + self::expectEquals(#C3.{self::_E1&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C6.{self::_E1&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C8.{self::_E2&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C9.{self::_E2&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C8.{self::_E2&_Enum&M1&M2::bar}(){() → core::int}, "bar"); + self::expectEquals(#C9.{self::_E2&_Enum&M1&M2::bar}(){() → core::int}, "bar"); + self::expectThrows(#C11.{self::_E3&_Enum&M3::callOnAssignment} = #C14); + self::expectThrows(#C12.{self::_E3&_Enum&M3::callOnAssignment} = #C14); } constants { @@ -127,11 +121,11 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///simple_mixins.dart: - E1. (from org-dartlang-testcase:///simple_mixins.dart:19:6) -- _E1&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:19:6) +- _E1&_Enum&M1. (from org-dartlang-testcase:///simple_mixins.dart:19: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:///simple_mixins.dart:21:6) -- _E2&_Enum&A&B. (from org-dartlang-testcase:///simple_mixins.dart:21:6) -- _E2&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:21:6) +- _E2&_Enum&M1&M2. (from org-dartlang-testcase:///simple_mixins.dart:21:6) +- _E2&_Enum&M1. (from org-dartlang-testcase:///simple_mixins.dart:21:6) - E3. (from org-dartlang-testcase:///simple_mixins.dart:23:6) -- _E3&_Enum&M. (from org-dartlang-testcase:///simple_mixins.dart:23:6) +- _E3&_Enum&M3. (from org-dartlang-testcase:///simple_mixins.dart:23:6) diff --git a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.strong.transformed.expect b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.strong.transformed.expect index 9615b92c000..a0e0bdb0157 100644 --- a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.strong.transformed.expect @@ -2,80 +2,74 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { get foo() → core::String return "foo"; } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method bar() → core::int return 42; } -abstract class M extends core::Object /*isMixinDeclaration*/ { +abstract class M3 extends core::Object /*isMixinDeclaration*/ { set callOnAssignment(() → void f) → void { f(){() → void}; } } -abstract class _E1&_Enum&A extends core::_Enum implements self::A /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&A +abstract class _E1&_Enum&M1 extends core::_Enum implements self::M1 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&M1 : super core::_Enum::•(index, _name) ; get foo() → core::String return "foo"; } -class E1 extends self::_E1&_Enum&A /*isEnum*/ { +class E1 extends self::_E1&_Enum&M1 /*isEnum*/ { static const field core::List values = #C7; enum-element static const field self::E1 one = #C3; enum-element static const field self::E1 two = #C6; const constructor •(core::int #index, core::String #name) → self::E1 - : super self::_E1&_Enum&A::•(#index, #name) + : super self::_E1&_Enum&M1::•(#index, #name) ; method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -abstract class _E2&_Enum&A extends core::_Enum implements self::A /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A +abstract class _E2&_Enum&M1 extends core::_Enum implements self::M1 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1 : super core::_Enum::•(index, _name) ; get foo() → core::String return "foo"; } -abstract class _E2&_Enum&A&B extends self::_E2&_Enum&A implements self::B /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A&B - : super self::_E2&_Enum&A::•(index, _name) +abstract class _E2&_Enum&M1&M2 extends self::_E2&_Enum&M1 implements self::M2 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1&M2 + : super self::_E2&_Enum&M1::•(index, _name) ; method bar() → core::int return 42; } -class E2 extends self::_E2&_Enum&A&B /*isEnum*/ { +class E2 extends self::_E2&_Enum&M1&M2 /*isEnum*/ { static const field core::List values = #C10; enum-element static const field self::E2 one = #C8; enum-element static const field self::E2 two = #C9; const constructor •(core::int #index, core::String #name) → self::E2 - : super self::_E2&_Enum&A&B::•(#index, #name) + : super self::_E2&_Enum&M1&M2::•(#index, #name) ; method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -abstract class _E3&_Enum&M extends core::_Enum implements self::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M +abstract class _E3&_Enum&M3 extends core::_Enum implements self::M3 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M3 : super core::_Enum::•(index, _name) ; set callOnAssignment(() → void f) → void { f(){() → void}; } } -class E3 extends self::_E3&_Enum&M /*isEnum*/ { +class E3 extends self::_E3&_Enum&M3 /*isEnum*/ { static const field core::List values = #C13; enum-element static const field self::E3 one = #C11; enum-element static const field self::E3 two = #C12; const constructor •(core::int #index, core::String #name) → self::E3 - : super self::_E3&_Enum&M::•(#index, #name) + : super self::_E3&_Enum&M3::•(#index, #name) ; method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; @@ -97,14 +91,14 @@ static method throwOnCall() → void { throw 42; } static method main() → dynamic { - self::expectEquals(#C3.{self::_E1&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C6.{self::_E1&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C8.{self::_E2&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C9.{self::_E2&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C8.{self::_E2&_Enum&A&B::bar}(){() → core::int}, "bar"); - self::expectEquals(#C9.{self::_E2&_Enum&A&B::bar}(){() → core::int}, "bar"); - self::expectThrows(#C11.{self::_E3&_Enum&M::callOnAssignment} = #C14); - self::expectThrows(#C12.{self::_E3&_Enum&M::callOnAssignment} = #C14); + self::expectEquals(#C3.{self::_E1&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C6.{self::_E1&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C8.{self::_E2&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C9.{self::_E2&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C8.{self::_E2&_Enum&M1&M2::bar}(){() → core::int}, "bar"); + self::expectEquals(#C9.{self::_E2&_Enum&M1&M2::bar}(){() → core::int}, "bar"); + self::expectThrows(#C11.{self::_E3&_Enum&M3::callOnAssignment} = #C14); + self::expectThrows(#C12.{self::_E3&_Enum&M3::callOnAssignment} = #C14); } constants { @@ -128,11 +122,11 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///simple_mixins.dart: - E1. (from org-dartlang-testcase:///simple_mixins.dart:19:6) -- _E1&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:19:6) +- _E1&_Enum&M1. (from org-dartlang-testcase:///simple_mixins.dart:19: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:///simple_mixins.dart:21:6) -- _E2&_Enum&A&B. (from org-dartlang-testcase:///simple_mixins.dart:21:6) -- _E2&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:21:6) +- _E2&_Enum&M1&M2. (from org-dartlang-testcase:///simple_mixins.dart:21:6) +- _E2&_Enum&M1. (from org-dartlang-testcase:///simple_mixins.dart:21:6) - E3. (from org-dartlang-testcase:///simple_mixins.dart:23:6) -- _E3&_Enum&M. (from org-dartlang-testcase:///simple_mixins.dart:23:6) +- _E3&_Enum&M3. (from org-dartlang-testcase:///simple_mixins.dart:23:6) diff --git a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline.expect b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline.expect index a428d0bf5db..bc93ca78af0 100644 --- a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline.expect @@ -1,20 +1,18 @@ -class A { +mixin M1 { String get foo => "foo"; } - -class B { +mixin M2 { int bar() => 42; } - -mixin M { +mixin M3 { void set callOnAssignment(void Function() f) {} } -enum E1 with A { one, two } +enum E1 with M1 { one, two } -enum E2 with A, B { one, two } +enum E2 with M1, M2 { one, two } -enum E3 with M { one, two } +enum E3 with M3 { one, two } expectEquals(x, y) {} expectThrows(void Function() f) {} diff --git a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline_modelled.expect index bd0fbf1cd46..a114dced03e 100644 --- a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.textual_outline_modelled.expect @@ -1,21 +1,19 @@ -class A { - String get foo => "foo"; -} +enum E1 with M1 { one, two } -class B { - int bar() => 42; -} +enum E2 with M1, M2 { one, two } -enum E1 with A { one, two } - -enum E2 with A, B { one, two } - -enum E3 with M { one, two } +enum E3 with M3 { one, two } expectEquals(x, y) {} expectThrows(void Function() f) {} main() {} -mixin M { +mixin M1 { + String get foo => "foo"; +} +mixin M2 { + int bar() => 42; +} +mixin M3 { void set callOnAssignment(void Function() f) {} } void throwOnCall() {} diff --git a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.expect b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.expect index 17388cf7001..324a1ff524f 100644 --- a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.expect +++ b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.expect @@ -2,79 +2,73 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { get foo() → core::String return "foo"; } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method bar() → core::int return 42; } -abstract class M extends core::Object /*isMixinDeclaration*/ { +abstract class M3 extends core::Object /*isMixinDeclaration*/ { set callOnAssignment(() → void f) → void { f(){() → void}; } } -abstract class _E1&_Enum&A = core::_Enum with self::A /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&A +abstract class _E1&_Enum&M1 = core::_Enum with self::M1 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&M1 : super core::_Enum::•(index, _name) ; mixin-super-stub get foo() → core::String - return super.{self::A::foo}; + return super.{self::M1::foo}; } -class E1 extends self::_E1&_Enum&A /*isEnum*/ { +class E1 extends self::_E1&_Enum&M1 /*isEnum*/ { static const field core::List values = #C7; enum-element static const field self::E1 one = #C3; enum-element static const field self::E1 two = #C6; const constructor •(core::int #index, core::String #name) → self::E1 - : super self::_E1&_Enum&A::•(#index, #name) + : super self::_E1&_Enum&M1::•(#index, #name) ; method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -abstract class _E2&_Enum&A = core::_Enum with self::A /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A +abstract class _E2&_Enum&M1 = core::_Enum with self::M1 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1 : super core::_Enum::•(index, _name) ; mixin-super-stub get foo() → core::String - return super.{self::A::foo}; + return super.{self::M1::foo}; } -abstract class _E2&_Enum&A&B = self::_E2&_Enum&A with self::B /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A&B - : super self::_E2&_Enum&A::•(index, _name) +abstract class _E2&_Enum&M1&M2 = self::_E2&_Enum&M1 with self::M2 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1&M2 + : super self::_E2&_Enum&M1::•(index, _name) ; mixin-super-stub method bar() → core::int - return super.{self::B::bar}(); + return super.{self::M2::bar}(); } -class E2 extends self::_E2&_Enum&A&B /*isEnum*/ { +class E2 extends self::_E2&_Enum&M1&M2 /*isEnum*/ { static const field core::List values = #C10; enum-element static const field self::E2 one = #C8; enum-element static const field self::E2 two = #C9; const constructor •(core::int #index, core::String #name) → self::E2 - : super self::_E2&_Enum&A&B::•(#index, #name) + : super self::_E2&_Enum&M1&M2::•(#index, #name) ; method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -abstract class _E3&_Enum&M = core::_Enum with self::M /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M +abstract class _E3&_Enum&M3 = core::_Enum with self::M3 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M3 : super core::_Enum::•(index, _name) ; mixin-super-stub set callOnAssignment(() → void f) → void - return super.{self::M::callOnAssignment} = f; + return super.{self::M3::callOnAssignment} = f; } -class E3 extends self::_E3&_Enum&M /*isEnum*/ { +class E3 extends self::_E3&_Enum&M3 /*isEnum*/ { static const field core::List values = #C13; enum-element static const field self::E3 one = #C11; enum-element static const field self::E3 two = #C12; const constructor •(core::int #index, core::String #name) → self::E3 - : super self::_E3&_Enum&M::•(#index, #name) + : super self::_E3&_Enum&M3::•(#index, #name) ; method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; @@ -96,14 +90,14 @@ static method throwOnCall() → void { throw 42; } static method main() → dynamic { - self::expectEquals(#C3.{self::_E1&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C6.{self::_E1&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C8.{self::_E2&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C9.{self::_E2&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C8.{self::_E2&_Enum&A&B::bar}(){() → core::int}, "bar"); - self::expectEquals(#C9.{self::_E2&_Enum&A&B::bar}(){() → core::int}, "bar"); - self::expectThrows(#C11.{self::_E3&_Enum&M::callOnAssignment} = #C14); - self::expectThrows(#C12.{self::_E3&_Enum&M::callOnAssignment} = #C14); + self::expectEquals(#C3.{self::_E1&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C6.{self::_E1&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C8.{self::_E2&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C9.{self::_E2&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C8.{self::_E2&_Enum&M1&M2::bar}(){() → core::int}, "bar"); + self::expectEquals(#C9.{self::_E2&_Enum&M1&M2::bar}(){() → core::int}, "bar"); + self::expectThrows(#C11.{self::_E3&_Enum&M3::callOnAssignment} = #C14); + self::expectThrows(#C12.{self::_E3&_Enum&M3::callOnAssignment} = #C14); } constants { @@ -127,11 +121,11 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///simple_mixins.dart: - E1. (from org-dartlang-testcase:///simple_mixins.dart:19:6) -- _E1&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:19:6) +- _E1&_Enum&M1. (from org-dartlang-testcase:///simple_mixins.dart:19: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:///simple_mixins.dart:21:6) -- _E2&_Enum&A&B. (from org-dartlang-testcase:///simple_mixins.dart:21:6) -- _E2&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:21:6) +- _E2&_Enum&M1&M2. (from org-dartlang-testcase:///simple_mixins.dart:21:6) +- _E2&_Enum&M1. (from org-dartlang-testcase:///simple_mixins.dart:21:6) - E3. (from org-dartlang-testcase:///simple_mixins.dart:23:6) -- _E3&_Enum&M. (from org-dartlang-testcase:///simple_mixins.dart:23:6) +- _E3&_Enum&M3. (from org-dartlang-testcase:///simple_mixins.dart:23:6) diff --git a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.modular.expect b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.modular.expect index 17388cf7001..324a1ff524f 100644 --- a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.modular.expect +++ b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.modular.expect @@ -2,79 +2,73 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { get foo() → core::String return "foo"; } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method bar() → core::int return 42; } -abstract class M extends core::Object /*isMixinDeclaration*/ { +abstract class M3 extends core::Object /*isMixinDeclaration*/ { set callOnAssignment(() → void f) → void { f(){() → void}; } } -abstract class _E1&_Enum&A = core::_Enum with self::A /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&A +abstract class _E1&_Enum&M1 = core::_Enum with self::M1 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&M1 : super core::_Enum::•(index, _name) ; mixin-super-stub get foo() → core::String - return super.{self::A::foo}; + return super.{self::M1::foo}; } -class E1 extends self::_E1&_Enum&A /*isEnum*/ { +class E1 extends self::_E1&_Enum&M1 /*isEnum*/ { static const field core::List values = #C7; enum-element static const field self::E1 one = #C3; enum-element static const field self::E1 two = #C6; const constructor •(core::int #index, core::String #name) → self::E1 - : super self::_E1&_Enum&A::•(#index, #name) + : super self::_E1&_Enum&M1::•(#index, #name) ; method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -abstract class _E2&_Enum&A = core::_Enum with self::A /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A +abstract class _E2&_Enum&M1 = core::_Enum with self::M1 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1 : super core::_Enum::•(index, _name) ; mixin-super-stub get foo() → core::String - return super.{self::A::foo}; + return super.{self::M1::foo}; } -abstract class _E2&_Enum&A&B = self::_E2&_Enum&A with self::B /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A&B - : super self::_E2&_Enum&A::•(index, _name) +abstract class _E2&_Enum&M1&M2 = self::_E2&_Enum&M1 with self::M2 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1&M2 + : super self::_E2&_Enum&M1::•(index, _name) ; mixin-super-stub method bar() → core::int - return super.{self::B::bar}(); + return super.{self::M2::bar}(); } -class E2 extends self::_E2&_Enum&A&B /*isEnum*/ { +class E2 extends self::_E2&_Enum&M1&M2 /*isEnum*/ { static const field core::List values = #C10; enum-element static const field self::E2 one = #C8; enum-element static const field self::E2 two = #C9; const constructor •(core::int #index, core::String #name) → self::E2 - : super self::_E2&_Enum&A&B::•(#index, #name) + : super self::_E2&_Enum&M1&M2::•(#index, #name) ; method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -abstract class _E3&_Enum&M = core::_Enum with self::M /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M +abstract class _E3&_Enum&M3 = core::_Enum with self::M3 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M3 : super core::_Enum::•(index, _name) ; mixin-super-stub set callOnAssignment(() → void f) → void - return super.{self::M::callOnAssignment} = f; + return super.{self::M3::callOnAssignment} = f; } -class E3 extends self::_E3&_Enum&M /*isEnum*/ { +class E3 extends self::_E3&_Enum&M3 /*isEnum*/ { static const field core::List values = #C13; enum-element static const field self::E3 one = #C11; enum-element static const field self::E3 two = #C12; const constructor •(core::int #index, core::String #name) → self::E3 - : super self::_E3&_Enum&M::•(#index, #name) + : super self::_E3&_Enum&M3::•(#index, #name) ; method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; @@ -96,14 +90,14 @@ static method throwOnCall() → void { throw 42; } static method main() → dynamic { - self::expectEquals(#C3.{self::_E1&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C6.{self::_E1&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C8.{self::_E2&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C9.{self::_E2&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C8.{self::_E2&_Enum&A&B::bar}(){() → core::int}, "bar"); - self::expectEquals(#C9.{self::_E2&_Enum&A&B::bar}(){() → core::int}, "bar"); - self::expectThrows(#C11.{self::_E3&_Enum&M::callOnAssignment} = #C14); - self::expectThrows(#C12.{self::_E3&_Enum&M::callOnAssignment} = #C14); + self::expectEquals(#C3.{self::_E1&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C6.{self::_E1&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C8.{self::_E2&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C9.{self::_E2&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C8.{self::_E2&_Enum&M1&M2::bar}(){() → core::int}, "bar"); + self::expectEquals(#C9.{self::_E2&_Enum&M1&M2::bar}(){() → core::int}, "bar"); + self::expectThrows(#C11.{self::_E3&_Enum&M3::callOnAssignment} = #C14); + self::expectThrows(#C12.{self::_E3&_Enum&M3::callOnAssignment} = #C14); } constants { @@ -127,11 +121,11 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///simple_mixins.dart: - E1. (from org-dartlang-testcase:///simple_mixins.dart:19:6) -- _E1&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:19:6) +- _E1&_Enum&M1. (from org-dartlang-testcase:///simple_mixins.dart:19: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:///simple_mixins.dart:21:6) -- _E2&_Enum&A&B. (from org-dartlang-testcase:///simple_mixins.dart:21:6) -- _E2&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:21:6) +- _E2&_Enum&M1&M2. (from org-dartlang-testcase:///simple_mixins.dart:21:6) +- _E2&_Enum&M1. (from org-dartlang-testcase:///simple_mixins.dart:21:6) - E3. (from org-dartlang-testcase:///simple_mixins.dart:23:6) -- _E3&_Enum&M. (from org-dartlang-testcase:///simple_mixins.dart:23:6) +- _E3&_Enum&M3. (from org-dartlang-testcase:///simple_mixins.dart:23:6) diff --git a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.outline.expect b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.outline.expect index 8aeb8d2af24..1ecc11009ee 100644 --- a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.outline.expect +++ b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.outline.expect @@ -2,30 +2,26 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { get foo() → core::String ; } -class B extends core::Object { - synthetic constructor •() → self::B - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method bar() → core::int ; } -abstract class M extends core::Object /*isMixinDeclaration*/ { +abstract class M3 extends core::Object /*isMixinDeclaration*/ { set callOnAssignment(() → void f) → void ; } -abstract class _E1&_Enum&A = core::_Enum with self::A /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&A +abstract class _E1&_Enum&M1 = core::_Enum with self::M1 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&M1 : super core::_Enum::•(index, _name) ; mixin-super-stub get foo() → core::String - return super.{self::A::foo}; + return super.{self::M1::foo}; } -class E1 extends self::_E1&_Enum&A /*isEnum*/ { +class E1 extends self::_E1&_Enum&M1 /*isEnum*/ { static const field core::List values = const [self::E1::one, self::E1::two]; enum-element static const field self::E1 one = const self::E1::•(0, "one"); enum-element static const field self::E1 two = const self::E1::•(1, "two"); @@ -34,21 +30,21 @@ class E1 extends self::_E1&_Enum&A /*isEnum*/ { method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -abstract class _E2&_Enum&A = core::_Enum with self::A /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A +abstract class _E2&_Enum&M1 = core::_Enum with self::M1 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1 : super core::_Enum::•(index, _name) ; mixin-super-stub get foo() → core::String - return super.{self::A::foo}; + return super.{self::M1::foo}; } -abstract class _E2&_Enum&A&B = self::_E2&_Enum&A with self::B /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A&B - : super self::_E2&_Enum&A::•(index, _name) +abstract class _E2&_Enum&M1&M2 = self::_E2&_Enum&M1 with self::M2 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1&M2 + : super self::_E2&_Enum&M1::•(index, _name) ; mixin-super-stub method bar() → core::int - return super.{self::B::bar}(); + return super.{self::M2::bar}(); } -class E2 extends self::_E2&_Enum&A&B /*isEnum*/ { +class E2 extends self::_E2&_Enum&M1&M2 /*isEnum*/ { static const field core::List values = const [self::E2::one, self::E2::two]; enum-element static const field self::E2 one = const self::E2::•(0, "one"); enum-element static const field self::E2 two = const self::E2::•(1, "two"); @@ -57,14 +53,14 @@ class E2 extends self::_E2&_Enum&A&B /*isEnum*/ { method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -abstract class _E3&_Enum&M = core::_Enum with self::M /*isAnonymousMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M +abstract class _E3&_Enum&M3 = core::_Enum with self::M3 /*isAnonymousMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M3 : super core::_Enum::•(index, _name) ; mixin-super-stub set callOnAssignment(() → void f) → void - return super.{self::M::callOnAssignment} = f; + return super.{self::M3::callOnAssignment} = f; } -class E3 extends self::_E3&_Enum&M /*isEnum*/ { +class E3 extends self::_E3&_Enum&M3 /*isEnum*/ { static const field core::List values = const [self::E3::one, self::E3::two]; enum-element static const field self::E3 one = const self::E3::•(0, "one"); enum-element static const field self::E3 two = const self::E3::•(1, "two"); @@ -85,12 +81,12 @@ static method main() → dynamic Extra constant evaluation status: Evaluated: ListLiteral @ org-dartlang-testcase:///simple_mixins.dart:19:6 -> ListConstant(const [const E1{}, const E1{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///simple_mixins.dart:19:18 -> InstanceConstant(const E1{}) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///simple_mixins.dart:19:23 -> InstanceConstant(const E1{}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///simple_mixins.dart:19:19 -> InstanceConstant(const E1{}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///simple_mixins.dart:19:24 -> InstanceConstant(const E1{}) Evaluated: ListLiteral @ org-dartlang-testcase:///simple_mixins.dart:21:6 -> ListConstant(const [const E2{}, const E2{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///simple_mixins.dart:21:21 -> InstanceConstant(const E2{}) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///simple_mixins.dart:21:26 -> InstanceConstant(const E2{}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///simple_mixins.dart:21:23 -> InstanceConstant(const E2{}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///simple_mixins.dart:21:28 -> InstanceConstant(const E2{}) Evaluated: ListLiteral @ org-dartlang-testcase:///simple_mixins.dart:23:6 -> ListConstant(const [const E3{}, const E3{}]) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///simple_mixins.dart:23:18 -> InstanceConstant(const E3{}) -Evaluated: ConstructorInvocation @ org-dartlang-testcase:///simple_mixins.dart:23:23 -> InstanceConstant(const E3{}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///simple_mixins.dart:23:19 -> InstanceConstant(const E3{}) +Evaluated: ConstructorInvocation @ org-dartlang-testcase:///simple_mixins.dart:23:24 -> InstanceConstant(const E3{}) Extra constant evaluation: evaluated: 31, effectively constant: 9 diff --git a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.transformed.expect b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.transformed.expect index f81abee50bb..85999100c9c 100644 --- a/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/enhanced_enums/simple_mixins.dart.weak.transformed.expect @@ -2,80 +2,74 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { get foo() → core::String return "foo"; } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method bar() → core::int return 42; } -abstract class M extends core::Object /*isMixinDeclaration*/ { +abstract class M3 extends core::Object /*isMixinDeclaration*/ { set callOnAssignment(() → void f) → void { f(){() → void}; } } -abstract class _E1&_Enum&A extends core::_Enum implements self::A /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&A +abstract class _E1&_Enum&M1 extends core::_Enum implements self::M1 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E1&_Enum&M1 : super core::_Enum::•(index, _name) ; get foo() → core::String return "foo"; } -class E1 extends self::_E1&_Enum&A /*isEnum*/ { +class E1 extends self::_E1&_Enum&M1 /*isEnum*/ { static const field core::List values = #C7; enum-element static const field self::E1 one = #C3; enum-element static const field self::E1 two = #C6; const constructor •(core::int #index, core::String #name) → self::E1 - : super self::_E1&_Enum&A::•(#index, #name) + : super self::_E1&_Enum&M1::•(#index, #name) ; method _enumToString() → core::String return "E1.${this.{core::_Enum::_name}{core::String}}"; } -abstract class _E2&_Enum&A extends core::_Enum implements self::A /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A +abstract class _E2&_Enum&M1 extends core::_Enum implements self::M1 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1 : super core::_Enum::•(index, _name) ; get foo() → core::String return "foo"; } -abstract class _E2&_Enum&A&B extends self::_E2&_Enum&A implements self::B /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&A&B - : super self::_E2&_Enum&A::•(index, _name) +abstract class _E2&_Enum&M1&M2 extends self::_E2&_Enum&M1 implements self::M2 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E2&_Enum&M1&M2 + : super self::_E2&_Enum&M1::•(index, _name) ; method bar() → core::int return 42; } -class E2 extends self::_E2&_Enum&A&B /*isEnum*/ { +class E2 extends self::_E2&_Enum&M1&M2 /*isEnum*/ { static const field core::List values = #C10; enum-element static const field self::E2 one = #C8; enum-element static const field self::E2 two = #C9; const constructor •(core::int #index, core::String #name) → self::E2 - : super self::_E2&_Enum&A&B::•(#index, #name) + : super self::_E2&_Enum&M1&M2::•(#index, #name) ; method _enumToString() → core::String return "E2.${this.{core::_Enum::_name}{core::String}}"; } -abstract class _E3&_Enum&M extends core::_Enum implements self::M /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { - const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M +abstract class _E3&_Enum&M3 extends core::_Enum implements self::M3 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { + const synthetic constructor •(core::int index, core::String _name) → self::_E3&_Enum&M3 : super core::_Enum::•(index, _name) ; set callOnAssignment(() → void f) → void { f(){() → void}; } } -class E3 extends self::_E3&_Enum&M /*isEnum*/ { +class E3 extends self::_E3&_Enum&M3 /*isEnum*/ { static const field core::List values = #C13; enum-element static const field self::E3 one = #C11; enum-element static const field self::E3 two = #C12; const constructor •(core::int #index, core::String #name) → self::E3 - : super self::_E3&_Enum&M::•(#index, #name) + : super self::_E3&_Enum&M3::•(#index, #name) ; method _enumToString() → core::String return "E3.${this.{core::_Enum::_name}{core::String}}"; @@ -97,14 +91,14 @@ static method throwOnCall() → void { throw 42; } static method main() → dynamic { - self::expectEquals(#C3.{self::_E1&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C6.{self::_E1&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C8.{self::_E2&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C9.{self::_E2&_Enum&A::foo}{core::String}, "foo"); - self::expectEquals(#C8.{self::_E2&_Enum&A&B::bar}(){() → core::int}, "bar"); - self::expectEquals(#C9.{self::_E2&_Enum&A&B::bar}(){() → core::int}, "bar"); - self::expectThrows(#C11.{self::_E3&_Enum&M::callOnAssignment} = #C14); - self::expectThrows(#C12.{self::_E3&_Enum&M::callOnAssignment} = #C14); + self::expectEquals(#C3.{self::_E1&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C6.{self::_E1&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C8.{self::_E2&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C9.{self::_E2&_Enum&M1::foo}{core::String}, "foo"); + self::expectEquals(#C8.{self::_E2&_Enum&M1&M2::bar}(){() → core::int}, "bar"); + self::expectEquals(#C9.{self::_E2&_Enum&M1&M2::bar}(){() → core::int}, "bar"); + self::expectThrows(#C11.{self::_E3&_Enum&M3::callOnAssignment} = #C14); + self::expectThrows(#C12.{self::_E3&_Enum&M3::callOnAssignment} = #C14); } constants { @@ -128,11 +122,11 @@ constants { Constructor coverage from constants: org-dartlang-testcase:///simple_mixins.dart: - E1. (from org-dartlang-testcase:///simple_mixins.dart:19:6) -- _E1&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:19:6) +- _E1&_Enum&M1. (from org-dartlang-testcase:///simple_mixins.dart:19: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:///simple_mixins.dart:21:6) -- _E2&_Enum&A&B. (from org-dartlang-testcase:///simple_mixins.dart:21:6) -- _E2&_Enum&A. (from org-dartlang-testcase:///simple_mixins.dart:21:6) +- _E2&_Enum&M1&M2. (from org-dartlang-testcase:///simple_mixins.dart:21:6) +- _E2&_Enum&M1. (from org-dartlang-testcase:///simple_mixins.dart:21:6) - E3. (from org-dartlang-testcase:///simple_mixins.dart:23:6) -- _E3&_Enum&M. (from org-dartlang-testcase:///simple_mixins.dart:23:6) +- _E3&_Enum&M3. (from org-dartlang-testcase:///simple_mixins.dart:23:6) diff --git a/pkg/front_end/testcases/general/bug33099.dart b/pkg/front_end/testcases/general/bug33099.dart index 25fd24eb919..e87c7522ad2 100644 --- a/pkg/front_end/testcases/general/bug33099.dart +++ b/pkg/front_end/testcases/general/bug33099.dart @@ -10,7 +10,7 @@ class _FailingTest { const _FailingTest(); } -class MyTest { +mixin MyTest { @failingTest void foo() {} } diff --git a/pkg/front_end/testcases/general/bug33099.dart.strong.expect b/pkg/front_end/testcases/general/bug33099.dart.strong.expect index a04af8495ae..16440eb4990 100644 --- a/pkg/front_end/testcases/general/bug33099.dart.strong.expect +++ b/pkg/front_end/testcases/general/bug33099.dart.strong.expect @@ -10,10 +10,7 @@ class _FailingTest extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; } -class MyTest extends core::Object { - synthetic constructor •() → self::MyTest - : super core::Object::•() - ; +abstract class MyTest extends core::Object /*isMixinDeclaration*/ { @#C1 method foo() → void {} } diff --git a/pkg/front_end/testcases/general/bug33099.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bug33099.dart.strong.transformed.expect index ac7f01f5ca4..ca09e31d735 100644 --- a/pkg/front_end/testcases/general/bug33099.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/bug33099.dart.strong.transformed.expect @@ -10,10 +10,7 @@ class _FailingTest extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; } -class MyTest extends core::Object { - synthetic constructor •() → self::MyTest - : super core::Object::•() - ; +abstract class MyTest extends core::Object /*isMixinDeclaration*/ { @#C1 method foo() → void {} } diff --git a/pkg/front_end/testcases/general/bug33099.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug33099.dart.textual_outline.expect index dfdc73b9e34..2a7bf71f9c8 100644 --- a/pkg/front_end/testcases/general/bug33099.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/bug33099.dart.textual_outline.expect @@ -6,7 +6,7 @@ class _FailingTest { const _FailingTest(); } -class MyTest { +mixin MyTest { @failingTest void foo() {} } diff --git a/pkg/front_end/testcases/general/bug33099.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug33099.dart.textual_outline_modelled.expect index 4aa3b4de576..6f9e59ef2e3 100644 --- a/pkg/front_end/testcases/general/bug33099.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/bug33099.dart.textual_outline_modelled.expect @@ -7,11 +7,6 @@ bool _hasAnnotationInstance(DeclarationMirror declaration, instance) => }); bool _hasFailingTestAnnotation(MethodMirror method) {} -class MyTest { - @failingTest - void foo() {} -} - class MyTest2 extends Object with MyTest {} class _FailingTest { @@ -20,3 +15,7 @@ class _FailingTest { const _FailingTest failingTest = const _FailingTest(); main() {} +mixin MyTest { + @failingTest + void foo() {} +} diff --git a/pkg/front_end/testcases/general/bug33099.dart.weak.expect b/pkg/front_end/testcases/general/bug33099.dart.weak.expect index c3ea8e66397..152ebe83a7e 100644 --- a/pkg/front_end/testcases/general/bug33099.dart.weak.expect +++ b/pkg/front_end/testcases/general/bug33099.dart.weak.expect @@ -10,10 +10,7 @@ class _FailingTest extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; } -class MyTest extends core::Object { - synthetic constructor •() → self::MyTest - : super core::Object::•() - ; +abstract class MyTest extends core::Object /*isMixinDeclaration*/ { @#C1 method foo() → void {} } diff --git a/pkg/front_end/testcases/general/bug33099.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug33099.dart.weak.modular.expect index c3ea8e66397..152ebe83a7e 100644 --- a/pkg/front_end/testcases/general/bug33099.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/bug33099.dart.weak.modular.expect @@ -10,10 +10,7 @@ class _FailingTest extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; } -class MyTest extends core::Object { - synthetic constructor •() → self::MyTest - : super core::Object::•() - ; +abstract class MyTest extends core::Object /*isMixinDeclaration*/ { @#C1 method foo() → void {} } diff --git a/pkg/front_end/testcases/general/bug33099.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug33099.dart.weak.outline.expect index af6b3f69627..cf6629a2f6b 100644 --- a/pkg/front_end/testcases/general/bug33099.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/bug33099.dart.weak.outline.expect @@ -10,9 +10,7 @@ class _FailingTest extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; } -class MyTest extends core::Object { - synthetic constructor •() → self::MyTest - ; +abstract class MyTest extends core::Object /*isMixinDeclaration*/ { @self::failingTest method foo() → void ; diff --git a/pkg/front_end/testcases/general/bug33099.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug33099.dart.weak.transformed.expect index b6141deade9..0c9a84a9723 100644 --- a/pkg/front_end/testcases/general/bug33099.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/bug33099.dart.weak.transformed.expect @@ -10,10 +10,7 @@ class _FailingTest extends core::Object /*hasConstConstructor*/ { : super core::Object::•() ; } -class MyTest extends core::Object { - synthetic constructor •() → self::MyTest - : super core::Object::•() - ; +abstract class MyTest extends core::Object /*isMixinDeclaration*/ { @#C1 method foo() → void {} } diff --git a/pkg/front_end/testcases/general/bug34511.dart b/pkg/front_end/testcases/general/bug34511.dart index d8ad84887e6..97f1da403f5 100644 --- a/pkg/front_end/testcases/general/bug34511.dart +++ b/pkg/front_end/testcases/general/bug34511.dart @@ -4,7 +4,7 @@ // See http://dartbug.com/34511 for details. -class A {} +mixin A {} class B extends Object with A {} diff --git a/pkg/front_end/testcases/general/bug34511.dart.strong.expect b/pkg/front_end/testcases/general/bug34511.dart.strong.expect index 9df9f299bf2..44fcdee3d8b 100644 --- a/pkg/front_end/testcases/general/bug34511.dart.strong.expect +++ b/pkg/front_end/testcases/general/bug34511.dart.strong.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class A extends core::Object /*isMixinDeclaration*/ { } abstract class _B&Object&A = core::Object with self::A<() → self::_B&Object&A::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_B&Object&A diff --git a/pkg/front_end/testcases/general/bug34511.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bug34511.dart.strong.transformed.expect index 69cfc2aa1ee..2f5b7276dde 100644 --- a/pkg/front_end/testcases/general/bug34511.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/bug34511.dart.strong.transformed.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class A extends core::Object /*isMixinDeclaration*/ { } abstract class _B&Object&A extends core::Object implements self::A<() → self::_B&Object&A::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_B&Object&A diff --git a/pkg/front_end/testcases/general/bug34511.dart.textual_outline.expect b/pkg/front_end/testcases/general/bug34511.dart.textual_outline.expect index d85c73da0ea..dfd5b4145dd 100644 --- a/pkg/front_end/testcases/general/bug34511.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/bug34511.dart.textual_outline.expect @@ -1,4 +1,4 @@ -class A {} +mixin A {} class B extends Object with A {} diff --git a/pkg/front_end/testcases/general/bug34511.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bug34511.dart.textual_outline_modelled.expect index d85c73da0ea..caafebc0b79 100644 --- a/pkg/front_end/testcases/general/bug34511.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/bug34511.dart.textual_outline_modelled.expect @@ -1,5 +1,4 @@ -class A {} - class B extends Object with A {} main() {} +mixin A {} diff --git a/pkg/front_end/testcases/general/bug34511.dart.weak.expect b/pkg/front_end/testcases/general/bug34511.dart.weak.expect index 9df9f299bf2..44fcdee3d8b 100644 --- a/pkg/front_end/testcases/general/bug34511.dart.weak.expect +++ b/pkg/front_end/testcases/general/bug34511.dart.weak.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class A extends core::Object /*isMixinDeclaration*/ { } abstract class _B&Object&A = core::Object with self::A<() → self::_B&Object&A::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_B&Object&A diff --git a/pkg/front_end/testcases/general/bug34511.dart.weak.modular.expect b/pkg/front_end/testcases/general/bug34511.dart.weak.modular.expect index 9df9f299bf2..44fcdee3d8b 100644 --- a/pkg/front_end/testcases/general/bug34511.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/bug34511.dart.weak.modular.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class A extends core::Object /*isMixinDeclaration*/ { } abstract class _B&Object&A = core::Object with self::A<() → self::_B&Object&A::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_B&Object&A diff --git a/pkg/front_end/testcases/general/bug34511.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug34511.dart.weak.outline.expect index 82c22895c80..2d0608c23cb 100644 --- a/pkg/front_end/testcases/general/bug34511.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/bug34511.dart.weak.outline.expect @@ -2,9 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - ; +abstract class A extends core::Object /*isMixinDeclaration*/ { } abstract class _B&Object&A = core::Object with self::A<() → self::_B&Object&A::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_B&Object&A diff --git a/pkg/front_end/testcases/general/bug34511.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug34511.dart.weak.transformed.expect index 69cfc2aa1ee..2f5b7276dde 100644 --- a/pkg/front_end/testcases/general/bug34511.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/bug34511.dart.weak.transformed.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class A extends core::Object /*isMixinDeclaration*/ { } abstract class _B&Object&A extends core::Object implements self::A<() → self::_B&Object&A::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_B&Object&A diff --git a/pkg/front_end/testcases/general/clone_function_type.dart b/pkg/front_end/testcases/general/clone_function_type.dart index e96b11143d1..bb6942167e5 100644 --- a/pkg/front_end/testcases/general/clone_function_type.dart +++ b/pkg/front_end/testcases/general/clone_function_type.dart @@ -8,7 +8,7 @@ // The case 'm1' covers function types with some missing parts. -class Am1 {} +mixin Am1 {} class Bm1 extends Object with Am1 {} @@ -61,7 +61,7 @@ class Wm1 = Object // The case 'm2' covers function types with some missing parts that should be // checked against a bound. -class Am2 {} +mixin Am2 {} // Compile-time error: type argument is not a subtype. class Bm2 extends Object with Am2 {} @@ -143,7 +143,7 @@ typedef TdJ = Function(Function Function); typedef TdK = Function(Function Function() Function) Function(); -class Am3 {} +mixin Am3 {} class Bm3 extends Object with Am3 {} diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.strong.expect b/pkg/front_end/testcases/general/clone_function_type.dart.strong.expect index 699f60e4d52..c8bcca63b69 100644 --- a/pkg/front_end/testcases/general/clone_function_type.dart.strong.expect +++ b/pkg/front_end/testcases/general/clone_function_type.dart.strong.expect @@ -37,7 +37,7 @@ library /*isNonNullableByDefault*/; // class Bm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:70:34: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -45,7 +45,7 @@ library /*isNonNullableByDefault*/; // class Cm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:86:34: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -54,7 +54,7 @@ library /*isNonNullableByDefault*/; // class Jm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:89:34: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -63,7 +63,7 @@ library /*isNonNullableByDefault*/; // class Km2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:95:28: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -71,7 +71,7 @@ library /*isNonNullableByDefault*/; // class Mm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:98:28: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -79,7 +79,7 @@ library /*isNonNullableByDefault*/; // class Nm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:114:28: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -88,7 +88,7 @@ library /*isNonNullableByDefault*/; // class Um2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:117:28: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -97,7 +97,7 @@ library /*isNonNullableByDefault*/; // class Vm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // import self as self; @@ -113,10 +113,7 @@ typedef TdH = ([core::int]) → dynamic; typedef TdI = ([core::int]) → dynamic; typedef TdJ = (core::Function) → dynamic; typedef TdK = () → (() → core::Function) → dynamic; -class Am1 extends core::Object { - synthetic constructor •() → self::Am1 - : super core::Object::•() - ; +abstract class Am1 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm1&Object&Am1 = core::Object with self::Am1<(core::int) → dynamic, self::_Bm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm1&Object&Am1 @@ -283,10 +280,7 @@ class Wm1 = core::Object with self::Am1<() : super core::Object::•() ; } -class Am2 extends core::Object { - synthetic constructor •() → self::Am2 - : super core::Object::•() - ; +abstract class Am2 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm2&Object&Am2 = core::Object with self::Am2<(core::int) → dynamic, self::_Bm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm2&Object&Am2 @@ -453,10 +447,7 @@ class Wm2 = core::Object with self::Am2<() : super core::Object::•() ; } -class Am3 extends core::Object { - synthetic constructor •() → self::Am3 - : super core::Object::•() - ; +abstract class Am3 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm3&Object&Am3 = core::Object with self::Am3<(core::int) → dynamic, self::_Bm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm3&Object&Am3 diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.strong.transformed.expect b/pkg/front_end/testcases/general/clone_function_type.dart.strong.transformed.expect index 6e346c2f9ae..bff3786e9c1 100644 --- a/pkg/front_end/testcases/general/clone_function_type.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/clone_function_type.dart.strong.transformed.expect @@ -37,7 +37,7 @@ library /*isNonNullableByDefault*/; // class Bm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:70:34: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -45,7 +45,7 @@ library /*isNonNullableByDefault*/; // class Cm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:86:34: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -54,7 +54,7 @@ library /*isNonNullableByDefault*/; // class Jm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:89:34: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -63,7 +63,7 @@ library /*isNonNullableByDefault*/; // class Km2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:95:28: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -71,7 +71,7 @@ library /*isNonNullableByDefault*/; // class Mm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:98:28: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -79,7 +79,7 @@ library /*isNonNullableByDefault*/; // class Nm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:114:28: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -88,7 +88,7 @@ library /*isNonNullableByDefault*/; // class Um2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:117:28: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -97,7 +97,7 @@ library /*isNonNullableByDefault*/; // class Vm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // import self as self; @@ -113,10 +113,7 @@ typedef TdH = ([core::int]) → dynamic; typedef TdI = ([core::int]) → dynamic; typedef TdJ = (core::Function) → dynamic; typedef TdK = () → (() → core::Function) → dynamic; -class Am1 extends core::Object { - synthetic constructor •() → self::Am1 - : super core::Object::•() - ; +abstract class Am1 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm1&Object&Am1 extends core::Object implements self::Am1<(core::int) → dynamic, self::_Bm1&Object&Am1::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm1&Object&Am1 @@ -283,10 +280,7 @@ class Wm1 extends core::Object implements sel : super core::Object::•() ; } -class Am2 extends core::Object { - synthetic constructor •() → self::Am2 - : super core::Object::•() - ; +abstract class Am2 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm2&Object&Am2 extends core::Object implements self::Am2<(core::int) → dynamic, self::_Bm2&Object&Am2::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm2&Object&Am2 @@ -453,10 +447,7 @@ class Wm2 extends core::Object implements sel : super core::Object::•() ; } -class Am3 extends core::Object { - synthetic constructor •() → self::Am3 - : super core::Object::•() - ; +abstract class Am3 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm3&Object&Am3 extends core::Object implements self::Am3<(core::int) → dynamic, self::_Bm3&Object&Am3::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm3&Object&Am3 diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.textual_outline.expect b/pkg/front_end/testcases/general/clone_function_type.dart.textual_outline.expect index dd4222c9d1f..8ab7f18c917 100644 --- a/pkg/front_end/testcases/general/clone_function_type.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/clone_function_type.dart.textual_outline.expect @@ -1,4 +1,4 @@ -class Am1 {} +mixin Am1 {} class Bm1 extends Object with Am1 {} class Cm1 extends Object with Am1 {} class Dm1 extends Object with Am1 {} @@ -21,7 +21,7 @@ class Tm1 = Object with Am1; class Um1 = Object with Am1; class Vm1 = Object with Am1; class Wm1 = Object with Am1; -class Am2 {} +mixin Am2 {} class Bm2 extends Object with Am2 {} class Cm2 extends Object with Am2 {} class Dm2 extends Object with Am2 {} @@ -54,7 +54,7 @@ typedef TdH = Function([int]); typedef TdI = Function([int x]); typedef TdJ = Function(Function Function); typedef TdK = Function(Function Function() Function) Function(); -class Am3 {} +mixin Am3 {} class Bm3 extends Object with Am3 {} class Cm3 extends Object with Am3 {} class Dm3 extends Object with Am3 {} diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.weak.expect b/pkg/front_end/testcases/general/clone_function_type.dart.weak.expect index 699f60e4d52..c8bcca63b69 100644 --- a/pkg/front_end/testcases/general/clone_function_type.dart.weak.expect +++ b/pkg/front_end/testcases/general/clone_function_type.dart.weak.expect @@ -37,7 +37,7 @@ library /*isNonNullableByDefault*/; // class Bm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:70:34: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -45,7 +45,7 @@ library /*isNonNullableByDefault*/; // class Cm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:86:34: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -54,7 +54,7 @@ library /*isNonNullableByDefault*/; // class Jm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:89:34: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -63,7 +63,7 @@ library /*isNonNullableByDefault*/; // class Km2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:95:28: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -71,7 +71,7 @@ library /*isNonNullableByDefault*/; // class Mm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:98:28: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -79,7 +79,7 @@ library /*isNonNullableByDefault*/; // class Nm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:114:28: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -88,7 +88,7 @@ library /*isNonNullableByDefault*/; // class Um2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:117:28: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -97,7 +97,7 @@ library /*isNonNullableByDefault*/; // class Vm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // import self as self; @@ -113,10 +113,7 @@ typedef TdH = ([core::int]) → dynamic; typedef TdI = ([core::int]) → dynamic; typedef TdJ = (core::Function) → dynamic; typedef TdK = () → (() → core::Function) → dynamic; -class Am1 extends core::Object { - synthetic constructor •() → self::Am1 - : super core::Object::•() - ; +abstract class Am1 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm1&Object&Am1 = core::Object with self::Am1<(core::int) → dynamic, self::_Bm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm1&Object&Am1 @@ -283,10 +280,7 @@ class Wm1 = core::Object with self::Am1<() : super core::Object::•() ; } -class Am2 extends core::Object { - synthetic constructor •() → self::Am2 - : super core::Object::•() - ; +abstract class Am2 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm2&Object&Am2 = core::Object with self::Am2<(core::int) → dynamic, self::_Bm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm2&Object&Am2 @@ -453,10 +447,7 @@ class Wm2 = core::Object with self::Am2<() : super core::Object::•() ; } -class Am3 extends core::Object { - synthetic constructor •() → self::Am3 - : super core::Object::•() - ; +abstract class Am3 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm3&Object&Am3 = core::Object with self::Am3<(core::int) → dynamic, self::_Bm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm3&Object&Am3 diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.weak.modular.expect b/pkg/front_end/testcases/general/clone_function_type.dart.weak.modular.expect index 699f60e4d52..c8bcca63b69 100644 --- a/pkg/front_end/testcases/general/clone_function_type.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/clone_function_type.dart.weak.modular.expect @@ -37,7 +37,7 @@ library /*isNonNullableByDefault*/; // class Bm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:70:34: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -45,7 +45,7 @@ library /*isNonNullableByDefault*/; // class Cm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:86:34: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -54,7 +54,7 @@ library /*isNonNullableByDefault*/; // class Jm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:89:34: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -63,7 +63,7 @@ library /*isNonNullableByDefault*/; // class Km2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:95:28: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -71,7 +71,7 @@ library /*isNonNullableByDefault*/; // class Mm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:98:28: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -79,7 +79,7 @@ library /*isNonNullableByDefault*/; // class Nm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:114:28: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -88,7 +88,7 @@ library /*isNonNullableByDefault*/; // class Um2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:117:28: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -97,7 +97,7 @@ library /*isNonNullableByDefault*/; // class Vm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // import self as self; @@ -113,10 +113,7 @@ typedef TdH = ([core::int]) → dynamic; typedef TdI = ([core::int]) → dynamic; typedef TdJ = (core::Function) → dynamic; typedef TdK = () → (() → core::Function) → dynamic; -class Am1 extends core::Object { - synthetic constructor •() → self::Am1 - : super core::Object::•() - ; +abstract class Am1 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm1&Object&Am1 = core::Object with self::Am1<(core::int) → dynamic, self::_Bm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm1&Object&Am1 @@ -283,10 +280,7 @@ class Wm1 = core::Object with self::Am1<() : super core::Object::•() ; } -class Am2 extends core::Object { - synthetic constructor •() → self::Am2 - : super core::Object::•() - ; +abstract class Am2 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm2&Object&Am2 = core::Object with self::Am2<(core::int) → dynamic, self::_Bm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm2&Object&Am2 @@ -453,10 +447,7 @@ class Wm2 = core::Object with self::Am2<() : super core::Object::•() ; } -class Am3 extends core::Object { - synthetic constructor •() → self::Am3 - : super core::Object::•() - ; +abstract class Am3 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm3&Object&Am3 = core::Object with self::Am3<(core::int) → dynamic, self::_Bm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm3&Object&Am3 diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/clone_function_type.dart.weak.outline.expect index a3766e6a037..9fd81cb6ab6 100644 --- a/pkg/front_end/testcases/general/clone_function_type.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/clone_function_type.dart.weak.outline.expect @@ -37,7 +37,7 @@ library /*isNonNullableByDefault*/; // class Bm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:70:34: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -45,7 +45,7 @@ library /*isNonNullableByDefault*/; // class Cm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:86:34: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -54,7 +54,7 @@ library /*isNonNullableByDefault*/; // class Jm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:89:34: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -63,7 +63,7 @@ library /*isNonNullableByDefault*/; // class Km2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:95:28: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -71,7 +71,7 @@ library /*isNonNullableByDefault*/; // class Mm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:98:28: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -79,7 +79,7 @@ library /*isNonNullableByDefault*/; // class Nm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:114:28: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -88,7 +88,7 @@ library /*isNonNullableByDefault*/; // class Um2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:117:28: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -97,7 +97,7 @@ library /*isNonNullableByDefault*/; // class Vm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // import self as self; @@ -113,9 +113,7 @@ typedef TdH = ([core::int]) → dynamic; typedef TdI = ([core::int]) → dynamic; typedef TdJ = (core::Function) → dynamic; typedef TdK = () → (() → core::Function) → dynamic; -class Am1 extends core::Object { - synthetic constructor •() → self::Am1 - ; +abstract class Am1 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm1&Object&Am1 = core::Object with self::Am1<(core::int) → dynamic, self::_Bm1&Object&Am1::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm1&Object&Am1 @@ -271,9 +269,7 @@ class Wm1 = core::Object with self::Am1<() : super core::Object::•() ; } -class Am2 extends core::Object { - synthetic constructor •() → self::Am2 - ; +abstract class Am2 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm2&Object&Am2 = core::Object with self::Am2<(core::int) → dynamic, self::_Bm2&Object&Am2::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm2&Object&Am2 @@ -429,9 +425,7 @@ class Wm2 = core::Object with self::Am2<() : super core::Object::•() ; } -class Am3 extends core::Object { - synthetic constructor •() → self::Am3 - ; +abstract class Am3 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm3&Object&Am3 = core::Object with self::Am3<(core::int) → dynamic, self::_Bm3&Object&Am3::Z%> /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm3&Object&Am3 diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.weak.transformed.expect b/pkg/front_end/testcases/general/clone_function_type.dart.weak.transformed.expect index 6e346c2f9ae..bff3786e9c1 100644 --- a/pkg/front_end/testcases/general/clone_function_type.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/clone_function_type.dart.weak.transformed.expect @@ -37,7 +37,7 @@ library /*isNonNullableByDefault*/; // class Bm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:70:34: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -45,7 +45,7 @@ library /*isNonNullableByDefault*/; // class Cm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:86:34: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -54,7 +54,7 @@ library /*isNonNullableByDefault*/; // class Jm2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:89:34: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -63,7 +63,7 @@ library /*isNonNullableByDefault*/; // class Km2 extends Object with Am2 {} // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:95:28: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -71,7 +71,7 @@ library /*isNonNullableByDefault*/; // class Mm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:98:28: Error: Type argument 'dynamic Function(int)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -79,7 +79,7 @@ library /*isNonNullableByDefault*/; // class Nm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:114:28: Error: Type argument 'Function' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -88,7 +88,7 @@ library /*isNonNullableByDefault*/; // class Um2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // // pkg/front_end/testcases/general/clone_function_type.dart:117:28: Error: Type argument 'dynamic Function(Function)' doesn't conform to the bound 'dynamic Function()' of the type variable 'X' on 'Am2'. @@ -97,7 +97,7 @@ library /*isNonNullableByDefault*/; // class Vm2 = Object with Am2; // ^ // pkg/front_end/testcases/general/clone_function_type.dart:64:11: Context: This is the type variable whose bound isn't conformed to. -// class Am2 {} +// mixin Am2 {} // ^ // import self as self; @@ -113,10 +113,7 @@ typedef TdH = ([core::int]) → dynamic; typedef TdI = ([core::int]) → dynamic; typedef TdJ = (core::Function) → dynamic; typedef TdK = () → (() → core::Function) → dynamic; -class Am1 extends core::Object { - synthetic constructor •() → self::Am1 - : super core::Object::•() - ; +abstract class Am1 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm1&Object&Am1 extends core::Object implements self::Am1<(core::int) → dynamic, self::_Bm1&Object&Am1::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm1&Object&Am1 @@ -283,10 +280,7 @@ class Wm1 extends core::Object implements sel : super core::Object::•() ; } -class Am2 extends core::Object { - synthetic constructor •() → self::Am2 - : super core::Object::•() - ; +abstract class Am2 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm2&Object&Am2 extends core::Object implements self::Am2<(core::int) → dynamic, self::_Bm2&Object&Am2::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm2&Object&Am2 @@ -453,10 +447,7 @@ class Wm2 extends core::Object implements sel : super core::Object::•() ; } -class Am3 extends core::Object { - synthetic constructor •() → self::Am3 - : super core::Object::•() - ; +abstract class Am3 extends core::Object /*isMixinDeclaration*/ { } abstract class _Bm3&Object&Am3 extends core::Object implements self::Am3<(core::int) → dynamic, self::_Bm3&Object&Am3::Z%> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_Bm3&Object&Am3 diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart index d9a1e908a68..e899e41436c 100644 --- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart +++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart @@ -9,7 +9,7 @@ class A { void foo(covariant num x) {} } -class B { +mixin B { void foo(num x) {} } diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.strong.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.strong.expect index fb300f78ca1..b3da1ff385b 100644 --- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.strong.expect +++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.strong.expect @@ -8,10 +8,7 @@ class A extends core::Object { ; method foo(covariant-by-declaration core::num x) → void {} } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { method foo(core::num x) → void {} } class C extends core::Object { diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.strong.transformed.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.strong.transformed.expect index d5fabc82c54..bbd3a4df0cd 100644 --- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.strong.transformed.expect @@ -8,10 +8,7 @@ class A extends core::Object { ; method foo(covariant-by-declaration core::num x) → void {} } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { method foo(core::num x) → void {} } class C extends core::Object { diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline.expect index 914deb732bc..c5f0a5c2123 100644 --- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline.expect @@ -2,7 +2,7 @@ class A { void foo(covariant num x) {} } -class B { +mixin B { void foo(num x) {} } diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline_modelled.expect index 914deb732bc..57177032261 100644 --- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.textual_outline_modelled.expect @@ -2,10 +2,6 @@ class A { void foo(covariant num x) {} } -class B { - void foo(num x) {} -} - class C { void foo(num x) {} } @@ -15,3 +11,6 @@ class D extends A with B implements C { } main() {} +mixin B { + void foo(num x) {} +} diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.expect index fb300f78ca1..b3da1ff385b 100644 --- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.expect +++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.expect @@ -8,10 +8,7 @@ class A extends core::Object { ; method foo(covariant-by-declaration core::num x) → void {} } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { method foo(core::num x) → void {} } class C extends core::Object { diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.modular.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.modular.expect index fb300f78ca1..b3da1ff385b 100644 --- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.modular.expect @@ -8,10 +8,7 @@ class A extends core::Object { ; method foo(covariant-by-declaration core::num x) → void {} } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { method foo(core::num x) → void {} } class C extends core::Object { diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.outline.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.outline.expect index 5030d86e628..f016c902827 100644 --- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.outline.expect @@ -8,9 +8,7 @@ class A extends core::Object { method foo(covariant-by-declaration core::num x) → void ; } -class B extends core::Object { - synthetic constructor •() → self::B - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { method foo(core::num x) → void ; } diff --git a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.transformed.expect b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.transformed.expect index d5fabc82c54..bbd3a4df0cd 100644 --- a/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/covariant_parameter_in_superclass_of_mixin_application.dart.weak.transformed.expect @@ -8,10 +8,7 @@ class A extends core::Object { ; method foo(covariant-by-declaration core::num x) → void {} } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { method foo(core::num x) → void {} } class C extends core::Object { diff --git a/pkg/front_end/testcases/general/hierarchy.dart b/pkg/front_end/testcases/general/hierarchy.dart index 8c4f658bb3f..f56b8a7e954 100644 --- a/pkg/front_end/testcases/general/hierarchy.dart +++ b/pkg/front_end/testcases/general/hierarchy.dart @@ -7,7 +7,7 @@ abstract class A1 { void extendedInterfaceMember(); } -abstract class A2 { +mixin A2 { void mixedInClassMember() {} void mixedInInterfaceMember(); } @@ -42,7 +42,7 @@ class B5 extends B4 {} class B6 extends B3 implements B1, B2 {} -abstract class C1 { +mixin C1 { void mixedInAndImplementedClassMember() {} void mixedInAndImplementedInterfaceMember(); } diff --git a/pkg/front_end/testcases/general/hierarchy.dart.strong.expect b/pkg/front_end/testcases/general/hierarchy.dart.strong.expect index 6b21ed87e1d..3ac82903c86 100644 --- a/pkg/front_end/testcases/general/hierarchy.dart.strong.expect +++ b/pkg/front_end/testcases/general/hierarchy.dart.strong.expect @@ -103,10 +103,7 @@ abstract class A1 extends core::Object { method extendedClassMember() → void {} abstract method extendedInterfaceMember() → void; } -abstract class A2 extends core::Object { - synthetic constructor •() → self::A2 - : super core::Object::•() - ; +abstract class A2 extends core::Object /*isMixinDeclaration*/ { method mixedInClassMember() → void {} abstract method mixedInInterfaceMember() → void; } @@ -177,10 +174,7 @@ class B6 extends self::B3 implements self::B1, self::B2 { : super self::B3::•() ; } -abstract class C1 extends core::Object { - synthetic constructor •() → self::C1 - : super core::Object::•() - ; +abstract class C1 extends core::Object /*isMixinDeclaration*/ { method mixedInAndImplementedClassMember() → void {} abstract method mixedInAndImplementedInterfaceMember() → void; } diff --git a/pkg/front_end/testcases/general/hierarchy.dart.strong.transformed.expect b/pkg/front_end/testcases/general/hierarchy.dart.strong.transformed.expect index 42bebee8118..143c5b30cd9 100644 --- a/pkg/front_end/testcases/general/hierarchy.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/hierarchy.dart.strong.transformed.expect @@ -103,10 +103,7 @@ abstract class A1 extends core::Object { method extendedClassMember() → void {} abstract method extendedInterfaceMember() → void; } -abstract class A2 extends core::Object { - synthetic constructor •() → self::A2 - : super core::Object::•() - ; +abstract class A2 extends core::Object /*isMixinDeclaration*/ { method mixedInClassMember() → void {} abstract method mixedInInterfaceMember() → void; } @@ -175,10 +172,7 @@ class B6 extends self::B3 implements self::B1, self::B2 { : super self::B3::•() ; } -abstract class C1 extends core::Object { - synthetic constructor •() → self::C1 - : super core::Object::•() - ; +abstract class C1 extends core::Object /*isMixinDeclaration*/ { method mixedInAndImplementedClassMember() → void {} abstract method mixedInAndImplementedInterfaceMember() → void; } diff --git a/pkg/front_end/testcases/general/hierarchy.dart.textual_outline.expect b/pkg/front_end/testcases/general/hierarchy.dart.textual_outline.expect index 15a7cc5f23e..3f4ac323449 100644 --- a/pkg/front_end/testcases/general/hierarchy.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/hierarchy.dart.textual_outline.expect @@ -3,7 +3,7 @@ abstract class A1 { void extendedInterfaceMember(); } -abstract class A2 { +mixin A2 { void mixedInClassMember() {} void mixedInInterfaceMember(); } @@ -38,7 +38,7 @@ class B5 extends B4 {} class B6 extends B3 implements B1, B2 {} -abstract class C1 { +mixin C1 { void mixedInAndImplementedClassMember() {} void mixedInAndImplementedInterfaceMember(); } diff --git a/pkg/front_end/testcases/general/hierarchy.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/hierarchy.dart.textual_outline_modelled.expect index 916bcc274f5..27e733ee73c 100644 --- a/pkg/front_end/testcases/general/hierarchy.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/hierarchy.dart.textual_outline_modelled.expect @@ -3,11 +3,6 @@ abstract class A1 { void extendedInterfaceMember(); } -abstract class A2 { - void mixedInClassMember() {} - void mixedInInterfaceMember(); -} - abstract class A3 extends A1 with A2 { void declaredClassMember() {} void declaredInterfaceMember(); @@ -32,11 +27,6 @@ abstract class B3 { abstract class B4 extends B3 implements B1, B2 {} -abstract class C1 { - void mixedInAndImplementedClassMember() {} - void mixedInAndImplementedInterfaceMember(); -} - abstract class C3 with C1 implements C2 {} class A6 extends A1 implements A1 {} @@ -55,3 +45,11 @@ class C4 extends C3 {} class C5 with C1 implements C2 {} main() {} +mixin A2 { + void mixedInClassMember() {} + void mixedInInterfaceMember(); +} +mixin C1 { + void mixedInAndImplementedClassMember() {} + void mixedInAndImplementedInterfaceMember(); +} diff --git a/pkg/front_end/testcases/general/hierarchy.dart.weak.expect b/pkg/front_end/testcases/general/hierarchy.dart.weak.expect index 6b21ed87e1d..3ac82903c86 100644 --- a/pkg/front_end/testcases/general/hierarchy.dart.weak.expect +++ b/pkg/front_end/testcases/general/hierarchy.dart.weak.expect @@ -103,10 +103,7 @@ abstract class A1 extends core::Object { method extendedClassMember() → void {} abstract method extendedInterfaceMember() → void; } -abstract class A2 extends core::Object { - synthetic constructor •() → self::A2 - : super core::Object::•() - ; +abstract class A2 extends core::Object /*isMixinDeclaration*/ { method mixedInClassMember() → void {} abstract method mixedInInterfaceMember() → void; } @@ -177,10 +174,7 @@ class B6 extends self::B3 implements self::B1, self::B2 { : super self::B3::•() ; } -abstract class C1 extends core::Object { - synthetic constructor •() → self::C1 - : super core::Object::•() - ; +abstract class C1 extends core::Object /*isMixinDeclaration*/ { method mixedInAndImplementedClassMember() → void {} abstract method mixedInAndImplementedInterfaceMember() → void; } diff --git a/pkg/front_end/testcases/general/hierarchy.dart.weak.modular.expect b/pkg/front_end/testcases/general/hierarchy.dart.weak.modular.expect index 6b21ed87e1d..3ac82903c86 100644 --- a/pkg/front_end/testcases/general/hierarchy.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/hierarchy.dart.weak.modular.expect @@ -103,10 +103,7 @@ abstract class A1 extends core::Object { method extendedClassMember() → void {} abstract method extendedInterfaceMember() → void; } -abstract class A2 extends core::Object { - synthetic constructor •() → self::A2 - : super core::Object::•() - ; +abstract class A2 extends core::Object /*isMixinDeclaration*/ { method mixedInClassMember() → void {} abstract method mixedInInterfaceMember() → void; } @@ -177,10 +174,7 @@ class B6 extends self::B3 implements self::B1, self::B2 { : super self::B3::•() ; } -abstract class C1 extends core::Object { - synthetic constructor •() → self::C1 - : super core::Object::•() - ; +abstract class C1 extends core::Object /*isMixinDeclaration*/ { method mixedInAndImplementedClassMember() → void {} abstract method mixedInAndImplementedInterfaceMember() → void; } diff --git a/pkg/front_end/testcases/general/hierarchy.dart.weak.outline.expect b/pkg/front_end/testcases/general/hierarchy.dart.weak.outline.expect index 7b80967fbda..4d2387d9458 100644 --- a/pkg/front_end/testcases/general/hierarchy.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/hierarchy.dart.weak.outline.expect @@ -103,9 +103,7 @@ abstract class A1 extends core::Object { ; abstract method extendedInterfaceMember() → void; } -abstract class A2 extends core::Object { - synthetic constructor •() → self::A2 - ; +abstract class A2 extends core::Object /*isMixinDeclaration*/ { method mixedInClassMember() → void ; abstract method mixedInInterfaceMember() → void; @@ -173,9 +171,7 @@ class B6 extends self::B3 implements self::B1, self::B2 { synthetic constructor •() → self::B6 ; } -abstract class C1 extends core::Object { - synthetic constructor •() → self::C1 - ; +abstract class C1 extends core::Object /*isMixinDeclaration*/ { method mixedInAndImplementedClassMember() → void ; abstract method mixedInAndImplementedInterfaceMember() → void; diff --git a/pkg/front_end/testcases/general/hierarchy.dart.weak.transformed.expect b/pkg/front_end/testcases/general/hierarchy.dart.weak.transformed.expect index 42bebee8118..143c5b30cd9 100644 --- a/pkg/front_end/testcases/general/hierarchy.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/hierarchy.dart.weak.transformed.expect @@ -103,10 +103,7 @@ abstract class A1 extends core::Object { method extendedClassMember() → void {} abstract method extendedInterfaceMember() → void; } -abstract class A2 extends core::Object { - synthetic constructor •() → self::A2 - : super core::Object::•() - ; +abstract class A2 extends core::Object /*isMixinDeclaration*/ { method mixedInClassMember() → void {} abstract method mixedInInterfaceMember() → void; } @@ -175,10 +172,7 @@ class B6 extends self::B3 implements self::B1, self::B2 { : super self::B3::•() ; } -abstract class C1 extends core::Object { - synthetic constructor •() → self::C1 - : super core::Object::•() - ; +abstract class C1 extends core::Object /*isMixinDeclaration*/ { method mixedInAndImplementedClassMember() → void {} abstract method mixedInAndImplementedInterfaceMember() → void; } diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart b/pkg/front_end/testcases/general/implicit_constructor_02.dart index 818c138a682..1299835311d 100644 --- a/pkg/front_end/testcases/general/implicit_constructor_02.dart +++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart @@ -10,7 +10,7 @@ class A { A(bool this.v1, num this.v2); } -class M1 { +mixin M1 { num v2 = -1; } diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.strong.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.strong.expect index d6dff2e5fe1..fa896b302be 100644 --- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.strong.expect +++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.strong.expect @@ -9,11 +9,8 @@ class A extends core::Object { : self::A::v1 = v1, self::A::v2 = v2, super core::Object::•() ; } -class M1 extends core::Object { +abstract class M1 extends core::Object /*isMixinDeclaration*/ { field core::num v2 = 1.{core::int::unary-}(){() → core::int}; - synthetic constructor •() → self::M1 - : super core::Object::•() - ; } class C = self::A with self::M1 { synthetic constructor •(core::bool v1, core::num v2) → self::C diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.strong.transformed.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.strong.transformed.expect index e48e2b7d3b7..d554f8372a6 100644 --- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.strong.transformed.expect @@ -9,11 +9,8 @@ class A extends core::Object { : self::A::v1 = v1, self::A::v2 = v2, super core::Object::•() ; } -class M1 extends core::Object { +abstract class M1 extends core::Object /*isMixinDeclaration*/ { field core::num v2 = 1.{core::int::unary-}(){() → core::int}; - synthetic constructor •() → self::M1 - : super core::Object::•() - ; } class C extends self::A implements self::M1 /*isEliminatedMixin*/ { field core::num v2 = 1.{core::int::unary-}(){() → core::int}; diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline.expect index 9b741d76cc8..fd95331df1e 100644 --- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline.expect @@ -4,10 +4,9 @@ class A { A(bool this.v1, num this.v2); } -class M1 { +mixin M1 { num v2 = -1; } - class C = A with M1; main() {} expect(expected, actual) {} diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline_modelled.expect index fca520a0426..eea0d791e63 100644 --- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.textual_outline_modelled.expect @@ -5,10 +5,8 @@ class A { } class C = A with M1; - -class M1 { - num v2 = -1; -} - expect(expected, actual) {} main() {} +mixin M1 { + num v2 = -1; +} diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.expect index d6dff2e5fe1..fa896b302be 100644 --- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.expect +++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.expect @@ -9,11 +9,8 @@ class A extends core::Object { : self::A::v1 = v1, self::A::v2 = v2, super core::Object::•() ; } -class M1 extends core::Object { +abstract class M1 extends core::Object /*isMixinDeclaration*/ { field core::num v2 = 1.{core::int::unary-}(){() → core::int}; - synthetic constructor •() → self::M1 - : super core::Object::•() - ; } class C = self::A with self::M1 { synthetic constructor •(core::bool v1, core::num v2) → self::C diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.modular.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.modular.expect index d6dff2e5fe1..fa896b302be 100644 --- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.modular.expect @@ -9,11 +9,8 @@ class A extends core::Object { : self::A::v1 = v1, self::A::v2 = v2, super core::Object::•() ; } -class M1 extends core::Object { +abstract class M1 extends core::Object /*isMixinDeclaration*/ { field core::num v2 = 1.{core::int::unary-}(){() → core::int}; - synthetic constructor •() → self::M1 - : super core::Object::•() - ; } class C = self::A with self::M1 { synthetic constructor •(core::bool v1, core::num v2) → self::C diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.outline.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.outline.expect index e5fe3d69442..021fe4f638e 100644 --- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.outline.expect @@ -8,10 +8,8 @@ class A extends core::Object { constructor •(core::bool v1, core::num v2) → self::A ; } -class M1 extends core::Object { +abstract class M1 extends core::Object /*isMixinDeclaration*/ { field core::num v2; - synthetic constructor •() → self::M1 - ; } class C = self::A with self::M1 { synthetic constructor •(core::bool v1, core::num v2) → self::C diff --git a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.transformed.expect b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.transformed.expect index e48e2b7d3b7..d554f8372a6 100644 --- a/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/implicit_constructor_02.dart.weak.transformed.expect @@ -9,11 +9,8 @@ class A extends core::Object { : self::A::v1 = v1, self::A::v2 = v2, super core::Object::•() ; } -class M1 extends core::Object { +abstract class M1 extends core::Object /*isMixinDeclaration*/ { field core::num v2 = 1.{core::int::unary-}(){() → core::int}; - synthetic constructor •() → self::M1 - : super core::Object::•() - ; } class C extends self::A implements self::M1 /*isEliminatedMixin*/ { field core::num v2 = 1.{core::int::unary-}(){() → core::int}; diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart b/pkg/front_end/testcases/general/implicit_covariance.dart index 90b9dfc5dc1..756b3dfa68c 100644 --- a/pkg/front_end/testcases/general/implicit_covariance.dart +++ b/pkg/front_end/testcases/general/implicit_covariance.dart @@ -6,7 +6,7 @@ abstract class A { foo(T x); } -abstract class B implements A {} +mixin B implements A {} class C { foo(num x) {} diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.strong.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.strong.expect index 771e48d53db..2688d82f7ff 100644 --- a/pkg/front_end/testcases/general/implicit_covariance.dart.strong.expect +++ b/pkg/front_end/testcases/general/implicit_covariance.dart.strong.expect @@ -8,10 +8,7 @@ abstract class A extends core::Object { ; abstract method foo(covariant-by-class self::A::T% x) → dynamic; } -abstract class B extends core::Object implements self::A { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object implements self::A /*isMixinDeclaration*/ { } class C extends core::Object { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.strong.transformed.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.strong.transformed.expect index e51ef1e5279..b1be96bd70d 100644 --- a/pkg/front_end/testcases/general/implicit_covariance.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/implicit_covariance.dart.strong.transformed.expect @@ -8,10 +8,7 @@ abstract class A extends core::Object { ; abstract method foo(covariant-by-class self::A::T% x) → dynamic; } -abstract class B extends core::Object implements self::A { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object implements self::A /*isMixinDeclaration*/ { } class C extends core::Object { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline.expect index 764181a2d13..f8d3e2bf09e 100644 --- a/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline.expect @@ -2,7 +2,7 @@ abstract class A { foo(T x); } -abstract class B implements A {} +mixin B implements A {} class C { foo(num x) {} diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline_modelled.expect index 764181a2d13..1003b95b0b4 100644 --- a/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/implicit_covariance.dart.textual_outline_modelled.expect @@ -2,8 +2,6 @@ abstract class A { foo(T x); } -abstract class B implements A {} - class C { foo(num x) {} } @@ -12,3 +10,4 @@ class D extends C with B {} class E = C with B; main() {} +mixin B implements A {} diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.expect index 771e48d53db..2688d82f7ff 100644 --- a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.expect +++ b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.expect @@ -8,10 +8,7 @@ abstract class A extends core::Object { ; abstract method foo(covariant-by-class self::A::T% x) → dynamic; } -abstract class B extends core::Object implements self::A { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object implements self::A /*isMixinDeclaration*/ { } class C extends core::Object { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.modular.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.modular.expect index 771e48d53db..2688d82f7ff 100644 --- a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.modular.expect @@ -8,10 +8,7 @@ abstract class A extends core::Object { ; abstract method foo(covariant-by-class self::A::T% x) → dynamic; } -abstract class B extends core::Object implements self::A { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object implements self::A /*isMixinDeclaration*/ { } class C extends core::Object { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.outline.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.outline.expect index 5a74619c636..7b2b856d216 100644 --- a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.outline.expect @@ -7,9 +7,7 @@ abstract class A extends core::Object { ; abstract method foo(covariant-by-class self::A::T% x) → dynamic; } -abstract class B extends core::Object implements self::A { - synthetic constructor •() → self::B - ; +abstract class B extends core::Object implements self::A /*isMixinDeclaration*/ { } class C extends core::Object { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.transformed.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.transformed.expect index e51ef1e5279..b1be96bd70d 100644 --- a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.transformed.expect @@ -8,10 +8,7 @@ abstract class A extends core::Object { ; abstract method foo(covariant-by-class self::A::T% x) → dynamic; } -abstract class B extends core::Object implements self::A { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object implements self::A /*isMixinDeclaration*/ { } class C extends core::Object { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart index d10fb483e20..33a44bb0d74 100644 --- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart +++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart @@ -4,7 +4,7 @@ abstract class Base {} -abstract class MixinA { +mixin MixinA { T method(Object t); } @@ -18,11 +18,11 @@ abstract class Map { V operator [](Object key); } -abstract class MapMixin implements Map { +mixin MapMixin implements Map { V operator [](Object key); } -abstract class UnmodifiableMapMixin implements Map {} +mixin UnmodifiableMapMixin implements Map {} class YamlMap extends YamlNode with MapMixin, UnmodifiableMapMixin { operator [](key) {} diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.strong.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.strong.expect index 931f844d64b..e97a68ea671 100644 --- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.strong.expect +++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.strong.expect @@ -7,10 +7,7 @@ abstract class Base extends core::Object { : super core::Object::•() ; } -abstract class MixinA extends core::Object { - synthetic constructor •() → self::MixinA - : super core::Object::•() - ; +abstract class MixinA extends core::Object /*isMixinDeclaration*/ { abstract method method(core::Object t) → self::MixinA::T%; } abstract class _Class&Base&MixinA = self::Base with self::MixinA /*isAnonymousMixin*/ { @@ -36,16 +33,10 @@ abstract class Map extends core::Object implements self::Map { - synthetic constructor •() → self::MapMixin - : super core::Object::•() - ; +abstract class MapMixin extends core::Object implements self::Map /*isMixinDeclaration*/ { abstract operator [](core::Object key) → self::MapMixin::V%; } -abstract class UnmodifiableMapMixin extends core::Object implements self::Map { - synthetic constructor •() → self::UnmodifiableMapMixin - : super core::Object::•() - ; +abstract class UnmodifiableMapMixin extends core::Object implements self::Map /*isMixinDeclaration*/ { } abstract class _YamlMap&YamlNode&MapMixin = self::YamlNode with self::MapMixin /*isAnonymousMixin*/ { synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.strong.transformed.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.strong.transformed.expect index 608c41a6d64..7e4b859fb1c 100644 --- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.strong.transformed.expect @@ -7,10 +7,7 @@ abstract class Base extends core::Object { : super core::Object::•() ; } -abstract class MixinA extends core::Object { - synthetic constructor •() → self::MixinA - : super core::Object::•() - ; +abstract class MixinA extends core::Object /*isMixinDeclaration*/ { abstract method method(core::Object t) → self::MixinA::T%; } abstract class _Class&Base&MixinA extends self::Base implements self::MixinA /*isAnonymousMixin,isEliminatedMixin*/ { @@ -36,16 +33,10 @@ abstract class Map extends core::Object implements self::Map { - synthetic constructor •() → self::MapMixin - : super core::Object::•() - ; +abstract class MapMixin extends core::Object implements self::Map /*isMixinDeclaration*/ { abstract operator [](core::Object key) → self::MapMixin::V%; } -abstract class UnmodifiableMapMixin extends core::Object implements self::Map { - synthetic constructor •() → self::UnmodifiableMapMixin - : super core::Object::•() - ; +abstract class UnmodifiableMapMixin extends core::Object implements self::Map /*isMixinDeclaration*/ { } abstract class _YamlMap&YamlNode&MapMixin extends self::YamlNode implements self::MapMixin /*isAnonymousMixin,isEliminatedMixin*/ { synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline.expect index b5af5e799bb..6e57049c879 100644 --- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline.expect @@ -1,6 +1,6 @@ abstract class Base {} -abstract class MixinA { +mixin MixinA { T method(Object t); } @@ -14,11 +14,10 @@ abstract class Map { V operator [](Object key); } -abstract class MapMixin implements Map { +mixin MapMixin implements Map { V operator [](Object key); } - -abstract class UnmodifiableMapMixin implements Map {} +mixin UnmodifiableMapMixin implements Map {} class YamlMap extends YamlNode with MapMixin, UnmodifiableMapMixin { operator [](key) {} diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline_modelled.expect index e13a164610d..cc7ba8c998f 100644 --- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.textual_outline_modelled.expect @@ -8,16 +8,6 @@ abstract class Map { V operator [](Object key); } -abstract class MapMixin implements Map { - V operator [](Object key); -} - -abstract class MixinA { - T method(Object t); -} - -abstract class UnmodifiableMapMixin implements Map {} - abstract class YamlNode {} class YamlMap extends YamlNode with MapMixin, UnmodifiableMapMixin { @@ -25,3 +15,10 @@ class YamlMap extends YamlNode with MapMixin, UnmodifiableMapMixin { } main() {} +mixin MapMixin implements Map { + V operator [](Object key); +} +mixin MixinA { + T method(Object t); +} +mixin UnmodifiableMapMixin implements Map {} diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.expect index 931f844d64b..e97a68ea671 100644 --- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.expect +++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.expect @@ -7,10 +7,7 @@ abstract class Base extends core::Object { : super core::Object::•() ; } -abstract class MixinA extends core::Object { - synthetic constructor •() → self::MixinA - : super core::Object::•() - ; +abstract class MixinA extends core::Object /*isMixinDeclaration*/ { abstract method method(core::Object t) → self::MixinA::T%; } abstract class _Class&Base&MixinA = self::Base with self::MixinA /*isAnonymousMixin*/ { @@ -36,16 +33,10 @@ abstract class Map extends core::Object implements self::Map { - synthetic constructor •() → self::MapMixin - : super core::Object::•() - ; +abstract class MapMixin extends core::Object implements self::Map /*isMixinDeclaration*/ { abstract operator [](core::Object key) → self::MapMixin::V%; } -abstract class UnmodifiableMapMixin extends core::Object implements self::Map { - synthetic constructor •() → self::UnmodifiableMapMixin - : super core::Object::•() - ; +abstract class UnmodifiableMapMixin extends core::Object implements self::Map /*isMixinDeclaration*/ { } abstract class _YamlMap&YamlNode&MapMixin = self::YamlNode with self::MapMixin /*isAnonymousMixin*/ { synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.modular.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.modular.expect index 931f844d64b..e97a68ea671 100644 --- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.modular.expect @@ -7,10 +7,7 @@ abstract class Base extends core::Object { : super core::Object::•() ; } -abstract class MixinA extends core::Object { - synthetic constructor •() → self::MixinA - : super core::Object::•() - ; +abstract class MixinA extends core::Object /*isMixinDeclaration*/ { abstract method method(core::Object t) → self::MixinA::T%; } abstract class _Class&Base&MixinA = self::Base with self::MixinA /*isAnonymousMixin*/ { @@ -36,16 +33,10 @@ abstract class Map extends core::Object implements self::Map { - synthetic constructor •() → self::MapMixin - : super core::Object::•() - ; +abstract class MapMixin extends core::Object implements self::Map /*isMixinDeclaration*/ { abstract operator [](core::Object key) → self::MapMixin::V%; } -abstract class UnmodifiableMapMixin extends core::Object implements self::Map { - synthetic constructor •() → self::UnmodifiableMapMixin - : super core::Object::•() - ; +abstract class UnmodifiableMapMixin extends core::Object implements self::Map /*isMixinDeclaration*/ { } abstract class _YamlMap&YamlNode&MapMixin = self::YamlNode with self::MapMixin /*isAnonymousMixin*/ { synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.outline.expect index 141c5ec50e7..8c9e0d7b426 100644 --- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.outline.expect @@ -6,9 +6,7 @@ abstract class Base extends core::Object { synthetic constructor •() → self::Base ; } -abstract class MixinA extends core::Object { - synthetic constructor •() → self::MixinA - ; +abstract class MixinA extends core::Object /*isMixinDeclaration*/ { abstract method method(core::Object t) → self::MixinA::T%; } abstract class _Class&Base&MixinA = self::Base with self::MixinA /*isAnonymousMixin*/ { @@ -32,14 +30,10 @@ abstract class Map extends core::Object implements self::Map { - synthetic constructor •() → self::MapMixin - ; +abstract class MapMixin extends core::Object implements self::Map /*isMixinDeclaration*/ { abstract operator [](core::Object key) → self::MapMixin::V%; } -abstract class UnmodifiableMapMixin extends core::Object implements self::Map { - synthetic constructor •() → self::UnmodifiableMapMixin - ; +abstract class UnmodifiableMapMixin extends core::Object implements self::Map /*isMixinDeclaration*/ { } abstract class _YamlMap&YamlNode&MapMixin = self::YamlNode with self::MapMixin /*isAnonymousMixin*/ { synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin diff --git a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.transformed.expect b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.transformed.expect index 608c41a6d64..7e4b859fb1c 100644 --- a/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/infer_fixed_generic_return_type.dart.weak.transformed.expect @@ -7,10 +7,7 @@ abstract class Base extends core::Object { : super core::Object::•() ; } -abstract class MixinA extends core::Object { - synthetic constructor •() → self::MixinA - : super core::Object::•() - ; +abstract class MixinA extends core::Object /*isMixinDeclaration*/ { abstract method method(core::Object t) → self::MixinA::T%; } abstract class _Class&Base&MixinA extends self::Base implements self::MixinA /*isAnonymousMixin,isEliminatedMixin*/ { @@ -36,16 +33,10 @@ abstract class Map extends core::Object implements self::Map { - synthetic constructor •() → self::MapMixin - : super core::Object::•() - ; +abstract class MapMixin extends core::Object implements self::Map /*isMixinDeclaration*/ { abstract operator [](core::Object key) → self::MapMixin::V%; } -abstract class UnmodifiableMapMixin extends core::Object implements self::Map { - synthetic constructor •() → self::UnmodifiableMapMixin - : super core::Object::•() - ; +abstract class UnmodifiableMapMixin extends core::Object implements self::Map /*isMixinDeclaration*/ { } abstract class _YamlMap&YamlNode&MapMixin extends self::YamlNode implements self::MapMixin /*isAnonymousMixin,isEliminatedMixin*/ { synthetic constructor •() → self::_YamlMap&YamlNode&MapMixin diff --git a/pkg/front_end/testcases/general/issue38944.dart b/pkg/front_end/testcases/general/issue38944.dart index a0b7f42d365..e50f54bbde0 100644 --- a/pkg/front_end/testcases/general/issue38944.dart +++ b/pkg/front_end/testcases/general/issue38944.dart @@ -2,5 +2,6 @@ // 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 A {} -class B extends Object with A()> {} \ No newline at end of file +mixin A {} + +class B extends Object with A()> {} diff --git a/pkg/front_end/testcases/general/issue38944.dart.strong.expect b/pkg/front_end/testcases/general/issue38944.dart.strong.expect index 4f9c07cf798..68dbb0db00a 100644 --- a/pkg/front_end/testcases/general/issue38944.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue38944.dart.strong.expect @@ -2,17 +2,14 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/issue38944.dart:6:7: Error: Can't use implicitly 'out' variable 'X' in an 'inout' position in supertype 'A'. +// pkg/front_end/testcases/general/issue38944.dart:7:7: Error: Can't use implicitly 'out' variable 'X' in an 'inout' position in supertype 'A'. // class B extends Object with A()> {} // ^ // import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class A extends core::Object /*isMixinDeclaration*/ { } abstract class _B&Object&A extends core::Object /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_B&Object&A diff --git a/pkg/front_end/testcases/general/issue38944.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue38944.dart.strong.transformed.expect index 4f9c07cf798..68dbb0db00a 100644 --- a/pkg/front_end/testcases/general/issue38944.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/issue38944.dart.strong.transformed.expect @@ -2,17 +2,14 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/issue38944.dart:6:7: Error: Can't use implicitly 'out' variable 'X' in an 'inout' position in supertype 'A'. +// pkg/front_end/testcases/general/issue38944.dart:7:7: Error: Can't use implicitly 'out' variable 'X' in an 'inout' position in supertype 'A'. // class B extends Object with A()> {} // ^ // import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class A extends core::Object /*isMixinDeclaration*/ { } abstract class _B&Object&A extends core::Object /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_B&Object&A diff --git a/pkg/front_end/testcases/general/issue38944.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue38944.dart.textual_outline.expect index 279bc703664..466bfa2e5b3 100644 --- a/pkg/front_end/testcases/general/issue38944.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/issue38944.dart.textual_outline.expect @@ -1,3 +1,3 @@ -class A {} +mixin A {} class B extends Object with A()> {} diff --git a/pkg/front_end/testcases/general/issue38944.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue38944.dart.textual_outline_modelled.expect index 279bc703664..8ea3a2a6138 100644 --- a/pkg/front_end/testcases/general/issue38944.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/issue38944.dart.textual_outline_modelled.expect @@ -1,3 +1,3 @@ -class A {} - class B extends Object with A()> {} + +mixin A {} diff --git a/pkg/front_end/testcases/general/issue38944.dart.weak.expect b/pkg/front_end/testcases/general/issue38944.dart.weak.expect index 4f9c07cf798..68dbb0db00a 100644 --- a/pkg/front_end/testcases/general/issue38944.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue38944.dart.weak.expect @@ -2,17 +2,14 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/issue38944.dart:6:7: Error: Can't use implicitly 'out' variable 'X' in an 'inout' position in supertype 'A'. +// pkg/front_end/testcases/general/issue38944.dart:7:7: Error: Can't use implicitly 'out' variable 'X' in an 'inout' position in supertype 'A'. // class B extends Object with A()> {} // ^ // import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class A extends core::Object /*isMixinDeclaration*/ { } abstract class _B&Object&A extends core::Object /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_B&Object&A diff --git a/pkg/front_end/testcases/general/issue38944.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue38944.dart.weak.modular.expect index 4f9c07cf798..68dbb0db00a 100644 --- a/pkg/front_end/testcases/general/issue38944.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/issue38944.dart.weak.modular.expect @@ -2,17 +2,14 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/issue38944.dart:6:7: Error: Can't use implicitly 'out' variable 'X' in an 'inout' position in supertype 'A'. +// pkg/front_end/testcases/general/issue38944.dart:7:7: Error: Can't use implicitly 'out' variable 'X' in an 'inout' position in supertype 'A'. // class B extends Object with A()> {} // ^ // import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class A extends core::Object /*isMixinDeclaration*/ { } abstract class _B&Object&A extends core::Object /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_B&Object&A diff --git a/pkg/front_end/testcases/general/issue38944.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue38944.dart.weak.outline.expect index 902d393232b..b58b568c195 100644 --- a/pkg/front_end/testcases/general/issue38944.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue38944.dart.weak.outline.expect @@ -2,16 +2,14 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/issue38944.dart:6:7: Error: Can't use implicitly 'out' variable 'X' in an 'inout' position in supertype 'A'. +// pkg/front_end/testcases/general/issue38944.dart:7:7: Error: Can't use implicitly 'out' variable 'X' in an 'inout' position in supertype 'A'. // class B extends Object with A()> {} // ^ // import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - ; +abstract class A extends core::Object /*isMixinDeclaration*/ { } abstract class _B&Object&A extends core::Object /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_B&Object&A diff --git a/pkg/front_end/testcases/general/issue38944.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue38944.dart.weak.transformed.expect index 4f9c07cf798..68dbb0db00a 100644 --- a/pkg/front_end/testcases/general/issue38944.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue38944.dart.weak.transformed.expect @@ -2,17 +2,14 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/issue38944.dart:6:7: Error: Can't use implicitly 'out' variable 'X' in an 'inout' position in supertype 'A'. +// pkg/front_end/testcases/general/issue38944.dart:7:7: Error: Can't use implicitly 'out' variable 'X' in an 'inout' position in supertype 'A'. // class B extends Object with A()> {} // ^ // import self as self; import "dart:core" as core; -class A extends core::Object { - synthetic constructor •() → self::A - : super core::Object::•() - ; +abstract class A extends core::Object /*isMixinDeclaration*/ { } abstract class _B&Object&A extends core::Object /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_B&Object&A diff --git a/pkg/front_end/testcases/general/issue40428.dart b/pkg/front_end/testcases/general/issue40428.dart index f24cb23a19b..dc1a3bcce75 100644 --- a/pkg/front_end/testcases/general/issue40428.dart +++ b/pkg/front_end/testcases/general/issue40428.dart @@ -14,7 +14,7 @@ abstract class SuperClass2 { SuperClass2(String i) : value = i; } -class Mixin {} +mixin Mixin {} class NamedMixin1 = SuperClass1 with Mixin; class NamedMixin2 = SuperClass2 with Mixin; diff --git a/pkg/front_end/testcases/general/issue40428.dart.strong.expect b/pkg/front_end/testcases/general/issue40428.dart.strong.expect index d9be0ec8977..c5ed7349682 100644 --- a/pkg/front_end/testcases/general/issue40428.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue40428.dart.strong.expect @@ -25,10 +25,7 @@ abstract class SuperClass2 extends core::Object { : self::SuperClass2::value = i, super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class NamedMixin1 = self::SuperClass1 with self::Mixin { synthetic constructor •(core::String value) → self::NamedMixin1 diff --git a/pkg/front_end/testcases/general/issue40428.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue40428.dart.strong.transformed.expect index 4ef294b8e4c..3ddeae9ccd5 100644 --- a/pkg/front_end/testcases/general/issue40428.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/issue40428.dart.strong.transformed.expect @@ -25,10 +25,7 @@ abstract class SuperClass2 extends core::Object { : self::SuperClass2::value = i, super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class NamedMixin1 extends self::SuperClass1 implements self::Mixin /*isEliminatedMixin*/ { synthetic constructor •(core::String value) → self::NamedMixin1 diff --git a/pkg/front_end/testcases/general/issue40428.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue40428.dart.textual_outline.expect index 450857005a8..ba9e51a20ab 100644 --- a/pkg/front_end/testcases/general/issue40428.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/issue40428.dart.textual_outline.expect @@ -8,8 +8,7 @@ abstract class SuperClass2 { SuperClass2(String i) : value = i; } -class Mixin {} - +mixin Mixin {} class NamedMixin1 = SuperClass1 with Mixin; class NamedMixin2 = SuperClass2 with Mixin; void main() {} diff --git a/pkg/front_end/testcases/general/issue40428.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue40428.dart.textual_outline_modelled.expect index b9d7f4f065b..c199211a4e8 100644 --- a/pkg/front_end/testcases/general/issue40428.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/issue40428.dart.textual_outline_modelled.expect @@ -8,9 +8,8 @@ abstract class SuperClass2 { final String value; } -class Mixin {} - class NamedMixin1 = SuperClass1 with Mixin; class NamedMixin2 = SuperClass2 with Mixin; errors() {} +mixin Mixin {} void main() {} diff --git a/pkg/front_end/testcases/general/issue40428.dart.weak.expect b/pkg/front_end/testcases/general/issue40428.dart.weak.expect index d9be0ec8977..c5ed7349682 100644 --- a/pkg/front_end/testcases/general/issue40428.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue40428.dart.weak.expect @@ -25,10 +25,7 @@ abstract class SuperClass2 extends core::Object { : self::SuperClass2::value = i, super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class NamedMixin1 = self::SuperClass1 with self::Mixin { synthetic constructor •(core::String value) → self::NamedMixin1 diff --git a/pkg/front_end/testcases/general/issue40428.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue40428.dart.weak.modular.expect index d9be0ec8977..c5ed7349682 100644 --- a/pkg/front_end/testcases/general/issue40428.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/issue40428.dart.weak.modular.expect @@ -25,10 +25,7 @@ abstract class SuperClass2 extends core::Object { : self::SuperClass2::value = i, super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class NamedMixin1 = self::SuperClass1 with self::Mixin { synthetic constructor •(core::String value) → self::NamedMixin1 diff --git a/pkg/front_end/testcases/general/issue40428.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue40428.dart.weak.outline.expect index 500d223f07d..a03f6d15596 100644 --- a/pkg/front_end/testcases/general/issue40428.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue40428.dart.weak.outline.expect @@ -12,9 +12,7 @@ abstract class SuperClass2 extends core::Object { constructor •(core::String i) → self::SuperClass2 ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class NamedMixin1 = self::SuperClass1 with self::Mixin { synthetic constructor •(core::String value) → self::NamedMixin1 diff --git a/pkg/front_end/testcases/general/issue40428.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue40428.dart.weak.transformed.expect index 4ef294b8e4c..3ddeae9ccd5 100644 --- a/pkg/front_end/testcases/general/issue40428.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue40428.dart.weak.transformed.expect @@ -25,10 +25,7 @@ abstract class SuperClass2 extends core::Object { : self::SuperClass2::value = i, super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class NamedMixin1 extends self::SuperClass1 implements self::Mixin /*isEliminatedMixin*/ { synthetic constructor •(core::String value) → self::NamedMixin1 diff --git a/pkg/front_end/testcases/general/issue41070.dart b/pkg/front_end/testcases/general/issue41070.dart index 3129cb6e113..e13d095ac05 100644 --- a/pkg/front_end/testcases/general/issue41070.dart +++ b/pkg/front_end/testcases/general/issue41070.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 Mixin {} +mixin Mixin {} class Base { final int x; diff --git a/pkg/front_end/testcases/general/issue41070.dart.strong.expect b/pkg/front_end/testcases/general/issue41070.dart.strong.expect index bc85e4c038d..ada11b974b5 100644 --- a/pkg/front_end/testcases/general/issue41070.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue41070.dart.strong.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -abstract class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Base extends core::Object /*hasConstConstructor*/ { final field core::int x; diff --git a/pkg/front_end/testcases/general/issue41070.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue41070.dart.strong.transformed.expect index 2a2d98a8933..fdcc4ebfe1d 100644 --- a/pkg/front_end/testcases/general/issue41070.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/issue41070.dart.strong.transformed.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -abstract class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Base extends core::Object /*hasConstConstructor*/ { final field core::int x; diff --git a/pkg/front_end/testcases/general/issue41070.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue41070.dart.textual_outline.expect index 6b9ed3fd86a..da24dc9ca97 100644 --- a/pkg/front_end/testcases/general/issue41070.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/issue41070.dart.textual_outline.expect @@ -1,4 +1,4 @@ -abstract class Mixin {} +mixin Mixin {} class Base { final int x; diff --git a/pkg/front_end/testcases/general/issue41070.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue41070.dart.textual_outline_modelled.expect index 6d281957c7a..32609456e41 100644 --- a/pkg/front_end/testcases/general/issue41070.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/issue41070.dart.textual_outline_modelled.expect @@ -1,5 +1,3 @@ -abstract class Mixin {} - class Application = Base with Mixin; class Base { @@ -9,3 +7,4 @@ class Base { expect(expected, actual) {} main() {} +mixin Mixin {} diff --git a/pkg/front_end/testcases/general/issue41070.dart.weak.expect b/pkg/front_end/testcases/general/issue41070.dart.weak.expect index bc85e4c038d..ada11b974b5 100644 --- a/pkg/front_end/testcases/general/issue41070.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue41070.dart.weak.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -abstract class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Base extends core::Object /*hasConstConstructor*/ { final field core::int x; diff --git a/pkg/front_end/testcases/general/issue41070.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue41070.dart.weak.modular.expect index bc85e4c038d..ada11b974b5 100644 --- a/pkg/front_end/testcases/general/issue41070.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/issue41070.dart.weak.modular.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -abstract class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Base extends core::Object /*hasConstConstructor*/ { final field core::int x; diff --git a/pkg/front_end/testcases/general/issue41070.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue41070.dart.weak.outline.expect index ed7bc3855d4..15e88907051 100644 --- a/pkg/front_end/testcases/general/issue41070.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue41070.dart.weak.outline.expect @@ -2,9 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -abstract class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Base extends core::Object /*hasConstConstructor*/ { final field core::int x; diff --git a/pkg/front_end/testcases/general/issue41070.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue41070.dart.weak.transformed.expect index 2a2d98a8933..fdcc4ebfe1d 100644 --- a/pkg/front_end/testcases/general/issue41070.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue41070.dart.weak.transformed.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -abstract class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Base extends core::Object /*hasConstConstructor*/ { final field core::int x; diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210.dart.strong.expect b/pkg/front_end/testcases/general/issue41210b/issue41210.dart.strong.expect index 78f61b7c3b4..949f2d98b68 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210.dart.strong.expect @@ -96,22 +96,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210.dart.weak.expect b/pkg/front_end/testcases/general/issue41210b/issue41210.dart.weak.expect index 78f61b7c3b4..949f2d98b68 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210.dart.weak.expect @@ -96,22 +96,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue41210b/issue41210.dart.weak.outline.expect index b1a2e3a78d7..3d0afe14664 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210.dart.weak.outline.expect @@ -90,19 +90,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String ; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.strong.expect b/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.strong.expect index 5fecb3af19b..e6fdbba762d 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.strong.expect @@ -96,22 +96,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.weak.expect b/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.weak.expect index 5fecb3af19b..e6fdbba762d 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.weak.expect @@ -96,22 +96,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.weak.modular.expect index 5fecb3af19b..e6fdbba762d 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.weak.modular.expect @@ -96,22 +96,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.weak.outline.expect index 8eb69ab08e5..8cf4e3613fa 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210.no_link.dart.weak.outline.expect @@ -90,17 +90,11 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = "hello"}) → core::String ; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210_lib.dart b/pkg/front_end/testcases/general/issue41210b/issue41210_lib.dart index a209b3035ee..d591cb80497 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210_lib.dart +++ b/pkg/front_end/testcases/general/issue41210b/issue41210_lib.dart @@ -14,10 +14,10 @@ mixin A implements Interface { String method(num i, {String s = "hello"}) => s; } -abstract class B implements Interface { +mixin B implements Interface { String method(num i); } -abstract class D implements Interface, Interface2 {} +mixin D implements Interface, Interface2 {} -abstract class F implements Interface {} +mixin F implements Interface {} diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.strong.expect b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.strong.expect index 209ae3c139f..d5d5a504d68 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.strong.expect @@ -63,22 +63,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.strong.transformed.expect index 0b715cf4c8a..a917433d805 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.strong.transformed.expect @@ -63,22 +63,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.weak.expect b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.weak.expect index 209ae3c139f..d5d5a504d68 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.weak.expect @@ -63,22 +63,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.weak.outline.expect index 27dd1bc9c92..3c9f5a2187d 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.weak.outline.expect @@ -60,19 +60,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String ; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.weak.transformed.expect index 0b715cf4c8a..a917433d805 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.dart.weak.transformed.expect @@ -63,22 +63,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.strong.expect b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.strong.expect index 209ae3c139f..d5d5a504d68 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.strong.expect @@ -63,22 +63,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.strong.transformed.expect index 0b715cf4c8a..a917433d805 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.strong.transformed.expect @@ -63,22 +63,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.expect b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.expect index 209ae3c139f..d5d5a504d68 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.expect @@ -63,22 +63,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.modular.expect index 209ae3c139f..d5d5a504d68 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.modular.expect @@ -63,22 +63,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.outline.expect index 1488b8d83f7..5cd00bef05c 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.outline.expect @@ -60,17 +60,11 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = "hello"}) → core::String ; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } diff --git a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.transformed.expect index 0b715cf4c8a..a917433d805 100644 --- a/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue41210b/issue41210_no_error.no_link.dart.weak.transformed.expect @@ -63,22 +63,13 @@ abstract class A extends core::Object implements iss::Interface /*isMixinDeclara method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements iss::Interface { - synthetic constructor •() → iss::B - : super core::Object::•() - ; +abstract class B extends core::Object implements iss::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements iss::Interface, iss::Interface2 { - synthetic constructor •() → iss::D - : super core::Object::•() - ; +abstract class D extends core::Object implements iss::Interface, iss::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } -abstract class F extends core::Object implements iss::Interface { - synthetic constructor •() → iss::F - : super core::Object::•() - ; +abstract class F extends core::Object implements iss::Interface /*isMixinDeclaration*/ { } constants { diff --git a/pkg/front_end/testcases/general/issue47728_2.dart b/pkg/front_end/testcases/general/issue47728_2.dart index 70ff02c40e2..a122f739e14 100644 --- a/pkg/front_end/testcases/general/issue47728_2.dart +++ b/pkg/front_end/testcases/general/issue47728_2.dart @@ -4,7 +4,7 @@ typedef A = ; -class B {} +mixin B {} class C = A with B; diff --git a/pkg/front_end/testcases/general/issue47728_2.dart.strong.expect b/pkg/front_end/testcases/general/issue47728_2.dart.strong.expect index 82e50f84cae..cda541eb706 100644 --- a/pkg/front_end/testcases/general/issue47728_2.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue47728_2.dart.strong.expect @@ -14,10 +14,7 @@ import self as self; import "dart:core" as core; typedef A = invalid-type; -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C = core::Object with self::B { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/issue47728_2.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue47728_2.dart.strong.transformed.expect index 3b07de4d321..53e8c1311ba 100644 --- a/pkg/front_end/testcases/general/issue47728_2.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/issue47728_2.dart.strong.transformed.expect @@ -14,10 +14,7 @@ import self as self; import "dart:core" as core; typedef A = invalid-type; -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C extends core::Object implements self::B /*isEliminatedMixin*/ { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/issue47728_2.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue47728_2.dart.textual_outline.expect index d2e4a8cda8b..931ce17e3a0 100644 --- a/pkg/front_end/testcases/general/issue47728_2.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/issue47728_2.dart.textual_outline.expect @@ -1,4 +1,4 @@ typedef A = ; -class B {} +mixin B {} class C = A with B; main() {} diff --git a/pkg/front_end/testcases/general/issue47728_2.dart.weak.expect b/pkg/front_end/testcases/general/issue47728_2.dart.weak.expect index 82e50f84cae..cda541eb706 100644 --- a/pkg/front_end/testcases/general/issue47728_2.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue47728_2.dart.weak.expect @@ -14,10 +14,7 @@ import self as self; import "dart:core" as core; typedef A = invalid-type; -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C = core::Object with self::B { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/issue47728_2.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue47728_2.dart.weak.modular.expect index 82e50f84cae..cda541eb706 100644 --- a/pkg/front_end/testcases/general/issue47728_2.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/issue47728_2.dart.weak.modular.expect @@ -14,10 +14,7 @@ import self as self; import "dart:core" as core; typedef A = invalid-type; -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C = core::Object with self::B { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/issue47728_2.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue47728_2.dart.weak.outline.expect index 836ab096556..8984e3adbbf 100644 --- a/pkg/front_end/testcases/general/issue47728_2.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue47728_2.dart.weak.outline.expect @@ -14,9 +14,7 @@ import self as self; import "dart:core" as core; typedef A = invalid-type; -class B extends core::Object { - synthetic constructor •() → self::B - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C = core::Object with self::B { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/issue47728_2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue47728_2.dart.weak.transformed.expect index 3b07de4d321..53e8c1311ba 100644 --- a/pkg/front_end/testcases/general/issue47728_2.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue47728_2.dart.weak.transformed.expect @@ -14,10 +14,7 @@ import self as self; import "dart:core" as core; typedef A = invalid-type; -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C extends core::Object implements self::B /*isEliminatedMixin*/ { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/issue47728_4.dart b/pkg/front_end/testcases/general/issue47728_4.dart index bd0512e86ee..f18455ef0e3 100644 --- a/pkg/front_end/testcases/general/issue47728_4.dart +++ b/pkg/front_end/testcases/general/issue47728_4.dart @@ -4,7 +4,7 @@ typedef A = Function()?; -class B {} +mixin B {} class C = A with B; diff --git a/pkg/front_end/testcases/general/issue47728_4.dart.strong.expect b/pkg/front_end/testcases/general/issue47728_4.dart.strong.expect index 2a79c0b82d2..89e96f376f5 100644 --- a/pkg/front_end/testcases/general/issue47728_4.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue47728_4.dart.strong.expect @@ -13,10 +13,7 @@ import self as self; import "dart:core" as core; typedef A = () →? dynamic; -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C = core::Object with self::B { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/issue47728_4.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue47728_4.dart.strong.transformed.expect index 3d2bbb7941e..2919dbbd175 100644 --- a/pkg/front_end/testcases/general/issue47728_4.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/issue47728_4.dart.strong.transformed.expect @@ -13,10 +13,7 @@ import self as self; import "dart:core" as core; typedef A = () →? dynamic; -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C extends core::Object implements self::B /*isEliminatedMixin*/ { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline.expect index aca4ab40981..0cc7066a276 100644 --- a/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline.expect @@ -1,6 +1,4 @@ typedef A = Function()?; - -class B {} - +mixin B {} class C = A with B; main() {} diff --git a/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline_modelled.expect index 09de3def390..ed6c6dd65ac 100644 --- a/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/issue47728_4.dart.textual_outline_modelled.expect @@ -1,5 +1,4 @@ -class B {} - class C = A with B; main() {} +mixin B {} typedef A = Function()?; diff --git a/pkg/front_end/testcases/general/issue47728_4.dart.weak.expect b/pkg/front_end/testcases/general/issue47728_4.dart.weak.expect index 2a79c0b82d2..89e96f376f5 100644 --- a/pkg/front_end/testcases/general/issue47728_4.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue47728_4.dart.weak.expect @@ -13,10 +13,7 @@ import self as self; import "dart:core" as core; typedef A = () →? dynamic; -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C = core::Object with self::B { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/issue47728_4.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue47728_4.dart.weak.modular.expect index 2a79c0b82d2..89e96f376f5 100644 --- a/pkg/front_end/testcases/general/issue47728_4.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/issue47728_4.dart.weak.modular.expect @@ -13,10 +13,7 @@ import self as self; import "dart:core" as core; typedef A = () →? dynamic; -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C = core::Object with self::B { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/issue47728_4.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue47728_4.dart.weak.outline.expect index 9e97c408fba..7c5139c8062 100644 --- a/pkg/front_end/testcases/general/issue47728_4.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue47728_4.dart.weak.outline.expect @@ -13,9 +13,7 @@ import self as self; import "dart:core" as core; typedef A = () →? dynamic; -class B extends core::Object { - synthetic constructor •() → self::B - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C = core::Object with self::B { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/issue47728_4.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue47728_4.dart.weak.transformed.expect index 3d2bbb7941e..2919dbbd175 100644 --- a/pkg/front_end/testcases/general/issue47728_4.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue47728_4.dart.weak.transformed.expect @@ -13,10 +13,7 @@ import self as self; import "dart:core" as core; typedef A = () →? dynamic; -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C extends core::Object implements self::B /*isEliminatedMixin*/ { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/general/issue48167.dart b/pkg/front_end/testcases/general/issue48167.dart index 5207b6e8df3..d3c09476220 100644 --- a/pkg/front_end/testcases/general/issue48167.dart +++ b/pkg/front_end/testcases/general/issue48167.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 + class Base {} class Mixin1a extends Base {} diff --git a/pkg/front_end/testcases/general/issue48167.dart.strong.expect b/pkg/front_end/testcases/general/issue48167.dart.strong.expect index 9c5a12c026a..48562804df3 100644 --- a/pkg/front_end/testcases/general/issue48167.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue48167.dart.strong.expect @@ -2,11 +2,11 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/issue48167.dart:11:29: Error: The class 'Mixin1a' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/general/issue48167.dart:13:29: Error: The class 'Mixin1a' can't be used as a mixin because it extends a class other than 'Object'. // class C1a extends Base with Mixin1a {} // ^ // -// pkg/front_end/testcases/general/issue48167.dart:13:29: Error: The class 'Mixin1b' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/general/issue48167.dart:15:29: Error: The class 'Mixin1b' can't be used as a mixin because it extends a class other than 'Object'. // class C1b extends Base with Mixin1b {} // ^ // diff --git a/pkg/front_end/testcases/general/issue48167.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue48167.dart.strong.transformed.expect index f2fe6925e63..d03faa24053 100644 --- a/pkg/front_end/testcases/general/issue48167.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/issue48167.dart.strong.transformed.expect @@ -2,11 +2,11 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/issue48167.dart:11:29: Error: The class 'Mixin1a' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/general/issue48167.dart:13:29: Error: The class 'Mixin1a' can't be used as a mixin because it extends a class other than 'Object'. // class C1a extends Base with Mixin1a {} // ^ // -// pkg/front_end/testcases/general/issue48167.dart:13:29: Error: The class 'Mixin1b' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/general/issue48167.dart:15:29: Error: The class 'Mixin1b' can't be used as a mixin because it extends a class other than 'Object'. // class C1b extends Base with Mixin1b {} // ^ // diff --git a/pkg/front_end/testcases/general/issue48167.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue48167.dart.textual_outline.expect index b9524fa58d0..e1ed55c2a8b 100644 --- a/pkg/front_end/testcases/general/issue48167.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/issue48167.dart.textual_outline.expect @@ -1,3 +1,4 @@ +// @dart = 2.19 class Base {} class Mixin1a extends Base {} diff --git a/pkg/front_end/testcases/general/issue48167.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue48167.dart.textual_outline_modelled.expect index f907e98709d..5480aae185a 100644 --- a/pkg/front_end/testcases/general/issue48167.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/issue48167.dart.textual_outline_modelled.expect @@ -1,3 +1,4 @@ +// @dart = 2.19 class Base {} class C1a extends Base with Mixin1a {} diff --git a/pkg/front_end/testcases/general/issue48167.dart.weak.expect b/pkg/front_end/testcases/general/issue48167.dart.weak.expect index 9c5a12c026a..48562804df3 100644 --- a/pkg/front_end/testcases/general/issue48167.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue48167.dart.weak.expect @@ -2,11 +2,11 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/issue48167.dart:11:29: Error: The class 'Mixin1a' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/general/issue48167.dart:13:29: Error: The class 'Mixin1a' can't be used as a mixin because it extends a class other than 'Object'. // class C1a extends Base with Mixin1a {} // ^ // -// pkg/front_end/testcases/general/issue48167.dart:13:29: Error: The class 'Mixin1b' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/general/issue48167.dart:15:29: Error: The class 'Mixin1b' can't be used as a mixin because it extends a class other than 'Object'. // class C1b extends Base with Mixin1b {} // ^ // diff --git a/pkg/front_end/testcases/general/issue48167.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue48167.dart.weak.modular.expect index 9c5a12c026a..48562804df3 100644 --- a/pkg/front_end/testcases/general/issue48167.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/issue48167.dart.weak.modular.expect @@ -2,11 +2,11 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/issue48167.dart:11:29: Error: The class 'Mixin1a' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/general/issue48167.dart:13:29: Error: The class 'Mixin1a' can't be used as a mixin because it extends a class other than 'Object'. // class C1a extends Base with Mixin1a {} // ^ // -// pkg/front_end/testcases/general/issue48167.dart:13:29: Error: The class 'Mixin1b' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/general/issue48167.dart:15:29: Error: The class 'Mixin1b' can't be used as a mixin because it extends a class other than 'Object'. // class C1b extends Base with Mixin1b {} // ^ // diff --git a/pkg/front_end/testcases/general/issue48167.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue48167.dart.weak.outline.expect index fbb38a40171..635de765b71 100644 --- a/pkg/front_end/testcases/general/issue48167.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue48167.dart.weak.outline.expect @@ -2,11 +2,11 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/issue48167.dart:11:29: Error: The class 'Mixin1a' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/general/issue48167.dart:13:29: Error: The class 'Mixin1a' can't be used as a mixin because it extends a class other than 'Object'. // class C1a extends Base with Mixin1a {} // ^ // -// pkg/front_end/testcases/general/issue48167.dart:13:29: Error: The class 'Mixin1b' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/general/issue48167.dart:15:29: Error: The class 'Mixin1b' can't be used as a mixin because it extends a class other than 'Object'. // class C1b extends Base with Mixin1b {} // ^ // diff --git a/pkg/front_end/testcases/general/issue48167.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue48167.dart.weak.transformed.expect index f2fe6925e63..d03faa24053 100644 --- a/pkg/front_end/testcases/general/issue48167.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue48167.dart.weak.transformed.expect @@ -2,11 +2,11 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/general/issue48167.dart:11:29: Error: The class 'Mixin1a' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/general/issue48167.dart:13:29: Error: The class 'Mixin1a' can't be used as a mixin because it extends a class other than 'Object'. // class C1a extends Base with Mixin1a {} // ^ // -// pkg/front_end/testcases/general/issue48167.dart:13:29: Error: The class 'Mixin1b' can't be used as a mixin because it extends a class other than 'Object'. +// pkg/front_end/testcases/general/issue48167.dart:15:29: Error: The class 'Mixin1b' can't be used as a mixin because it extends a class other than 'Object'. // class C1b extends Base with Mixin1b {} // ^ // diff --git a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart index 1861f85434d..efdd0c3f73e 100644 --- a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart +++ b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart @@ -9,6 +9,6 @@ class C = D with E; class D {} -class E {} +mixin E {} main() {} diff --git a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.strong.expect b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.strong.expect index 8acc1e51bab..6c6211a9b9b 100644 --- a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.strong.expect +++ b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.strong.expect @@ -13,10 +13,7 @@ class D extends core::Object { : super core::Object::•() ; } -class E extends core::Object { - synthetic constructor •() → self::E - : super core::Object::•() - ; +abstract class E extends core::Object /*isMixinDeclaration*/ { } static const field dynamic a = #C1; static method main() → dynamic {} diff --git a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.strong.transformed.expect b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.strong.transformed.expect index 8686f7ab637..bbd4cdb25e6 100644 --- a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.strong.transformed.expect @@ -13,10 +13,7 @@ class D extends core::Object { : super core::Object::•() ; } -class E extends core::Object { - synthetic constructor •() → self::E - : super core::Object::•() - ; +abstract class E extends core::Object /*isMixinDeclaration*/ { } static const field dynamic a = #C1; static method main() → dynamic {} diff --git a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.textual_outline.expect b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.textual_outline.expect index 525a405b3b6..48f3226df0c 100644 --- a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.textual_outline.expect @@ -4,6 +4,5 @@ class C = D with E; class D {} -class E {} - +mixin E {} main() {} diff --git a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.textual_outline_modelled.expect index 8c1c5b9ec61..6bb095d0689 100644 --- a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.textual_outline_modelled.expect @@ -3,7 +3,6 @@ class C = D with E; class D {} -class E {} - const a = null; main() {} +mixin E {} diff --git a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.expect b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.expect index 8acc1e51bab..6c6211a9b9b 100644 --- a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.expect +++ b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.expect @@ -13,10 +13,7 @@ class D extends core::Object { : super core::Object::•() ; } -class E extends core::Object { - synthetic constructor •() → self::E - : super core::Object::•() - ; +abstract class E extends core::Object /*isMixinDeclaration*/ { } static const field dynamic a = #C1; static method main() → dynamic {} diff --git a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.modular.expect b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.modular.expect index 8acc1e51bab..6c6211a9b9b 100644 --- a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.modular.expect @@ -13,10 +13,7 @@ class D extends core::Object { : super core::Object::•() ; } -class E extends core::Object { - synthetic constructor •() → self::E - : super core::Object::•() - ; +abstract class E extends core::Object /*isMixinDeclaration*/ { } static const field dynamic a = #C1; static method main() → dynamic {} diff --git a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.outline.expect b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.outline.expect index 1a6c17a6ddf..ca06f2c5915 100644 --- a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.outline.expect @@ -12,9 +12,7 @@ class D extends core::Object { synthetic constructor •() → self::D ; } -class E extends core::Object { - synthetic constructor •() → self::E - ; +abstract class E extends core::Object /*isMixinDeclaration*/ { } static const field dynamic a = null; static method main() → dynamic diff --git a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.transformed.expect b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.transformed.expect index 8686f7ab637..bbd4cdb25e6 100644 --- a/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/metadata_named_mixin_application.dart.weak.transformed.expect @@ -13,10 +13,7 @@ class D extends core::Object { : super core::Object::•() ; } -class E extends core::Object { - synthetic constructor •() → self::E - : super core::Object::•() - ; +abstract class E extends core::Object /*isMixinDeclaration*/ { } static const field dynamic a = #C1; static method main() → dynamic {} diff --git a/pkg/front_end/testcases/general/missing_constructor.dart b/pkg/front_end/testcases/general/missing_constructor.dart index 190d24c6c41..5377419199b 100644 --- a/pkg/front_end/testcases/general/missing_constructor.dart +++ b/pkg/front_end/testcases/general/missing_constructor.dart @@ -16,7 +16,7 @@ class Bad { Bad.bar() : this.baz(); } -class M {} +mixin M {} class MixinApplication extends Super with M { MixinApplication() : super(); diff --git a/pkg/front_end/testcases/general/missing_constructor.dart.strong.expect b/pkg/front_end/testcases/general/missing_constructor.dart.strong.expect index 73616cecb91..c2c8cd3c353 100644 --- a/pkg/front_end/testcases/general/missing_constructor.dart.strong.expect +++ b/pkg/front_end/testcases/general/missing_constructor.dart.strong.expect @@ -58,10 +58,7 @@ class Bad extends core::Object { ^^^^" ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } abstract class _MixinApplication&Super&M = self::Super with self::M /*isAnonymousMixin*/ { synthetic constructor _() → self::_MixinApplication&Super&M diff --git a/pkg/front_end/testcases/general/missing_constructor.dart.strong.transformed.expect b/pkg/front_end/testcases/general/missing_constructor.dart.strong.transformed.expect index 9c91118003f..16de263a43b 100644 --- a/pkg/front_end/testcases/general/missing_constructor.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/missing_constructor.dart.strong.transformed.expect @@ -58,10 +58,7 @@ class Bad extends core::Object { ^^^^" ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } abstract class _MixinApplication&Super&M extends self::Super implements self::M /*isAnonymousMixin,isEliminatedMixin*/ { synthetic constructor _() → self::_MixinApplication&Super&M diff --git a/pkg/front_end/testcases/general/missing_constructor.dart.textual_outline.expect b/pkg/front_end/testcases/general/missing_constructor.dart.textual_outline.expect index 021aaf95894..a17ddf5a3e6 100644 --- a/pkg/front_end/testcases/general/missing_constructor.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/missing_constructor.dart.textual_outline.expect @@ -12,7 +12,7 @@ class Bad { Bad.bar() : this.baz(); } -class M {} +mixin M {} class MixinApplication extends Super with M { MixinApplication() : super(); diff --git a/pkg/front_end/testcases/general/missing_constructor.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/missing_constructor.dart.textual_outline_modelled.expect index 44085f9eb00..d4f6be02db7 100644 --- a/pkg/front_end/testcases/general/missing_constructor.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/missing_constructor.dart.textual_outline_modelled.expect @@ -3,8 +3,6 @@ class Bad { Bad.foo() : this(); } -class M {} - class MixinApplication extends Super with M { MixinApplication() : super(); MixinApplication.foo() : super.foo(); @@ -20,3 +18,4 @@ class Super { } main() {} +mixin M {} diff --git a/pkg/front_end/testcases/general/missing_constructor.dart.weak.expect b/pkg/front_end/testcases/general/missing_constructor.dart.weak.expect index 73616cecb91..c2c8cd3c353 100644 --- a/pkg/front_end/testcases/general/missing_constructor.dart.weak.expect +++ b/pkg/front_end/testcases/general/missing_constructor.dart.weak.expect @@ -58,10 +58,7 @@ class Bad extends core::Object { ^^^^" ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } abstract class _MixinApplication&Super&M = self::Super with self::M /*isAnonymousMixin*/ { synthetic constructor _() → self::_MixinApplication&Super&M diff --git a/pkg/front_end/testcases/general/missing_constructor.dart.weak.modular.expect b/pkg/front_end/testcases/general/missing_constructor.dart.weak.modular.expect index 73616cecb91..c2c8cd3c353 100644 --- a/pkg/front_end/testcases/general/missing_constructor.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/missing_constructor.dart.weak.modular.expect @@ -58,10 +58,7 @@ class Bad extends core::Object { ^^^^" ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } abstract class _MixinApplication&Super&M = self::Super with self::M /*isAnonymousMixin*/ { synthetic constructor _() → self::_MixinApplication&Super&M diff --git a/pkg/front_end/testcases/general/missing_constructor.dart.weak.outline.expect b/pkg/front_end/testcases/general/missing_constructor.dart.weak.outline.expect index 17112b291aa..604f2451c9b 100644 --- a/pkg/front_end/testcases/general/missing_constructor.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/missing_constructor.dart.weak.outline.expect @@ -18,9 +18,7 @@ class Bad extends core::Object { constructor bar() → self::Bad ; } -class M extends core::Object { - synthetic constructor •() → self::M - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } abstract class _MixinApplication&Super&M = self::Super with self::M /*isAnonymousMixin*/ { synthetic constructor _() → self::_MixinApplication&Super&M diff --git a/pkg/front_end/testcases/general/missing_constructor.dart.weak.transformed.expect b/pkg/front_end/testcases/general/missing_constructor.dart.weak.transformed.expect index 9c91118003f..16de263a43b 100644 --- a/pkg/front_end/testcases/general/missing_constructor.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/missing_constructor.dart.weak.transformed.expect @@ -58,10 +58,7 @@ class Bad extends core::Object { ^^^^" ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } abstract class _MixinApplication&Super&M extends self::Super implements self::M /*isAnonymousMixin,isEliminatedMixin*/ { synthetic constructor _() → self::_MixinApplication&Super&M diff --git a/pkg/front_end/testcases/general/mixin.dart b/pkg/front_end/testcases/general/mixin.dart index 833d32ae5e6..c86d5d310f4 100644 --- a/pkg/front_end/testcases/general/mixin.dart +++ b/pkg/front_end/testcases/general/mixin.dart @@ -6,11 +6,11 @@ class B extends Object with M1, M2 { B(value); } -abstract class M1 { +mixin M1 { m() => print("M1"); } -abstract class M2 { +mixin M2 { m() => print("M2"); } @@ -18,7 +18,7 @@ class C extends Object with M1, M2 { C(value); } -abstract class G1 { +mixin G1 { m() => print(T); } diff --git a/pkg/front_end/testcases/general/mixin.dart.strong.expect b/pkg/front_end/testcases/general/mixin.dart.strong.expect index 1c3e0d3018d..5c8079228f8 100644 --- a/pkg/front_end/testcases/general/mixin.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin.dart.strong.expect @@ -21,17 +21,11 @@ class B extends self::_B&Object&M1&M2 { : super self::_B&Object&M1&M2::•() ; } -abstract class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print("M1"); } -abstract class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print("M2"); } @@ -54,10 +48,7 @@ class C extends self::_C&Object&M1&M2 { : super self::_C&Object&M1&M2::•() ; } -abstract class G1 extends core::Object { - synthetic constructor •() → self::G1 - : super core::Object::•() - ; +abstract class G1 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print(self::G1::T%); } diff --git a/pkg/front_end/testcases/general/mixin.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin.dart.strong.transformed.expect index 8541d2b13a1..2a1fc5f326b 100644 --- a/pkg/front_end/testcases/general/mixin.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin.dart.strong.transformed.expect @@ -21,17 +21,11 @@ class B extends self::_B&Object&M1&M2 { : super self::_B&Object&M1&M2::•() ; } -abstract class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print("M1"); } -abstract class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print("M2"); } @@ -54,10 +48,7 @@ class C extends self::_C&Object&M1&M2 { : super self::_C&Object&M1&M2::•() ; } -abstract class G1 extends core::Object { - synthetic constructor •() → self::G1 - : super core::Object::•() - ; +abstract class G1 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print(self::G1::T%); } diff --git a/pkg/front_end/testcases/general/mixin.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin.dart.textual_outline.expect index 74bf0c025a4..8339d4eb888 100644 --- a/pkg/front_end/testcases/general/mixin.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin.dart.textual_outline.expect @@ -2,11 +2,10 @@ class B extends Object with M1, M2 { B(value); } -abstract class M1 { +mixin M1 { m() => print("M1"); } - -abstract class M2 { +mixin M2 { m() => print("M2"); } @@ -14,7 +13,7 @@ class C extends Object with M1, M2 { C(value); } -abstract class G1 { +mixin G1 { m() => print(T); } diff --git a/pkg/front_end/testcases/general/mixin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin.dart.textual_outline_modelled.expect index 4fd20a5dd4a..c16ad941849 100644 --- a/pkg/front_end/testcases/general/mixin.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin.dart.textual_outline_modelled.expect @@ -1,15 +1,3 @@ -abstract class G1 { - m() => print(T); -} - -abstract class M1 { - m() => print("M1"); -} - -abstract class M2 { - m() => print("M2"); -} - class B extends Object with M1, M2 { B(value); } @@ -21,3 +9,12 @@ class C extends Object with M1, M2 { class D extends Object with G1 {} main() {} +mixin G1 { + m() => print(T); +} +mixin M1 { + m() => print("M1"); +} +mixin M2 { + m() => print("M2"); +} diff --git a/pkg/front_end/testcases/general/mixin.dart.weak.expect b/pkg/front_end/testcases/general/mixin.dart.weak.expect index 1c3e0d3018d..5c8079228f8 100644 --- a/pkg/front_end/testcases/general/mixin.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin.dart.weak.expect @@ -21,17 +21,11 @@ class B extends self::_B&Object&M1&M2 { : super self::_B&Object&M1&M2::•() ; } -abstract class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print("M1"); } -abstract class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print("M2"); } @@ -54,10 +48,7 @@ class C extends self::_C&Object&M1&M2 { : super self::_C&Object&M1&M2::•() ; } -abstract class G1 extends core::Object { - synthetic constructor •() → self::G1 - : super core::Object::•() - ; +abstract class G1 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print(self::G1::T%); } diff --git a/pkg/front_end/testcases/general/mixin.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin.dart.weak.modular.expect index 1c3e0d3018d..5c8079228f8 100644 --- a/pkg/front_end/testcases/general/mixin.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin.dart.weak.modular.expect @@ -21,17 +21,11 @@ class B extends self::_B&Object&M1&M2 { : super self::_B&Object&M1&M2::•() ; } -abstract class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print("M1"); } -abstract class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print("M2"); } @@ -54,10 +48,7 @@ class C extends self::_C&Object&M1&M2 { : super self::_C&Object&M1&M2::•() ; } -abstract class G1 extends core::Object { - synthetic constructor •() → self::G1 - : super core::Object::•() - ; +abstract class G1 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print(self::G1::T%); } diff --git a/pkg/front_end/testcases/general/mixin.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin.dart.weak.outline.expect index 42597748425..2636b3a9dea 100644 --- a/pkg/front_end/testcases/general/mixin.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin.dart.weak.outline.expect @@ -20,15 +20,11 @@ class B extends self::_B&Object&M1&M2 { constructor •(dynamic value) → self::B ; } -abstract class M1 extends core::Object { - synthetic constructor •() → self::M1 - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic ; } -abstract class M2 extends core::Object { - synthetic constructor •() → self::M2 - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic ; } @@ -50,9 +46,7 @@ class C extends self::_C&Object&M1&M2 { constructor •(dynamic value) → self::C ; } -abstract class G1 extends core::Object { - synthetic constructor •() → self::G1 - ; +abstract class G1 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic ; } diff --git a/pkg/front_end/testcases/general/mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin.dart.weak.transformed.expect index 8541d2b13a1..2a1fc5f326b 100644 --- a/pkg/front_end/testcases/general/mixin.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin.dart.weak.transformed.expect @@ -21,17 +21,11 @@ class B extends self::_B&Object&M1&M2 { : super self::_B&Object&M1&M2::•() ; } -abstract class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print("M1"); } -abstract class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print("M2"); } @@ -54,10 +48,7 @@ class C extends self::_C&Object&M1&M2 { : super self::_C&Object&M1&M2::•() ; } -abstract class G1 extends core::Object { - synthetic constructor •() → self::G1 - : super core::Object::•() - ; +abstract class G1 extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return core::print(self::G1::T%); } diff --git a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart index ae79ed22030..7fcf9f6e487 100644 --- a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart +++ b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.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 Mixin {} +mixin Mixin {} class Super { var field = 42; diff --git a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.strong.expect b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.strong.expect index 0457c7e0ff4..550043a1e8d 100644 --- a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.strong.expect @@ -9,10 +9,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Super extends core::Object { field core::int field = 42; diff --git a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.strong.transformed.expect index a5d18f6821d..d59f6d9e1a8 100644 --- a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.strong.transformed.expect @@ -9,10 +9,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Super extends core::Object { field core::int field = 42; diff --git a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.textual_outline.expect index ee106600269..d3011233e59 100644 --- a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.textual_outline.expect @@ -1,4 +1,4 @@ -class Mixin {} +mixin Mixin {} class Super { var field = 42; diff --git a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.textual_outline_modelled.expect index 44e63909315..e9932d6724b 100644 --- a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.textual_outline_modelled.expect @@ -1,7 +1,5 @@ class Class = Super with Mixin; -class Mixin {} - class Super { Super(this.field); var field = 42; @@ -9,3 +7,4 @@ class Super { error() {} main() {} +mixin Mixin {} diff --git a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.expect b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.expect index 0457c7e0ff4..550043a1e8d 100644 --- a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.expect @@ -9,10 +9,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Super extends core::Object { field core::int field = 42; diff --git a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.modular.expect index 0457c7e0ff4..550043a1e8d 100644 --- a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.modular.expect @@ -9,10 +9,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Super extends core::Object { field core::int field = 42; diff --git a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.outline.expect index 190974cb51b..c81768c7ba7 100644 --- a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.outline.expect @@ -2,9 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Super extends core::Object { field core::int field; diff --git a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.transformed.expect index a5d18f6821d..d59f6d9e1a8 100644 --- a/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_application_inferred_parameter_type.dart.weak.transformed.expect @@ -9,10 +9,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Super extends core::Object { field core::int field = 42; diff --git a/pkg/front_end/testcases/general/mixin_application_lub_2.dart b/pkg/front_end/testcases/general/mixin_application_lub_2.dart index a8fb6a5428e..885ccff6218 100644 --- a/pkg/front_end/testcases/general/mixin_application_lub_2.dart +++ b/pkg/front_end/testcases/general/mixin_application_lub_2.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 Diagnosticable {} +mixin Diagnosticable {} // Originally the existence of this (unused) class (which has an anonymous mixin // that matches that of `State`) caused an error in the VM's mixin diff --git a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.strong.expect b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.strong.expect index 2ded7f4171a..ecd56c73434 100644 --- a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.strong.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Diagnosticable extends core::Object { - synthetic constructor •() → self::Diagnosticable - : super core::Object::•() - ; +abstract class Diagnosticable extends core::Object /*isMixinDeclaration*/ { } abstract class _SomeClass&Object&Diagnosticable = core::Object with self::Diagnosticable /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_SomeClass&Object&Diagnosticable diff --git a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.strong.transformed.expect index 30ac36fa88b..e1b94d763ea 100644 --- a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.strong.transformed.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Diagnosticable extends core::Object { - synthetic constructor •() → self::Diagnosticable - : super core::Object::•() - ; +abstract class Diagnosticable extends core::Object /*isMixinDeclaration*/ { } abstract class _SomeClass&Object&Diagnosticable extends core::Object implements self::Diagnosticable /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_SomeClass&Object&Diagnosticable diff --git a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.textual_outline.expect index 098847f363d..0db62e4e87f 100644 --- a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.textual_outline.expect @@ -1,4 +1,4 @@ -class Diagnosticable {} +mixin Diagnosticable {} class SomeClass with Diagnosticable {} diff --git a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.textual_outline_modelled.expect index af624a83cd1..abbc3a3c5d4 100644 --- a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.textual_outline_modelled.expect @@ -1,8 +1,6 @@ StateA? a = StateA(); StateB b = StateB(); -class Diagnosticable {} - class SomeClass with Diagnosticable {} class State with Diagnosticable {} @@ -13,3 +11,4 @@ class StateB extends State {} foo(T x) {} main() {} +mixin Diagnosticable {} diff --git a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.expect b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.expect index 2ded7f4171a..ecd56c73434 100644 --- a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Diagnosticable extends core::Object { - synthetic constructor •() → self::Diagnosticable - : super core::Object::•() - ; +abstract class Diagnosticable extends core::Object /*isMixinDeclaration*/ { } abstract class _SomeClass&Object&Diagnosticable = core::Object with self::Diagnosticable /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_SomeClass&Object&Diagnosticable diff --git a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.modular.expect index 2ded7f4171a..ecd56c73434 100644 --- a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.modular.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Diagnosticable extends core::Object { - synthetic constructor •() → self::Diagnosticable - : super core::Object::•() - ; +abstract class Diagnosticable extends core::Object /*isMixinDeclaration*/ { } abstract class _SomeClass&Object&Diagnosticable = core::Object with self::Diagnosticable /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_SomeClass&Object&Diagnosticable diff --git a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.outline.expect index 86ec65e72cc..6a325643c4c 100644 --- a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.outline.expect @@ -2,9 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Diagnosticable extends core::Object { - synthetic constructor •() → self::Diagnosticable - ; +abstract class Diagnosticable extends core::Object /*isMixinDeclaration*/ { } abstract class _SomeClass&Object&Diagnosticable = core::Object with self::Diagnosticable /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_SomeClass&Object&Diagnosticable diff --git a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.transformed.expect index 30ac36fa88b..e1b94d763ea 100644 --- a/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_application_lub_2.dart.weak.transformed.expect @@ -2,10 +2,7 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Diagnosticable extends core::Object { - synthetic constructor •() → self::Diagnosticable - : super core::Object::•() - ; +abstract class Diagnosticable extends core::Object /*isMixinDeclaration*/ { } abstract class _SomeClass&Object&Diagnosticable extends core::Object implements self::Diagnosticable /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_SomeClass&Object&Diagnosticable diff --git a/pkg/front_end/testcases/general/mixin_application_override.dart b/pkg/front_end/testcases/general/mixin_application_override.dart index 30b4f194b22..38b6f75bbe0 100644 --- a/pkg/front_end/testcases/general/mixin_application_override.dart +++ b/pkg/front_end/testcases/general/mixin_application_override.dart @@ -8,15 +8,15 @@ class S { foo([x]) {} } -class M { +mixin M { foo() {} } -class M1 {} +mixin M1 {} -class M2 {} +mixin M2 {} -class MX {} +mixin MX {} class A0 = S with M; class A1 = S with M1, M; diff --git a/pkg/front_end/testcases/general/mixin_application_override.dart.strong.expect b/pkg/front_end/testcases/general/mixin_application_override.dart.strong.expect index 7d32765181d..3491f36fcd2 100644 --- a/pkg/front_end/testcases/general/mixin_application_override.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_application_override.dart.strong.expect @@ -131,26 +131,14 @@ class S extends core::Object { ; method foo([dynamic x = #C1]) → dynamic {} } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic {} } -class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { } -class MX extends core::Object { - synthetic constructor •() → self::MX - : super core::Object::•() - ; +abstract class MX extends core::Object /*isMixinDeclaration*/ { } class A0 = self::S with self::M { synthetic constructor •() → self::A0 diff --git a/pkg/front_end/testcases/general/mixin_application_override.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_application_override.dart.textual_outline.expect index ee4aef81023..2251b3551cd 100644 --- a/pkg/front_end/testcases/general/mixin_application_override.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_application_override.dart.textual_outline.expect @@ -2,16 +2,12 @@ class S { foo([x]) {} } -class M { +mixin M { foo() {} } - -class M1 {} - -class M2 {} - -class MX {} - +mixin M1 {} +mixin M2 {} +mixin MX {} class A0 = S with M; class A1 = S with M1, M; class A2 = S with M1, M2, M; diff --git a/pkg/front_end/testcases/general/mixin_application_override.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_application_override.dart.textual_outline_modelled.expect index 6187ae6dfb8..b27c6c2871a 100644 --- a/pkg/front_end/testcases/general/mixin_application_override.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_application_override.dart.textual_outline_modelled.expect @@ -17,18 +17,14 @@ class B2 extends S with M1, M2, M {} class B2X extends S with M1, M2, M, MX {} -class M { - foo() {} -} - -class M1 {} - -class M2 {} - -class MX {} - class S { foo([x]) {} } main() {} +mixin M { + foo() {} +} +mixin M1 {} +mixin M2 {} +mixin MX {} diff --git a/pkg/front_end/testcases/general/mixin_application_override.dart.weak.expect b/pkg/front_end/testcases/general/mixin_application_override.dart.weak.expect index 7d32765181d..3491f36fcd2 100644 --- a/pkg/front_end/testcases/general/mixin_application_override.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_application_override.dart.weak.expect @@ -131,26 +131,14 @@ class S extends core::Object { ; method foo([dynamic x = #C1]) → dynamic {} } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic {} } -class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { } -class MX extends core::Object { - synthetic constructor •() → self::MX - : super core::Object::•() - ; +abstract class MX extends core::Object /*isMixinDeclaration*/ { } class A0 = self::S with self::M { synthetic constructor •() → self::A0 diff --git a/pkg/front_end/testcases/general/mixin_application_override.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_application_override.dart.weak.modular.expect index 7d32765181d..3491f36fcd2 100644 --- a/pkg/front_end/testcases/general/mixin_application_override.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_application_override.dart.weak.modular.expect @@ -131,26 +131,14 @@ class S extends core::Object { ; method foo([dynamic x = #C1]) → dynamic {} } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic {} } -class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { } -class MX extends core::Object { - synthetic constructor •() → self::MX - : super core::Object::•() - ; +abstract class MX extends core::Object /*isMixinDeclaration*/ { } class A0 = self::S with self::M { synthetic constructor •() → self::A0 diff --git a/pkg/front_end/testcases/general/mixin_application_override.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_application_override.dart.weak.outline.expect index b5bf4ad5891..2df4e7d9e18 100644 --- a/pkg/front_end/testcases/general/mixin_application_override.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_application_override.dart.weak.outline.expect @@ -131,23 +131,15 @@ class S extends core::Object { method foo([dynamic x = null]) → dynamic ; } -class M extends core::Object { - synthetic constructor •() → self::M - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic ; } -class M1 extends core::Object { - synthetic constructor •() → self::M1 - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { } -class MX extends core::Object { - synthetic constructor •() → self::MX - ; +abstract class MX extends core::Object /*isMixinDeclaration*/ { } class A0 = self::S with self::M { synthetic constructor •() → self::A0 diff --git a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart index 30bdcd8c23a..d1e3dca0730 100644 --- a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart +++ b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart @@ -9,7 +9,7 @@ class C { C({a = 0, b = T}) : trace = "a: $a, b: $b"; } -class M {} +mixin M {} class D = C with M; diff --git a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.strong.expect b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.strong.expect index 01d3c4cb19c..3431b19376e 100644 --- a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.strong.expect @@ -18,10 +18,7 @@ class C extends core::Object { : self::C::trace = "a: ${a}, b: ${b}", super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } class D = self::C with self::M { synthetic constructor •({dynamic a = #C1, dynamic b = #C2}) → self::D diff --git a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.strong.transformed.expect index fc9b3202763..24cef26ffc5 100644 --- a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.strong.transformed.expect @@ -18,10 +18,7 @@ class C extends core::Object { : self::C::trace = "a: ${a}, b: ${b}", super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } class D extends self::C implements self::M /*isEliminatedMixin*/ { synthetic constructor •({dynamic a = #C1, dynamic b = #C2}) → self::D diff --git a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.textual_outline.expect index f18d3eecb31..a82f6c74541 100644 --- a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.textual_outline.expect @@ -5,8 +5,7 @@ class C { C({a = 0, b = T}) : trace = "a: $a, b: $b"; } -class M {} - +mixin M {} class D = C with M; class E extends D {} diff --git a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.textual_outline_modelled.expect index b112e70e39b..4b4fff85299 100644 --- a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.textual_outline_modelled.expect @@ -11,6 +11,5 @@ class E extends D {} class F extends C with M {} -class M {} - main() {} +mixin M {} diff --git a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.expect b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.expect index 01d3c4cb19c..3431b19376e 100644 --- a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.expect @@ -18,10 +18,7 @@ class C extends core::Object { : self::C::trace = "a: ${a}, b: ${b}", super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } class D = self::C with self::M { synthetic constructor •({dynamic a = #C1, dynamic b = #C2}) → self::D diff --git a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.modular.expect index 01d3c4cb19c..3431b19376e 100644 --- a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.modular.expect @@ -18,10 +18,7 @@ class C extends core::Object { : self::C::trace = "a: ${a}, b: ${b}", super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } class D = self::C with self::M { synthetic constructor •({dynamic a = #C1, dynamic b = #C2}) → self::D diff --git a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.outline.expect index e7cebb0b238..88657c24377 100644 --- a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.outline.expect @@ -16,9 +16,7 @@ class C extends core::Object { constructor •({dynamic a = 0, dynamic b = invalid-type}) → self::C ; } -class M extends core::Object { - synthetic constructor •() → self::M - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } class D = self::C with self::M { synthetic constructor •({dynamic a = 0, dynamic b = invalid-type}) → self::D diff --git a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.transformed.expect index fc9b3202763..24cef26ffc5 100644 --- a/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_constructors_with_default_values.dart.weak.transformed.expect @@ -18,10 +18,7 @@ class C extends core::Object { : self::C::trace = "a: ${a}, b: ${b}", super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } class D extends self::C implements self::M /*isEliminatedMixin*/ { synthetic constructor •({dynamic a = #C1, dynamic b = #C2}) → self::D diff --git a/pkg/front_end/testcases/general/mixin_covariant.dart b/pkg/front_end/testcases/general/mixin_covariant.dart index c32fcd5937d..d0103f35aa5 100644 --- a/pkg/front_end/testcases/general/mixin_covariant.dart +++ b/pkg/front_end/testcases/general/mixin_covariant.dart @@ -17,11 +17,11 @@ typedef void TakeOptionalObjectsAndInts([Object? a, int? b, Object? c, int? d]); typedef void TakeNamedInts({int? a, int? b, int? c, int? d}); typedef void TakeNamedObjectsAndInts({Object? a, int? b, Object? c, int? d}); -class M1 { +mixin M1 { method(covariant int? a, int? b) {} } -class M2 { +mixin M2 { method(int? a, covariant int? b) {} } @@ -81,11 +81,11 @@ class Interface2 { void method(int? a, covariant int? b, int? c, int? d, int? e) {} } -class Mixin1 { +mixin Mixin1 { void method(int? a, int? b, covariant int? c, int? d, int? e) {} } -class Mixin2 { +mixin Mixin2 { void method(int? a, int? b, int? c, covariant int? d, int? e) {} } diff --git a/pkg/front_end/testcases/general/mixin_covariant.dart.strong.expect b/pkg/front_end/testcases/general/mixin_covariant.dart.strong.expect index a1fcbe0c342..19dbcce56a6 100644 --- a/pkg/front_end/testcases/general/mixin_covariant.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_covariant.dart.strong.expect @@ -9,16 +9,10 @@ typedef TakeOptionalInts = ([core::int?, core::int?, core::int?, core::int?]) typedef TakeOptionalObjectsAndInts = ([core::Object?, core::int?, core::Object?, core::int?]) → void; typedef TakeNamedInts = ({a: core::int?, b: core::int?, c: core::int?, d: core::int?}) → void; typedef TakeNamedObjectsAndInts = ({a: core::Object?, b: core::int?, c: core::Object?, d: core::int?}) → void; -class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method method(covariant-by-declaration core::int? a, core::int? b) → dynamic {} } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, covariant-by-declaration core::int? b) → dynamic {} } abstract class _C&Object&M1 = core::Object with self::M1 /*isAnonymousMixin,hasConstConstructor*/ { @@ -113,16 +107,10 @@ class Interface2 extends core::Object { ; method method(core::int? a, covariant-by-declaration core::int? b, core::int? c, core::int? d, core::int? e) → void {} } -class Mixin1 extends core::Object { - synthetic constructor •() → self::Mixin1 - : super core::Object::•() - ; +abstract class Mixin1 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, core::int? b, covariant-by-declaration core::int? c, core::int? d, core::int? e) → void {} } -class Mixin2 extends core::Object { - synthetic constructor •() → self::Mixin2 - : super core::Object::•() - ; +abstract class Mixin2 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, core::int? b, core::int? c, covariant-by-declaration core::int? d, core::int? e) → void {} } class Superclass extends core::Object { diff --git a/pkg/front_end/testcases/general/mixin_covariant.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_covariant.dart.strong.transformed.expect index 89e3789b23b..5367cf38e11 100644 --- a/pkg/front_end/testcases/general/mixin_covariant.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_covariant.dart.strong.transformed.expect @@ -9,16 +9,10 @@ typedef TakeOptionalInts = ([core::int?, core::int?, core::int?, core::int?]) typedef TakeOptionalObjectsAndInts = ([core::Object?, core::int?, core::Object?, core::int?]) → void; typedef TakeNamedInts = ({a: core::int?, b: core::int?, c: core::int?, d: core::int?}) → void; typedef TakeNamedObjectsAndInts = ({a: core::Object?, b: core::int?, c: core::Object?, d: core::int?}) → void; -class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method method(covariant-by-declaration core::int? a, core::int? b) → dynamic {} } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, covariant-by-declaration core::int? b) → dynamic {} } abstract class _C&Object&M1 extends core::Object implements self::M1 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { @@ -111,16 +105,10 @@ class Interface2 extends core::Object { ; method method(core::int? a, covariant-by-declaration core::int? b, core::int? c, core::int? d, core::int? e) → void {} } -class Mixin1 extends core::Object { - synthetic constructor •() → self::Mixin1 - : super core::Object::•() - ; +abstract class Mixin1 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, core::int? b, covariant-by-declaration core::int? c, core::int? d, core::int? e) → void {} } -class Mixin2 extends core::Object { - synthetic constructor •() → self::Mixin2 - : super core::Object::•() - ; +abstract class Mixin2 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, core::int? b, core::int? c, covariant-by-declaration core::int? d, core::int? e) → void {} } class Superclass extends core::Object { diff --git a/pkg/front_end/testcases/general/mixin_covariant.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_covariant.dart.textual_outline.expect index 1dbfd18de89..f4d823a3826 100644 --- a/pkg/front_end/testcases/general/mixin_covariant.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_covariant.dart.textual_outline.expect @@ -5,12 +5,10 @@ typedef void TakeOptionalInts([int? a, int? b, int? c, int? d]); typedef void TakeOptionalObjectsAndInts([Object? a, int? b, Object? c, int? d]); typedef void TakeNamedInts({int? a, int? b, int? c, int? d}); typedef void TakeNamedObjectsAndInts({Object? a, int? b, Object? c, int? d}); - -class M1 { +mixin M1 { method(covariant int? a, int? b) {} } - -class M2 { +mixin M2 { method(int? a, covariant int? b) {} } @@ -64,11 +62,10 @@ class Interface2 { void method(int? a, covariant int? b, int? c, int? d, int? e) {} } -class Mixin1 { +mixin Mixin1 { void method(int? a, int? b, covariant int? c, int? d, int? e) {} } - -class Mixin2 { +mixin Mixin2 { void method(int? a, int? b, int? c, covariant int? d, int? e) {} } diff --git a/pkg/front_end/testcases/general/mixin_covariant.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_covariant.dart.textual_outline_modelled.expect index c0534c16a3d..9319aa7ef57 100644 --- a/pkg/front_end/testcases/general/mixin_covariant.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_covariant.dart.textual_outline_modelled.expect @@ -36,26 +36,10 @@ class Interface2 { void method(int? a, covariant int? b, int? c, int? d, int? e) {} } -class M1 { - method(covariant int? a, int? b) {} -} - -class M2 { - method(int? a, covariant int? b) {} -} - class Mixed extends Superclass with Mixin1, Mixin2 implements Interface1, Interface2 {} -class Mixin1 { - void method(int? a, int? b, covariant int? c, int? d, int? e) {} -} - -class Mixin2 { - void method(int? a, int? b, int? c, covariant int? d, int? e) {} -} - class Override1 { void method(covariant int? a, int? b, int? c, int? d, int? e) {} } @@ -72,6 +56,18 @@ class Superclass { void method(int? a, int? b, int? c, int? d, covariant int? e) {} } +mixin M1 { + method(covariant int? a, int? b) {} +} +mixin M2 { + method(int? a, covariant int? b) {} +} +mixin Mixin1 { + void method(int? a, int? b, covariant int? c, int? d, int? e) {} +} +mixin Mixin2 { + void method(int? a, int? b, int? c, covariant int? d, int? e) {} +} typedef void TakeInts(int? a, int? b, int? c, int? d, int? e); typedef void TakeNamedInts({int? a, int? b, int? c, int? d}); typedef void TakeNamedObjectsAndInts({Object? a, int? b, Object? c, int? d}); diff --git a/pkg/front_end/testcases/general/mixin_covariant.dart.weak.expect b/pkg/front_end/testcases/general/mixin_covariant.dart.weak.expect index a1fcbe0c342..19dbcce56a6 100644 --- a/pkg/front_end/testcases/general/mixin_covariant.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_covariant.dart.weak.expect @@ -9,16 +9,10 @@ typedef TakeOptionalInts = ([core::int?, core::int?, core::int?, core::int?]) typedef TakeOptionalObjectsAndInts = ([core::Object?, core::int?, core::Object?, core::int?]) → void; typedef TakeNamedInts = ({a: core::int?, b: core::int?, c: core::int?, d: core::int?}) → void; typedef TakeNamedObjectsAndInts = ({a: core::Object?, b: core::int?, c: core::Object?, d: core::int?}) → void; -class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method method(covariant-by-declaration core::int? a, core::int? b) → dynamic {} } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, covariant-by-declaration core::int? b) → dynamic {} } abstract class _C&Object&M1 = core::Object with self::M1 /*isAnonymousMixin,hasConstConstructor*/ { @@ -113,16 +107,10 @@ class Interface2 extends core::Object { ; method method(core::int? a, covariant-by-declaration core::int? b, core::int? c, core::int? d, core::int? e) → void {} } -class Mixin1 extends core::Object { - synthetic constructor •() → self::Mixin1 - : super core::Object::•() - ; +abstract class Mixin1 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, core::int? b, covariant-by-declaration core::int? c, core::int? d, core::int? e) → void {} } -class Mixin2 extends core::Object { - synthetic constructor •() → self::Mixin2 - : super core::Object::•() - ; +abstract class Mixin2 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, core::int? b, core::int? c, covariant-by-declaration core::int? d, core::int? e) → void {} } class Superclass extends core::Object { diff --git a/pkg/front_end/testcases/general/mixin_covariant.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_covariant.dart.weak.modular.expect index a1fcbe0c342..19dbcce56a6 100644 --- a/pkg/front_end/testcases/general/mixin_covariant.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_covariant.dart.weak.modular.expect @@ -9,16 +9,10 @@ typedef TakeOptionalInts = ([core::int?, core::int?, core::int?, core::int?]) typedef TakeOptionalObjectsAndInts = ([core::Object?, core::int?, core::Object?, core::int?]) → void; typedef TakeNamedInts = ({a: core::int?, b: core::int?, c: core::int?, d: core::int?}) → void; typedef TakeNamedObjectsAndInts = ({a: core::Object?, b: core::int?, c: core::Object?, d: core::int?}) → void; -class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method method(covariant-by-declaration core::int? a, core::int? b) → dynamic {} } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, covariant-by-declaration core::int? b) → dynamic {} } abstract class _C&Object&M1 = core::Object with self::M1 /*isAnonymousMixin,hasConstConstructor*/ { @@ -113,16 +107,10 @@ class Interface2 extends core::Object { ; method method(core::int? a, covariant-by-declaration core::int? b, core::int? c, core::int? d, core::int? e) → void {} } -class Mixin1 extends core::Object { - synthetic constructor •() → self::Mixin1 - : super core::Object::•() - ; +abstract class Mixin1 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, core::int? b, covariant-by-declaration core::int? c, core::int? d, core::int? e) → void {} } -class Mixin2 extends core::Object { - synthetic constructor •() → self::Mixin2 - : super core::Object::•() - ; +abstract class Mixin2 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, core::int? b, core::int? c, covariant-by-declaration core::int? d, core::int? e) → void {} } class Superclass extends core::Object { diff --git a/pkg/front_end/testcases/general/mixin_covariant.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_covariant.dart.weak.outline.expect index 27daeebc475..00b89fee4e7 100644 --- a/pkg/front_end/testcases/general/mixin_covariant.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_covariant.dart.weak.outline.expect @@ -9,15 +9,11 @@ typedef TakeOptionalInts = ([core::int?, core::int?, core::int?, core::int?]) typedef TakeOptionalObjectsAndInts = ([core::Object?, core::int?, core::Object?, core::int?]) → void; typedef TakeNamedInts = ({a: core::int?, b: core::int?, c: core::int?, d: core::int?}) → void; typedef TakeNamedObjectsAndInts = ({a: core::Object?, b: core::int?, c: core::Object?, d: core::int?}) → void; -class M1 extends core::Object { - synthetic constructor •() → self::M1 - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method method(covariant-by-declaration core::int? a, core::int? b) → dynamic ; } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, covariant-by-declaration core::int? b) → dynamic ; } @@ -113,15 +109,11 @@ class Interface2 extends core::Object { method method(core::int? a, covariant-by-declaration core::int? b, core::int? c, core::int? d, core::int? e) → void ; } -class Mixin1 extends core::Object { - synthetic constructor •() → self::Mixin1 - ; +abstract class Mixin1 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, core::int? b, covariant-by-declaration core::int? c, core::int? d, core::int? e) → void ; } -class Mixin2 extends core::Object { - synthetic constructor •() → self::Mixin2 - ; +abstract class Mixin2 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, core::int? b, core::int? c, covariant-by-declaration core::int? d, core::int? e) → void ; } diff --git a/pkg/front_end/testcases/general/mixin_covariant.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_covariant.dart.weak.transformed.expect index 89e3789b23b..5367cf38e11 100644 --- a/pkg/front_end/testcases/general/mixin_covariant.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_covariant.dart.weak.transformed.expect @@ -9,16 +9,10 @@ typedef TakeOptionalInts = ([core::int?, core::int?, core::int?, core::int?]) typedef TakeOptionalObjectsAndInts = ([core::Object?, core::int?, core::Object?, core::int?]) → void; typedef TakeNamedInts = ({a: core::int?, b: core::int?, c: core::int?, d: core::int?}) → void; typedef TakeNamedObjectsAndInts = ({a: core::Object?, b: core::int?, c: core::Object?, d: core::int?}) → void; -class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method method(covariant-by-declaration core::int? a, core::int? b) → dynamic {} } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, covariant-by-declaration core::int? b) → dynamic {} } abstract class _C&Object&M1 extends core::Object implements self::M1 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { @@ -111,16 +105,10 @@ class Interface2 extends core::Object { ; method method(core::int? a, covariant-by-declaration core::int? b, core::int? c, core::int? d, core::int? e) → void {} } -class Mixin1 extends core::Object { - synthetic constructor •() → self::Mixin1 - : super core::Object::•() - ; +abstract class Mixin1 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, core::int? b, covariant-by-declaration core::int? c, core::int? d, core::int? e) → void {} } -class Mixin2 extends core::Object { - synthetic constructor •() → self::Mixin2 - : super core::Object::•() - ; +abstract class Mixin2 extends core::Object /*isMixinDeclaration*/ { method method(core::int? a, core::int? b, core::int? c, covariant-by-declaration core::int? d, core::int? e) → void {} } class Superclass extends core::Object { diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart b/pkg/front_end/testcases/general/mixin_covariant2.dart index 84541149246..d46d24d3312 100644 --- a/pkg/front_end/testcases/general/mixin_covariant2.dart +++ b/pkg/front_end/testcases/general/mixin_covariant2.dart @@ -9,7 +9,7 @@ class Superclass { String method4(num argument1, covariant num argument2) => "Superclass"; } -class Mixin { +mixin Mixin { String method1(num argument1, num argument2) => "Mixin"; String method2(covariant int argument1, num argument2) => "Mixin"; String method3(num argument1, num argument2) => "Mixin"; diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart.strong.expect b/pkg/front_end/testcases/general/mixin_covariant2.dart.strong.expect index ebd83050d01..3c991877d80 100644 --- a/pkg/front_end/testcases/general/mixin_covariant2.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_covariant2.dart.strong.expect @@ -15,10 +15,7 @@ class Superclass extends core::Object { method method4(core::num argument1, covariant-by-declaration core::num argument2) → core::String return "Superclass"; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method1(core::num argument1, core::num argument2) → core::String return "Mixin"; method method2(covariant-by-declaration core::int argument1, core::num argument2) → core::String diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_covariant2.dart.strong.transformed.expect index 2122e288039..efa29ce4db8 100644 --- a/pkg/front_end/testcases/general/mixin_covariant2.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_covariant2.dart.strong.transformed.expect @@ -15,10 +15,7 @@ class Superclass extends core::Object { method method4(core::num argument1, covariant-by-declaration core::num argument2) → core::String return "Superclass"; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method1(core::num argument1, core::num argument2) → core::String return "Mixin"; method method2(covariant-by-declaration core::int argument1, core::num argument2) → core::String diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline.expect index 6f22d96cdda..ec5632b33ce 100644 --- a/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline.expect @@ -5,7 +5,7 @@ class Superclass { String method4(num argument1, covariant num argument2) => "Superclass"; } -class Mixin { +mixin Mixin { String method1(num argument1, num argument2) => "Mixin"; String method2(covariant int argument1, num argument2) => "Mixin"; String method3(num argument1, num argument2) => "Mixin"; diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline_modelled.expect index 9f3d0b44201..3f1f488d924 100644 --- a/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_covariant2.dart.textual_outline_modelled.expect @@ -1,12 +1,5 @@ class Class extends Superclass with Mixin {} -class Mixin { - String method1(num argument1, num argument2) => "Mixin"; - String method2(covariant int argument1, num argument2) => "Mixin"; - String method3(num argument1, num argument2) => "Mixin"; - String method4(covariant int argument1, int argument2) => "Mixin"; -} - class Superclass { String method1(num argument1, num argument2) => "Superclass"; String method2(num argument1, num argument2) => "Superclass"; @@ -15,5 +8,11 @@ class Superclass { } main() {} +mixin Mixin { + String method1(num argument1, num argument2) => "Mixin"; + String method2(covariant int argument1, num argument2) => "Mixin"; + String method3(num argument1, num argument2) => "Mixin"; + String method4(covariant int argument1, int argument2) => "Mixin"; +} void expect(expected, actual) {} void throws(void Function() f) {} diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.expect b/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.expect index ebd83050d01..3c991877d80 100644 --- a/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.expect @@ -15,10 +15,7 @@ class Superclass extends core::Object { method method4(core::num argument1, covariant-by-declaration core::num argument2) → core::String return "Superclass"; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method1(core::num argument1, core::num argument2) → core::String return "Mixin"; method method2(covariant-by-declaration core::int argument1, core::num argument2) → core::String diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.modular.expect index ebd83050d01..3c991877d80 100644 --- a/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.modular.expect @@ -15,10 +15,7 @@ class Superclass extends core::Object { method method4(core::num argument1, covariant-by-declaration core::num argument2) → core::String return "Superclass"; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method1(core::num argument1, core::num argument2) → core::String return "Mixin"; method method2(covariant-by-declaration core::int argument1, core::num argument2) → core::String diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.outline.expect index a2ed6ce31fe..213c6302d2d 100644 --- a/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.outline.expect @@ -14,9 +14,7 @@ class Superclass extends core::Object { method method4(core::num argument1, covariant-by-declaration core::num argument2) → core::String ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method1(core::num argument1, core::num argument2) → core::String ; method method2(covariant-by-declaration core::int argument1, core::num argument2) → core::String diff --git a/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.transformed.expect index 2122e288039..efa29ce4db8 100644 --- a/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_covariant2.dart.weak.transformed.expect @@ -15,10 +15,7 @@ class Superclass extends core::Object { method method4(core::num argument1, covariant-by-declaration core::num argument2) → core::String return "Superclass"; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method1(core::num argument1, core::num argument2) → core::String return "Mixin"; method method2(covariant-by-declaration core::int argument1, core::num argument2) → core::String diff --git a/pkg/front_end/testcases/general/mixin_super_repeated.dart b/pkg/front_end/testcases/general/mixin_super_repeated.dart index d326a317638..5144ade940d 100644 --- a/pkg/front_end/testcases/general/mixin_super_repeated.dart +++ b/pkg/front_end/testcases/general/mixin_super_repeated.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 M { +mixin M { var m; } diff --git a/pkg/front_end/testcases/general/mixin_super_repeated.dart.strong.expect b/pkg/front_end/testcases/general/mixin_super_repeated.dart.strong.expect index 1c00ad28b27..334594afd22 100644 --- a/pkg/front_end/testcases/general/mixin_super_repeated.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_super_repeated.dart.strong.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -abstract class M extends core::Object { +abstract class M extends core::Object /*isMixinDeclaration*/ { field dynamic m = null; - synthetic constructor •() → self::M - : super core::Object::•() - ; } abstract class N extends self::M /*isMixinDeclaration*/ { set superM(dynamic value) → void { diff --git a/pkg/front_end/testcases/general/mixin_super_repeated.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_super_repeated.dart.strong.transformed.expect index b868047718b..3ee9e9d1da1 100644 --- a/pkg/front_end/testcases/general/mixin_super_repeated.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_super_repeated.dart.strong.transformed.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -abstract class M extends core::Object { +abstract class M extends core::Object /*isMixinDeclaration*/ { field dynamic m = null; - synthetic constructor •() → self::M - : super core::Object::•() - ; } abstract class N extends self::M /*isMixinDeclaration*/ { set superM(dynamic value) → void { diff --git a/pkg/front_end/testcases/general/mixin_super_repeated.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_super_repeated.dart.textual_outline.expect index 65c7ba365a3..b6605a0c73b 100644 --- a/pkg/front_end/testcases/general/mixin_super_repeated.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_super_repeated.dart.textual_outline.expect @@ -1,7 +1,6 @@ -abstract class M { +mixin M { var m; } - mixin N on M { void set superM(value) {} get superM => super.m; diff --git a/pkg/front_end/testcases/general/mixin_super_repeated.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_super_repeated.dart.textual_outline_modelled.expect index 30ac627107b..a65ba67955e 100644 --- a/pkg/front_end/testcases/general/mixin_super_repeated.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_super_repeated.dart.textual_outline_modelled.expect @@ -1,12 +1,11 @@ -abstract class M { - var m; -} - class Named = S with M, N, M; class S {} main() {} +mixin M { + var m; +} mixin N on M { get superM => super.m; void set superM(value) {} diff --git a/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.expect b/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.expect index 1c00ad28b27..334594afd22 100644 --- a/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -abstract class M extends core::Object { +abstract class M extends core::Object /*isMixinDeclaration*/ { field dynamic m = null; - synthetic constructor •() → self::M - : super core::Object::•() - ; } abstract class N extends self::M /*isMixinDeclaration*/ { set superM(dynamic value) → void { diff --git a/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.modular.expect index 1c00ad28b27..334594afd22 100644 --- a/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.modular.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -abstract class M extends core::Object { +abstract class M extends core::Object /*isMixinDeclaration*/ { field dynamic m = null; - synthetic constructor •() → self::M - : super core::Object::•() - ; } abstract class N extends self::M /*isMixinDeclaration*/ { set superM(dynamic value) → void { diff --git a/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.outline.expect index 5af75a0789c..b156b0a26b3 100644 --- a/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.outline.expect @@ -2,10 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -abstract class M extends core::Object { +abstract class M extends core::Object /*isMixinDeclaration*/ { field dynamic m; - synthetic constructor •() → self::M - ; } abstract class N extends self::M /*isMixinDeclaration*/ { set superM(dynamic value) → void diff --git a/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.transformed.expect index b868047718b..3ee9e9d1da1 100644 --- a/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_super_repeated.dart.weak.transformed.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -abstract class M extends core::Object { +abstract class M extends core::Object /*isMixinDeclaration*/ { field dynamic m = null; - synthetic constructor •() → self::M - : super core::Object::•() - ; } abstract class N extends self::M /*isMixinDeclaration*/ { set superM(dynamic value) → void { diff --git a/pkg/front_end/testcases/general/mixin_with_static_member.dart b/pkg/front_end/testcases/general/mixin_with_static_member.dart index 954d649f805..b1c2bae1886 100644 --- a/pkg/front_end/testcases/general/mixin_with_static_member.dart +++ b/pkg/front_end/testcases/general/mixin_with_static_member.dart @@ -8,7 +8,7 @@ class B { final Object m = new Object(); } -class M { +mixin M { static Object m() => new Object(); } diff --git a/pkg/front_end/testcases/general/mixin_with_static_member.dart.strong.expect b/pkg/front_end/testcases/general/mixin_with_static_member.dart.strong.expect index bfa81881efc..55983d1a85b 100644 --- a/pkg/front_end/testcases/general/mixin_with_static_member.dart.strong.expect +++ b/pkg/front_end/testcases/general/mixin_with_static_member.dart.strong.expect @@ -18,10 +18,7 @@ class B extends core::Object { : super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { static method m() → core::Object return new core::Object::•(); } diff --git a/pkg/front_end/testcases/general/mixin_with_static_member.dart.strong.transformed.expect b/pkg/front_end/testcases/general/mixin_with_static_member.dart.strong.transformed.expect index d81db035921..9bed8fa54c9 100644 --- a/pkg/front_end/testcases/general/mixin_with_static_member.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_with_static_member.dart.strong.transformed.expect @@ -20,10 +20,7 @@ class B extends core::Object { : super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { static method m() → core::Object return new core::Object::•(); } diff --git a/pkg/front_end/testcases/general/mixin_with_static_member.dart.textual_outline.expect b/pkg/front_end/testcases/general/mixin_with_static_member.dart.textual_outline.expect index 460aed50315..20fe7cce710 100644 --- a/pkg/front_end/testcases/general/mixin_with_static_member.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/mixin_with_static_member.dart.textual_outline.expect @@ -4,8 +4,7 @@ class B { final Object m = new Object(); } -class M { +mixin M { static Object m() => new Object(); } - main() {} diff --git a/pkg/front_end/testcases/general/mixin_with_static_member.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/mixin_with_static_member.dart.textual_outline_modelled.expect index 460aed50315..4e7d5d40a4b 100644 --- a/pkg/front_end/testcases/general/mixin_with_static_member.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/mixin_with_static_member.dart.textual_outline_modelled.expect @@ -4,8 +4,7 @@ class B { final Object m = new Object(); } -class M { +main() {} +mixin M { static Object m() => new Object(); } - -main() {} diff --git a/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.expect b/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.expect index bfa81881efc..55983d1a85b 100644 --- a/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.expect +++ b/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.expect @@ -18,10 +18,7 @@ class B extends core::Object { : super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { static method m() → core::Object return new core::Object::•(); } diff --git a/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.modular.expect b/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.modular.expect index bfa81881efc..55983d1a85b 100644 --- a/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.modular.expect @@ -18,10 +18,7 @@ class B extends core::Object { : super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { static method m() → core::Object return new core::Object::•(); } diff --git a/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.outline.expect index 2b5e162c2a2..61fc2c6e22b 100644 --- a/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.outline.expect @@ -16,9 +16,7 @@ class B extends core::Object { synthetic constructor •() → self::B ; } -class M extends core::Object { - synthetic constructor •() → self::M - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { static method m() → core::Object ; } diff --git a/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.transformed.expect index d81db035921..9bed8fa54c9 100644 --- a/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/mixin_with_static_member.dart.weak.transformed.expect @@ -20,10 +20,7 @@ class B extends core::Object { : super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { static method m() → core::Object return new core::Object::•(); } diff --git a/pkg/front_end/testcases/general/qualified.dart.strong.expect b/pkg/front_end/testcases/general/qualified.dart.strong.expect index be3713b35e3..2dd97769490 100644 --- a/pkg/front_end/testcases/general/qualified.dart.strong.expect +++ b/pkg/front_end/testcases/general/qualified.dart.strong.expect @@ -103,10 +103,7 @@ class Supertype extends core::Object { core::print("I'm supertypeMethod form lib.Supertype"); } } -abstract class Mixin extends core::Object { - synthetic constructor •() → lib::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic { core::print("I'm Mixin.foo"); } diff --git a/pkg/front_end/testcases/general/qualified.dart.strong.transformed.expect b/pkg/front_end/testcases/general/qualified.dart.strong.transformed.expect index 74e7869b304..daaac602e2d 100644 --- a/pkg/front_end/testcases/general/qualified.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/qualified.dart.strong.transformed.expect @@ -104,10 +104,7 @@ class Supertype extends core::Object { core::print("I'm supertypeMethod form lib.Supertype"); } } -abstract class Mixin extends core::Object { - synthetic constructor •() → lib::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic { core::print("I'm Mixin.foo"); } diff --git a/pkg/front_end/testcases/general/qualified.dart.weak.expect b/pkg/front_end/testcases/general/qualified.dart.weak.expect index be3713b35e3..2dd97769490 100644 --- a/pkg/front_end/testcases/general/qualified.dart.weak.expect +++ b/pkg/front_end/testcases/general/qualified.dart.weak.expect @@ -103,10 +103,7 @@ class Supertype extends core::Object { core::print("I'm supertypeMethod form lib.Supertype"); } } -abstract class Mixin extends core::Object { - synthetic constructor •() → lib::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic { core::print("I'm Mixin.foo"); } diff --git a/pkg/front_end/testcases/general/qualified.dart.weak.modular.expect b/pkg/front_end/testcases/general/qualified.dart.weak.modular.expect index be3713b35e3..2dd97769490 100644 --- a/pkg/front_end/testcases/general/qualified.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/qualified.dart.weak.modular.expect @@ -103,10 +103,7 @@ class Supertype extends core::Object { core::print("I'm supertypeMethod form lib.Supertype"); } } -abstract class Mixin extends core::Object { - synthetic constructor •() → lib::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic { core::print("I'm Mixin.foo"); } diff --git a/pkg/front_end/testcases/general/qualified.dart.weak.outline.expect b/pkg/front_end/testcases/general/qualified.dart.weak.outline.expect index 822ff06bf94..5dc113af4b7 100644 --- a/pkg/front_end/testcases/general/qualified.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/qualified.dart.weak.outline.expect @@ -87,9 +87,7 @@ class Supertype extends core::Object { method supertypeMethod() → dynamic ; } -abstract class Mixin extends core::Object { - synthetic constructor •() → lib::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic ; } diff --git a/pkg/front_end/testcases/general/qualified.dart.weak.transformed.expect b/pkg/front_end/testcases/general/qualified.dart.weak.transformed.expect index 74e7869b304..daaac602e2d 100644 --- a/pkg/front_end/testcases/general/qualified.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/qualified.dart.weak.transformed.expect @@ -104,10 +104,7 @@ class Supertype extends core::Object { core::print("I'm supertypeMethod form lib.Supertype"); } } -abstract class Mixin extends core::Object { - synthetic constructor •() → lib::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic { core::print("I'm Mixin.foo"); } diff --git a/pkg/front_end/testcases/general/qualified_lib.dart b/pkg/front_end/testcases/general/qualified_lib.dart index ae00a714781..24a11004089 100644 --- a/pkg/front_end/testcases/general/qualified_lib.dart +++ b/pkg/front_end/testcases/general/qualified_lib.dart @@ -18,7 +18,7 @@ class Supertype { } } -abstract class Mixin { +mixin Mixin { foo() { print("I'm Mixin.foo"); } diff --git a/pkg/front_end/testcases/general/redirecting_factory.dart b/pkg/front_end/testcases/general/redirecting_factory.dart index af4e16d86ec..4852f3f739c 100644 --- a/pkg/front_end/testcases/general/redirecting_factory.dart +++ b/pkg/front_end/testcases/general/redirecting_factory.dart @@ -36,7 +36,7 @@ class SimpleCaseImpl2 implements SimpleCaseImpl {} class Base {} -class Mixin {} +mixin Mixin {} class Mix = Base with Mixin; diff --git a/pkg/front_end/testcases/general/redirecting_factory.dart.strong.expect b/pkg/front_end/testcases/general/redirecting_factory.dart.strong.expect index 27e2e84e873..70aadaafea1 100644 --- a/pkg/front_end/testcases/general/redirecting_factory.dart.strong.expect +++ b/pkg/front_end/testcases/general/redirecting_factory.dart.strong.expect @@ -65,10 +65,7 @@ class Base extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Mix = self::Base with self::Mixin { synthetic constructor •() → self::Mix diff --git a/pkg/front_end/testcases/general/redirecting_factory.dart.strong.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory.dart.strong.transformed.expect index 793a07eecf6..e531ece1cd4 100644 --- a/pkg/front_end/testcases/general/redirecting_factory.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_factory.dart.strong.transformed.expect @@ -65,10 +65,7 @@ class Base extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Mix extends self::Base implements self::Mixin /*isEliminatedMixin*/ { synthetic constructor •() → self::Mix diff --git a/pkg/front_end/testcases/general/redirecting_factory.dart.textual_outline.expect b/pkg/front_end/testcases/general/redirecting_factory.dart.textual_outline.expect index b6e0d0ae38e..d7cc2383084 100644 --- a/pkg/front_end/testcases/general/redirecting_factory.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory.dart.textual_outline.expect @@ -28,7 +28,6 @@ class SimpleCaseImpl2 implements SimpleCaseImpl {} class Base {} -class Mixin {} - +mixin Mixin {} class Mix = Base with Mixin; main() {} diff --git a/pkg/front_end/testcases/general/redirecting_factory.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/redirecting_factory.dart.textual_outline_modelled.expect index 3f02151bedb..bf449b4f4fb 100644 --- a/pkg/front_end/testcases/general/redirecting_factory.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/redirecting_factory.dart.textual_outline_modelled.expect @@ -20,8 +20,6 @@ class Builder { class Mix = Base with Mixin; -class Mixin {} - class SimpleCase { factory SimpleCase() = SimpleCaseImpl; } @@ -33,3 +31,4 @@ class SimpleCaseImpl implements SimpleCase { class SimpleCaseImpl2 implements SimpleCaseImpl {} main() {} +mixin Mixin {} diff --git a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.expect index 27e2e84e873..70aadaafea1 100644 --- a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.expect +++ b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.expect @@ -65,10 +65,7 @@ class Base extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Mix = self::Base with self::Mixin { synthetic constructor •() → self::Mix diff --git a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.modular.expect b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.modular.expect index 27e2e84e873..70aadaafea1 100644 --- a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.modular.expect @@ -65,10 +65,7 @@ class Base extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Mix = self::Base with self::Mixin { synthetic constructor •() → self::Mix diff --git a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.outline.expect index cff6670c275..0d81819c0b0 100644 --- a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.outline.expect @@ -55,9 +55,7 @@ class Base extends core::Object { synthetic constructor •() → self::Base ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Mix = self::Base with self::Mixin { synthetic constructor •() → self::Mix diff --git a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.transformed.expect index 793a07eecf6..e531ece1cd4 100644 --- a/pkg/front_end/testcases/general/redirecting_factory.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/redirecting_factory.dart.weak.transformed.expect @@ -65,10 +65,7 @@ class Base extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } class Mix extends self::Base implements self::Mixin /*isEliminatedMixin*/ { synthetic constructor •() → self::Mix diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.strong.expect b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.strong.expect index 08d2d5945a2..73203aa7000 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.strong.expect +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.strong.expect @@ -57,10 +57,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix2::C { - synthetic constructor •() → mix2::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix2::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; @@ -108,10 +105,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix::C { - synthetic constructor •() → mix::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.strong.transformed.expect b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.strong.transformed.expect index 752584768d6..769f65807a4 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.strong.transformed.expect @@ -60,10 +60,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix2::C { - synthetic constructor •() → mix2::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix2::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; @@ -111,10 +108,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix::C { - synthetic constructor •() → mix::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.expect b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.expect index 08d2d5945a2..73203aa7000 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.expect +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.expect @@ -57,10 +57,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix2::C { - synthetic constructor •() → mix2::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix2::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; @@ -108,10 +105,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix::C { - synthetic constructor •() → mix::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.modular.expect b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.modular.expect index 28fa3da9ca8..ef0689d798b 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.modular.expect @@ -57,10 +57,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix2::C { - synthetic constructor •() → mix2::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix2::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.outline.expect b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.outline.expect index 6e11fb9ae49..423ea64cd4a 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.outline.expect @@ -36,9 +36,7 @@ abstract class C extends core::Object { synthetic constructor •() → self2::C ; } -abstract class D extends core::Object implements self2::C { - synthetic constructor •() → self2::D - ; +abstract class D extends core::Object implements self2::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool ; method x() → void @@ -74,9 +72,7 @@ abstract class C extends core::Object { synthetic constructor •() → self3::C ; } -abstract class D extends core::Object implements self3::C { - synthetic constructor •() → self3::D - ; +abstract class D extends core::Object implements self3::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool ; method x() → void diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.transformed.expect b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.transformed.expect index 752584768d6..769f65807a4 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.dart.weak.transformed.expect @@ -60,10 +60,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix2::C { - synthetic constructor •() → mix2::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix2::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; @@ -111,10 +108,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix::C { - synthetic constructor •() → mix::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.strong.expect b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.strong.expect index 137cd679ada..f4bd910f21b 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.strong.expect +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.strong.expect @@ -57,10 +57,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix::C { - synthetic constructor •() → mix::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; @@ -105,10 +102,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix2::C { - synthetic constructor •() → mix2::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix2::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.strong.transformed.expect b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.strong.transformed.expect index 45c1fabde3c..5c498f90951 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.strong.transformed.expect @@ -60,10 +60,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix::C { - synthetic constructor •() → mix::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; @@ -111,10 +108,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix2::C { - synthetic constructor •() → mix2::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix2::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.expect b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.expect index 137cd679ada..f4bd910f21b 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.expect +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.expect @@ -57,10 +57,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix::C { - synthetic constructor •() → mix::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; @@ -105,10 +102,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix2::C { - synthetic constructor •() → mix2::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix2::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.modular.expect b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.modular.expect index 137cd679ada..f4bd910f21b 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.modular.expect @@ -57,10 +57,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix::C { - synthetic constructor •() → mix::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; @@ -105,10 +102,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix2::C { - synthetic constructor •() → mix2::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix2::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.outline.expect b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.outline.expect index 3fcb3378a65..39a05424152 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.outline.expect @@ -36,9 +36,7 @@ abstract class C extends core::Object { synthetic constructor •() → self2::C ; } -abstract class D extends core::Object implements self2::C { - synthetic constructor •() → self2::D - ; +abstract class D extends core::Object implements self2::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool ; method x() → void @@ -74,9 +72,7 @@ abstract class C extends core::Object { synthetic constructor •() → self3::C ; } -abstract class D extends core::Object implements self3::C { - synthetic constructor •() → self3::D - ; +abstract class D extends core::Object implements self3::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool ; method x() → void diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.transformed.expect b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.transformed.expect index 45c1fabde3c..5c498f90951 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill.no_link.dart.weak.transformed.expect @@ -60,10 +60,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix::C { - synthetic constructor •() → mix::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; @@ -111,10 +108,7 @@ abstract class C extends core::Object { : super core::Object::•() ; } -abstract class D extends core::Object implements mix2::C { - synthetic constructor •() → mix2::D - : super core::Object::•() - ; +abstract class D extends core::Object implements mix2::C /*isMixinDeclaration*/ { operator ==(core::Object dynamic) → core::bool { core::print("D.=="); return true; diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill_lib1.dart b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill_lib1.dart index 38ee44920cd..098fb7c3ff8 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill_lib1.dart +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill_lib1.dart @@ -3,18 +3,22 @@ // BSD-style license that can be found in the LICENSE file. class Foo extends B with D {} + abstract class B implements C { - bool operator==(dynamic) { + bool operator ==(dynamic) { print("B.=="); return true; } + void x() { print("B.x"); } } + abstract class C {} -abstract class D implements C { - bool operator==(dynamic) { + +mixin D implements C { + bool operator ==(dynamic) { print("D.=="); return true; } diff --git a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill_lib2.dart b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill_lib2.dart index 38ee44920cd..098fb7c3ff8 100644 --- a/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill_lib2.dart +++ b/pkg/front_end/testcases/general/with_dependencies/mixin_from_dill/mixin_from_dill_lib2.dart @@ -3,18 +3,22 @@ // BSD-style license that can be found in the LICENSE file. class Foo extends B with D {} + abstract class B implements C { - bool operator==(dynamic) { + bool operator ==(dynamic) { print("B.=="); return true; } + void x() { print("B.x"); } } + abstract class C {} -abstract class D implements C { - bool operator==(dynamic) { + +mixin D implements C { + bool operator ==(dynamic) { print("D.=="); return true; } diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart index ed6e1beeeff..e95c39e5b17 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart @@ -4,9 +4,9 @@ class I {} -class M0 implements I {} +mixin M0 implements I {} -class M1 implements I {} +mixin M1 implements I {} // M0 inferred as M0 // M1 inferred as M1 diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.strong.expect index 45162819d5f..75511a6f71b 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.strong.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.strong.expect @@ -15,15 +15,9 @@ class I ex : super core::Object::•() ; } -class M0 extends core::Object implements self::I { - synthetic constructor •() → self::M0 - : super core::Object::•() - ; +abstract class M0 extends core::Object implements self::I /*isMixinDeclaration*/ { } -class M1 extends core::Object implements self::I { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object implements self::I /*isMixinDeclaration*/ { } abstract class _A&Object&M0 = core::Object with self::M0 /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_A&Object&M0 diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline.expect index 18ceb4dc44f..7438466e415 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline.expect @@ -1,8 +1,7 @@ class I {} -class M0 implements I {} - -class M1 implements I {} +mixin M0 implements I {} +mixin M1 implements I {} class A extends Object with M0, M1 {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline_modelled.expect index e3a249c5e05..0b88a567bbd 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline_modelled.expect @@ -2,8 +2,6 @@ class A extends Object with M0, M1 {} class I {} -class M0 implements I {} - -class M1 implements I {} - main() {} +mixin M0 implements I {} +mixin M1 implements I {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.expect index 45162819d5f..75511a6f71b 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.expect @@ -15,15 +15,9 @@ class I ex : super core::Object::•() ; } -class M0 extends core::Object implements self::I { - synthetic constructor •() → self::M0 - : super core::Object::•() - ; +abstract class M0 extends core::Object implements self::I /*isMixinDeclaration*/ { } -class M1 extends core::Object implements self::I { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object implements self::I /*isMixinDeclaration*/ { } abstract class _A&Object&M0 = core::Object with self::M0 /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_A&Object&M0 diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.modular.expect index 45162819d5f..75511a6f71b 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.modular.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.modular.expect @@ -15,15 +15,9 @@ class I ex : super core::Object::•() ; } -class M0 extends core::Object implements self::I { - synthetic constructor •() → self::M0 - : super core::Object::•() - ; +abstract class M0 extends core::Object implements self::I /*isMixinDeclaration*/ { } -class M1 extends core::Object implements self::I { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object implements self::I /*isMixinDeclaration*/ { } abstract class _A&Object&M0 = core::Object with self::M0 /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_A&Object&M0 diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.outline.expect index e7adb9d396c..1af9dd05f1f 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.outline.expect @@ -14,13 +14,9 @@ class I ex synthetic constructor •() → self::I ; } -class M0 extends core::Object implements self::I { - synthetic constructor •() → self::M0 - ; +abstract class M0 extends core::Object implements self::I /*isMixinDeclaration*/ { } -class M1 extends core::Object implements self::I { - synthetic constructor •() → self::M1 - ; +abstract class M1 extends core::Object implements self::I /*isMixinDeclaration*/ { } abstract class _A&Object&M0 = core::Object with self::M0 /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_A&Object&M0 diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart index 64d4550a49c..321d2f0d527 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart @@ -4,9 +4,9 @@ class I {} -class M0 implements I> {} +mixin M0 implements I> {} -class M1 implements I, T> {} +mixin M1 implements I, T> {} // No solution, even with unification, since solution // requires that I, U0> == I> diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.strong.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.strong.expect index b555a747798..cba778bcbbc 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.strong.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.strong.expect @@ -16,15 +16,9 @@ class I ex : super core::Object::•() ; } -class M0 extends core::Object implements self::I> { - synthetic constructor •() → self::M0 - : super core::Object::•() - ; +abstract class M0 extends core::Object implements self::I> /*isMixinDeclaration*/ { } -class M1 extends core::Object implements self::I, self::M1::T%> { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object implements self::I, self::M1::T%> /*isMixinDeclaration*/ { } abstract class _A&Object&M0 = core::Object with self::M0 /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_A&Object&M0 diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline.expect index 875a3036dc9..ad1e9fc230d 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline.expect @@ -1,8 +1,7 @@ class I {} -class M0 implements I> {} - -class M1 implements I, T> {} +mixin M0 implements I> {} +mixin M1 implements I, T> {} class A extends Object with M0, M1 {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline_modelled.expect index e8a53112588..b6be7b7ca0e 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline_modelled.expect @@ -2,8 +2,6 @@ class A extends Object with M0, M1 {} class I {} -class M0 implements I> {} - -class M1 implements I, T> {} - main() {} +mixin M0 implements I> {} +mixin M1 implements I, T> {} diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.expect index b555a747798..cba778bcbbc 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.expect @@ -16,15 +16,9 @@ class I ex : super core::Object::•() ; } -class M0 extends core::Object implements self::I> { - synthetic constructor •() → self::M0 - : super core::Object::•() - ; +abstract class M0 extends core::Object implements self::I> /*isMixinDeclaration*/ { } -class M1 extends core::Object implements self::I, self::M1::T%> { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object implements self::I, self::M1::T%> /*isMixinDeclaration*/ { } abstract class _A&Object&M0 = core::Object with self::M0 /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_A&Object&M0 diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.modular.expect index b555a747798..cba778bcbbc 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.modular.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.modular.expect @@ -16,15 +16,9 @@ class I ex : super core::Object::•() ; } -class M0 extends core::Object implements self::I> { - synthetic constructor •() → self::M0 - : super core::Object::•() - ; +abstract class M0 extends core::Object implements self::I> /*isMixinDeclaration*/ { } -class M1 extends core::Object implements self::I, self::M1::T%> { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object implements self::I, self::M1::T%> /*isMixinDeclaration*/ { } abstract class _A&Object&M0 = core::Object with self::M0 /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_A&Object&M0 diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.outline.expect index 102a3df6de1..301e72ccb64 100644 --- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.outline.expect +++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.outline.expect @@ -15,13 +15,9 @@ class I ex synthetic constructor •() → self::I ; } -class M0 extends core::Object implements self::I> { - synthetic constructor •() → self::M0 - ; +abstract class M0 extends core::Object implements self::I> /*isMixinDeclaration*/ { } -class M1 extends core::Object implements self::I, self::M1::T%> { - synthetic constructor •() → self::M1 - ; +abstract class M1 extends core::Object implements self::I, self::M1::T%> /*isMixinDeclaration*/ { } abstract class _A&Object&M0 = core::Object with self::M0 /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_A&Object&M0 diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart b/pkg/front_end/testcases/nnbd/mix_in_field.dart index e225fd750af..4e01481ff2f 100644 --- a/pkg/front_end/testcases/nnbd/mix_in_field.dart +++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart @@ -4,7 +4,7 @@ import "dart:async"; -class Mixin { +mixin Mixin { FutureOr m; } diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.expect index 8015a153ad9..0d48da77a16 100644 --- a/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.expect +++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.expect @@ -4,11 +4,8 @@ import "dart:core" as core; import "dart:async"; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field FutureOrm = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; } abstract class _Class&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/ { synthetic constructor •() → self::_Class&Object&Mixin diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.transformed.expect index 632f92c8cc3..996df0cb7db 100644 --- a/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.strong.transformed.expect @@ -4,11 +4,8 @@ import "dart:core" as core; import "dart:async"; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field FutureOrm = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; } abstract class _Class&Object&Mixin extends core::Object implements self::Mixin /*isAnonymousMixin,isEliminatedMixin*/ { field FutureOrm = null; diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline.expect index 4abf4aa203f..e8827a39110 100644 --- a/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline.expect @@ -1,6 +1,6 @@ import "dart:async"; -class Mixin { +mixin Mixin { FutureOr m; } diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline_modelled.expect index 48243fba538..211f96f6ff6 100644 --- a/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.textual_outline_modelled.expect @@ -4,8 +4,7 @@ class Class extends Object with Mixin { test(dynamic t1) {} } -class Mixin { +main() {} +mixin Mixin { FutureOr m; } - -main() {} diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.expect index 8015a153ad9..0d48da77a16 100644 --- a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.expect @@ -4,11 +4,8 @@ import "dart:core" as core; import "dart:async"; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field FutureOrm = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; } abstract class _Class&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/ { synthetic constructor •() → self::_Class&Object&Mixin diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.modular.expect index 8015a153ad9..0d48da77a16 100644 --- a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.modular.expect @@ -4,11 +4,8 @@ import "dart:core" as core; import "dart:async"; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field FutureOrm = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; } abstract class _Class&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/ { synthetic constructor •() → self::_Class&Object&Mixin diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.outline.expect index 06abbef7c40..416f60926b5 100644 --- a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.outline.expect @@ -4,10 +4,8 @@ import "dart:core" as core; import "dart:async"; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field FutureOrm; - synthetic constructor •() → self::Mixin - ; } abstract class _Class&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/ { synthetic constructor •() → self::_Class&Object&Mixin diff --git a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.transformed.expect index 632f92c8cc3..996df0cb7db 100644 --- a/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd/mix_in_field.dart.weak.transformed.expect @@ -4,11 +4,8 @@ import "dart:core" as core; import "dart:async"; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field FutureOrm = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; } abstract class _Class&Object&Mixin extends core::Object implements self::Mixin /*isAnonymousMixin,isEliminatedMixin*/ { field FutureOrm = null; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart index 7e7cb735805..4f27e2d6373 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart @@ -25,7 +25,7 @@ class Super { int extendedFieldImplementedMethod = 0; } -class Mixin { +mixin Mixin { void mixedInMethodDeclaredGetter() {} void mixedInMethodDeclaredSetter() {} void mixedInMethodDeclaredField() {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.textual_outline.expect index 079bf85a69a..9240e7cfa20 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.textual_outline.expect @@ -19,7 +19,7 @@ class Super { int extendedFieldImplementedMethod = 0; } -class Mixin { +mixin Mixin { void mixedInMethodDeclaredGetter() {} void mixedInMethodDeclaredSetter() {} void mixedInMethodDeclaredField() {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.textual_outline_modelled.expect index 09b395bf618..8de471d3776 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.textual_outline_modelled.expect @@ -59,27 +59,6 @@ class Interface2 { void set implementedMethodImplementedSetter(int value) {} } -class Mixin { - int extendedMethodMixedInField = 0; - int get extendedMethodMixedInGetter => 0; - int get mixedInGetterDeclaredMethod => 0; - int get mixedInGetterImplementedMethod => 0; - int mixedInFieldDeclaredMethod = 0; - int mixedInFieldImplementedMethod = 0; - void extendedFieldMixedInMethod() {} - void extendedGetterMixedInMethod() {} - void extendedSetterMixedInMethod() {} - void mixedInMethodDeclaredField() {} - void mixedInMethodDeclaredGetter() {} - void mixedInMethodDeclaredSetter() {} - void mixedInMethodImplementedField() {} - void mixedInMethodImplementedGetter() {} - void mixedInMethodImplementedSetter() {} - void set extendedMethodMixedInSetter(int value) {} - void set mixedInSetterDeclaredMethod(int value) {} - void set mixedInSetterImplementedMethod(int value) {} -} - class Super { int extendedFieldDeclaredMethod = 0; int extendedFieldImplementedMethod = 0; @@ -102,3 +81,23 @@ class Super { } main() {} +mixin Mixin { + int extendedMethodMixedInField = 0; + int get extendedMethodMixedInGetter => 0; + int get mixedInGetterDeclaredMethod => 0; + int get mixedInGetterImplementedMethod => 0; + int mixedInFieldDeclaredMethod = 0; + int mixedInFieldImplementedMethod = 0; + void extendedFieldMixedInMethod() {} + void extendedGetterMixedInMethod() {} + void extendedSetterMixedInMethod() {} + void mixedInMethodDeclaredField() {} + void mixedInMethodDeclaredGetter() {} + void mixedInMethodDeclaredSetter() {} + void mixedInMethodImplementedField() {} + void mixedInMethodImplementedGetter() {} + void mixedInMethodImplementedSetter() {} + void set extendedMethodMixedInSetter(int value) {} + void set mixedInSetterDeclaredMethod(int value) {} + void set mixedInSetterImplementedMethod(int value) {} +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.weak.expect index f1538ced03e..c815ff8ff9f 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.weak.expect @@ -174,13 +174,10 @@ class Super extends core::Object { return 0; set extendedSetterImplementedMethod(core::int value) → void {} } -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field core::int mixedInFieldDeclaredMethod = 0; field core::int mixedInFieldImplementedMethod = 0; field core::int extendedMethodMixedInField = 0; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; method mixedInMethodDeclaredGetter() → void {} method mixedInMethodDeclaredSetter() → void {} method mixedInMethodDeclaredField() → void {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.weak.modular.expect index f1538ced03e..c815ff8ff9f 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.weak.modular.expect @@ -174,13 +174,10 @@ class Super extends core::Object { return 0; set extendedSetterImplementedMethod(core::int value) → void {} } -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field core::int mixedInFieldDeclaredMethod = 0; field core::int mixedInFieldImplementedMethod = 0; field core::int extendedMethodMixedInField = 0; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; method mixedInMethodDeclaredGetter() → void {} method mixedInMethodDeclaredSetter() → void {} method mixedInMethodDeclaredField() → void {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.weak.outline.expect index de6755b5f0d..667db3688e0 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/conflict.dart.weak.outline.expect @@ -185,12 +185,10 @@ class Super extends core::Object { set extendedSetterImplementedMethod(core::int value) → void ; } -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field core::int mixedInFieldDeclaredMethod; field core::int mixedInFieldImplementedMethod; field core::int extendedMethodMixedInField; - synthetic constructor •() → self::Mixin - ; method mixedInMethodDeclaredGetter() → void ; method mixedInMethodDeclaredSetter() → void diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart index 32d8eed179d..82012ddd082 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart @@ -7,11 +7,11 @@ // If a parameter is directly or indirectly a covariant override, its type in // the method tear-off should become Object?. -class M1 { +mixin M1 { method(covariant int a, int b) {} } -class M2 { +mixin M2 { method(int a, covariant int b) {} } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.textual_outline.expect index 99a4f423147..75e91b0268d 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.textual_outline.expect @@ -1,8 +1,7 @@ -class M1 { +mixin M1 { method(covariant int a, int b) {} } - -class M2 { +mixin M2 { method(int a, covariant int b) {} } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.textual_outline_modelled.expect index dd47260b6e9..ba940c4bd8f 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.textual_outline_modelled.expect @@ -38,14 +38,6 @@ class Interface2 { void method(int a, covariant int b, int c, int d, int e) {} } -class M1 { - method(covariant int a, int b) {} -} - -class M2 { - method(int a, covariant int b) {} -} - class Mixed extends Superclass with Mixin1, Mixin2 implements Interface1, Interface2 {} @@ -74,4 +66,10 @@ class Superclass { void method(int a, int b, int c, int d, covariant int e) {} } +mixin M1 { + method(covariant int a, int b) {} +} +mixin M2 { + method(int a, covariant int b) {} +} void main() {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.expect index 2e8e69d468d..4ee9199bde2 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.expect @@ -2,16 +2,10 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method method(covariant-by-declaration core::int a, core::int b) → dynamic {} } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method method(core::int a, covariant-by-declaration core::int b) → dynamic {} } abstract class _C&Object&M1 = core::Object with self::M1 /*isAnonymousMixin,hasConstConstructor*/ { diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.modular.expect index 2e8e69d468d..4ee9199bde2 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.modular.expect @@ -2,16 +2,10 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method method(covariant-by-declaration core::int a, core::int b) → dynamic {} } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method method(core::int a, covariant-by-declaration core::int b) → dynamic {} } abstract class _C&Object&M1 = core::Object with self::M1 /*isAnonymousMixin,hasConstConstructor*/ { diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.outline.expect index cd1db8f6c52..8d2d2d3ac31 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.outline.expect @@ -2,15 +2,11 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M1 extends core::Object { - synthetic constructor •() → self::M1 - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method method(covariant-by-declaration core::int a, core::int b) → dynamic ; } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method method(core::int a, covariant-by-declaration core::int b) → dynamic ; } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.transformed.expect index 56bff8d6ea8..45c78248964 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/covariance.dart.weak.transformed.expect @@ -2,16 +2,10 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class M1 extends core::Object { - synthetic constructor •() → self::M1 - : super core::Object::•() - ; +abstract class M1 extends core::Object /*isMixinDeclaration*/ { method method(covariant-by-declaration core::int a, core::int b) → dynamic {} } -class M2 extends core::Object { - synthetic constructor •() → self::M2 - : super core::Object::•() - ; +abstract class M2 extends core::Object /*isMixinDeclaration*/ { method method(core::int a, covariant-by-declaration core::int b) → dynamic {} } abstract class _C&Object&M1 extends core::Object implements self::M1 /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart index 92a468126ca..fda477c2be6 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart @@ -13,7 +13,7 @@ class Super { void extendedDuplicate2() {} } -class Mixin { +mixin Mixin { //void mixinDuplicate1() {} //int get mixinDuplicate1 => 42; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.textual_outline.expect index 16477032030..86e3ca01319 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { void extendedDuplicate2() {} } -class Mixin { +mixin Mixin { void mixedInDuplicate1() {} void mixedInDuplicate2() {} } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.textual_outline_modelled.expect index 5255f14c7ba..4160df5f7c5 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.textual_outline_modelled.expect @@ -26,11 +26,6 @@ class Interface { void interfaceDuplicate2() {} } -class Mixin { - void mixedInDuplicate1() {} - void mixedInDuplicate2() {} -} - class Super { int get superDuplicate1 => 42; int get superDuplicate2 => 42; @@ -41,3 +36,7 @@ class Super { } main() {} +mixin Mixin { + void mixedInDuplicate1() {} + void mixedInDuplicate2() {} +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.weak.expect index e0d13b292bf..8804f9de247 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.weak.expect @@ -120,10 +120,7 @@ class Super extends core::Object { method extendedDuplicate1() → void {} method extendedDuplicate2() → void {} } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method mixedInDuplicate1() → void {} method mixedInDuplicate2() → void {} } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.weak.modular.expect index e0d13b292bf..8804f9de247 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.weak.modular.expect @@ -120,10 +120,7 @@ class Super extends core::Object { method extendedDuplicate1() → void {} method extendedDuplicate2() → void {} } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method mixedInDuplicate1() → void {} method mixedInDuplicate2() → void {} } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.weak.outline.expect index 56006916ac6..86fb4464639 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/duplicates.dart.weak.outline.expect @@ -122,9 +122,7 @@ class Super extends core::Object { method extendedDuplicate2() → void ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method mixedInDuplicate1() → void ; method mixedInDuplicate2() → void diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart index 3684037ce8a..51cfcddca1d 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart @@ -11,7 +11,7 @@ class Super { void method(T t) {} } -class Mixin { +mixin Mixin { void method(int t) {} } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.textual_outline.expect index 3b2f2c2bd4b..155e9888f82 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.textual_outline.expect @@ -2,10 +2,9 @@ class Super { void method(T t) {} } -class Mixin { +mixin Mixin { void method(int t) {} } - class Class = Super with Mixin; class Subclass extends Class { diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.textual_outline_modelled.expect index 547b86a3300..6bc334be487 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.textual_outline_modelled.expect @@ -1,9 +1,5 @@ class Class = Super with Mixin; -class Mixin { - void method(int t) {} -} - class Subclass extends Class { void test() {} } @@ -13,3 +9,6 @@ class Super { } main() {} +mixin Mixin { + void method(int t) {} +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.expect index a15a8cc2606..05e9e9ebc57 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.expect @@ -8,10 +8,7 @@ class Super extends core::Object { ; method method(covariant-by-class self::Super::T% t) → void {} } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method(core::int t) → void {} } class Class = self::Super with self::Mixin { diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.modular.expect index a15a8cc2606..05e9e9ebc57 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.modular.expect @@ -8,10 +8,7 @@ class Super extends core::Object { ; method method(covariant-by-class self::Super::T% t) → void {} } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method(core::int t) → void {} } class Class = self::Super with self::Mixin { diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.outline.expect index 3e78979f0e5..bc820697302 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.outline.expect @@ -8,9 +8,7 @@ class Super extends core::Object { method method(covariant-by-class self::Super::T% t) → void ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method(core::int t) → void ; } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.transformed.expect index 5236cd2d43b..cec6f449d35 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/forwarding_stub_call.dart.weak.transformed.expect @@ -8,10 +8,7 @@ class Super extends core::Object { ; method method(covariant-by-class self::Super::T% t) → void {} } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method(core::int t) → void {} } class Class extends self::Super implements self::Mixin /*isEliminatedMixin*/ { diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart index 4b6f4da1892..90693bab8e1 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart @@ -24,7 +24,7 @@ abstract class Super { void set extendedSetterImplementedGetter(int value) {} } -abstract class Mixin { +mixin Mixin { int extendedGetterMixedInField = 0; void set extendedGetterMixedInSetter(int value) {} void set extendedFieldMixedInSetter(int value) {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.textual_outline.expect index c0e76607504..49bbb7546f7 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.textual_outline.expect @@ -16,7 +16,7 @@ abstract class Super { void set extendedSetterImplementedGetter(int value) {} } -abstract class Mixin { +mixin Mixin { int extendedGetterMixedInField = 0; void set extendedGetterMixedInSetter(int value) {} void set extendedFieldMixedInSetter(int value) {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.textual_outline_modelled.expect index ae0e79d2560..01bc37b936e 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.textual_outline_modelled.expect @@ -53,24 +53,6 @@ abstract class Interface2 { void set implementedGetterImplementedSetter(int value) {} } -abstract class Mixin { - String get extendedSetterMixedInGetter => ''; - String get mixedInGetterDeclaredField => ''; - String get mixedInGetterDeclaredSetter => ''; - String get mixedInGetterImplementedField => ''; - String get mixedInGetterImplementedSetter => ''; - final String extendedSetterMixedInField = ''; - final String mixedInFieldDeclaredSetter = ''; - final String mixedInFieldImplementedSetter = ''; - int extendedGetterMixedInField = 0; - void set extendedFieldMixedInSetter(int value) {} - void set extendedGetterMixedInSetter(int value) {} - void set mixedInSetterDeclaredField(int value) {} - void set mixedInSetterDeclaredGetter(int value) {} - void set mixedInSetterImplementedField(int value) {} - void set mixedInSetterImplementedGetter(int value) {} -} - abstract class Super { String get extendedGetterDeclaredField => ''; String get extendedGetterDeclaredSetter => ''; @@ -90,3 +72,20 @@ abstract class Super { } main() {} +mixin Mixin { + String get extendedSetterMixedInGetter => ''; + String get mixedInGetterDeclaredField => ''; + String get mixedInGetterDeclaredSetter => ''; + String get mixedInGetterImplementedField => ''; + String get mixedInGetterImplementedSetter => ''; + final String extendedSetterMixedInField = ''; + final String mixedInFieldDeclaredSetter = ''; + final String mixedInFieldImplementedSetter = ''; + int extendedGetterMixedInField = 0; + void set extendedFieldMixedInSetter(int value) {} + void set extendedGetterMixedInSetter(int value) {} + void set mixedInSetterDeclaredField(int value) {} + void set mixedInSetterDeclaredGetter(int value) {} + void set mixedInSetterImplementedField(int value) {} + void set mixedInSetterImplementedGetter(int value) {} +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.weak.expect index 894fe23b0e7..44e2bfb0e45 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.weak.expect @@ -415,14 +415,11 @@ abstract class Super extends core::Object { set extendedSetterMixedInGetter(core::int value) → void {} set extendedSetterImplementedGetter(core::int value) → void {} } -abstract class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field core::int extendedGetterMixedInField = 0; final field core::String extendedSetterMixedInField = ""; final field core::String mixedInFieldDeclaredSetter = ""; final field core::String mixedInFieldImplementedSetter = ""; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; set extendedGetterMixedInSetter(core::int value) → void {} set extendedFieldMixedInSetter(core::int value) → void {} get extendedSetterMixedInGetter() → core::String diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.weak.modular.expect index 894fe23b0e7..44e2bfb0e45 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.weak.modular.expect @@ -415,14 +415,11 @@ abstract class Super extends core::Object { set extendedSetterMixedInGetter(core::int value) → void {} set extendedSetterImplementedGetter(core::int value) → void {} } -abstract class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field core::int extendedGetterMixedInField = 0; final field core::String extendedSetterMixedInField = ""; final field core::String mixedInFieldDeclaredSetter = ""; final field core::String mixedInFieldImplementedSetter = ""; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; set extendedGetterMixedInSetter(core::int value) → void {} set extendedFieldMixedInSetter(core::int value) → void {} get extendedSetterMixedInGetter() → core::String diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.weak.outline.expect index 8d47f8b5e08..117906809c6 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/getter_setter.dart.weak.outline.expect @@ -420,13 +420,11 @@ abstract class Super extends core::Object { set extendedSetterImplementedGetter(core::int value) → void ; } -abstract class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field core::int extendedGetterMixedInField; final field core::String extendedSetterMixedInField; final field core::String mixedInFieldDeclaredSetter; final field core::String mixedInFieldImplementedSetter; - synthetic constructor •() → self::Mixin - ; set extendedGetterMixedInSetter(core::int value) → void ; set extendedFieldMixedInSetter(core::int value) → void diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart index 1a5a9c215d0..fc4decbede0 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart @@ -6,7 +6,7 @@ class Super { num extendedMethod() => 0; } -class Mixin { +mixin Mixin { num mixedInMethod() => 0; } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.textual_outline.expect index 37ad3f04c6a..d5e148fd77c 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.textual_outline.expect @@ -2,7 +2,7 @@ class Super { num extendedMethod() => 0; } -class Mixin { +mixin Mixin { num mixedInMethod() => 0; } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.textual_outline_modelled.expect index 47ed758461e..5b2a853f90c 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.textual_outline_modelled.expect @@ -43,12 +43,11 @@ class ClassImplementsWithNoSuchMethod implements Interface2 { noSuchMethod(Invocation invocation) {} } -class Mixin { - num mixedInMethod() => 0; -} - class Super { num extendedMethod() => 0; } main() {} +mixin Mixin { + num mixedInMethod() => 0; +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.expect index 817f5ef0059..a98bfd879aa 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.expect @@ -130,10 +130,7 @@ class Super extends core::Object { method extendedMethod() → core::num return 0; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method mixedInMethod() → core::num return 0; } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.modular.expect index 817f5ef0059..a98bfd879aa 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.modular.expect @@ -130,10 +130,7 @@ class Super extends core::Object { method extendedMethod() → core::num return 0; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method mixedInMethod() → core::num return 0; } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.outline.expect index 852b218b124..1c9926a8baf 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.outline.expect @@ -129,9 +129,7 @@ class Super extends core::Object { method extendedMethod() → core::num ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method mixedInMethod() → core::num ; } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.transformed.expect index 28f47ab80be..7af7773d1aa 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/inherited_implements.dart.weak.transformed.expect @@ -130,10 +130,7 @@ class Super extends core::Object { method extendedMethod() → core::num return 0; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method mixedInMethod() → core::num return 0; } diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart index a302ec1211f..d7fbba382a8 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart @@ -16,7 +16,7 @@ class Super { abstract int extendedAbstractMixedInAbstractField; } -class Mixin { +mixin Mixin { int mixedInConcreteField = 0; abstract int mixedInAbstractField; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.textual_outline.expect index e0858b6ae62..934b3d25941 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.textual_outline.expect @@ -7,7 +7,7 @@ class Super { abstract int extendedAbstractMixedInAbstractField; } -class Mixin { +mixin Mixin { int mixedInConcreteField = 0; abstract int mixedInAbstractField; int extendedConcreteMixedInConcreteField = 0; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.textual_outline_modelled.expect index 9c90c6f9466..bc0367a448d 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.textual_outline_modelled.expect @@ -1,14 +1,5 @@ class ClassMixin extends Super with Mixin {} -class Mixin { - abstract int extendedAbstractMixedInAbstractField; - abstract int extendedConcreteMixedInAbstractField; - abstract int mixedInAbstractField; - int extendedAbstractMixedInConcreteField = 0; - int extendedConcreteMixedInConcreteField = 0; - int mixedInConcreteField = 0; -} - class NamedMixin = Super with Mixin; class Super { @@ -21,3 +12,11 @@ class Super { } main() {} +mixin Mixin { + abstract int extendedAbstractMixedInAbstractField; + abstract int extendedConcreteMixedInAbstractField; + abstract int mixedInAbstractField; + int extendedAbstractMixedInConcreteField = 0; + int extendedConcreteMixedInConcreteField = 0; + int mixedInConcreteField = 0; +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.expect index 185fc0d132b..62ae2bd4ae8 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.expect @@ -36,40 +36,6 @@ library /*isNonNullableByDefault*/; // abstract int extendedAbstractMixedInConcreteField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: -// - Mixin.extendedAbstractMixedInAbstractField -// - Mixin.extendedAbstractMixedInAbstractField= -// - Mixin.extendedConcreteMixedInAbstractField -// - Mixin.extendedConcreteMixedInAbstractField= -// - Mixin.mixedInAbstractField -// - Mixin.mixedInAbstractField= -// Try to either -// - provide an implementation, -// - inherit an implementation from a superclass or mixin, -// - mark the class as abstract, or -// - provide a 'noSuchMethod' implementation. -// -// class Mixin { -// ^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:30:16: Context: 'Mixin.extendedAbstractMixedInAbstractField' is defined here. -// abstract int extendedAbstractMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:30:16: Context: 'Mixin.extendedAbstractMixedInAbstractField=' is defined here. -// abstract int extendedAbstractMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:28:16: Context: 'Mixin.extendedConcreteMixedInAbstractField' is defined here. -// abstract int extendedConcreteMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:28:16: Context: 'Mixin.extendedConcreteMixedInAbstractField=' is defined here. -// abstract int extendedConcreteMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:22:16: Context: 'Mixin.mixedInAbstractField' is defined here. -// abstract int mixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:22:16: Context: 'Mixin.mixedInAbstractField=' is defined here. -// abstract int mixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^ -// // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:33:7: Error: The non-abstract class 'ClassMixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractField // - Mixin.extendedAbstractMixedInAbstractField= @@ -171,13 +137,10 @@ class Super extends core::Object { abstract get extendedAbstractMixedInAbstractField() → core::int; abstract set extendedAbstractMixedInAbstractField(core::int #externalFieldValue) → void; } -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field core::int mixedInConcreteField = 0; field core::int extendedConcreteMixedInConcreteField = 0; field core::int extendedAbstractMixedInConcreteField = 0; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; abstract get mixedInAbstractField() → core::int; abstract set mixedInAbstractField(core::int #externalFieldValue) → void; abstract get extendedConcreteMixedInAbstractField() → core::int; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.modular.expect index 185fc0d132b..62ae2bd4ae8 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.modular.expect @@ -36,40 +36,6 @@ library /*isNonNullableByDefault*/; // abstract int extendedAbstractMixedInConcreteField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: -// - Mixin.extendedAbstractMixedInAbstractField -// - Mixin.extendedAbstractMixedInAbstractField= -// - Mixin.extendedConcreteMixedInAbstractField -// - Mixin.extendedConcreteMixedInAbstractField= -// - Mixin.mixedInAbstractField -// - Mixin.mixedInAbstractField= -// Try to either -// - provide an implementation, -// - inherit an implementation from a superclass or mixin, -// - mark the class as abstract, or -// - provide a 'noSuchMethod' implementation. -// -// class Mixin { -// ^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:30:16: Context: 'Mixin.extendedAbstractMixedInAbstractField' is defined here. -// abstract int extendedAbstractMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:30:16: Context: 'Mixin.extendedAbstractMixedInAbstractField=' is defined here. -// abstract int extendedAbstractMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:28:16: Context: 'Mixin.extendedConcreteMixedInAbstractField' is defined here. -// abstract int extendedConcreteMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:28:16: Context: 'Mixin.extendedConcreteMixedInAbstractField=' is defined here. -// abstract int extendedConcreteMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:22:16: Context: 'Mixin.mixedInAbstractField' is defined here. -// abstract int mixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:22:16: Context: 'Mixin.mixedInAbstractField=' is defined here. -// abstract int mixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^ -// // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:33:7: Error: The non-abstract class 'ClassMixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractField // - Mixin.extendedAbstractMixedInAbstractField= @@ -171,13 +137,10 @@ class Super extends core::Object { abstract get extendedAbstractMixedInAbstractField() → core::int; abstract set extendedAbstractMixedInAbstractField(core::int #externalFieldValue) → void; } -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field core::int mixedInConcreteField = 0; field core::int extendedConcreteMixedInConcreteField = 0; field core::int extendedAbstractMixedInConcreteField = 0; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; abstract get mixedInAbstractField() → core::int; abstract set mixedInAbstractField(core::int #externalFieldValue) → void; abstract get extendedConcreteMixedInAbstractField() → core::int; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.outline.expect index 26c7cbd31d9..ccd1fdc71b6 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.outline.expect @@ -36,40 +36,6 @@ library /*isNonNullableByDefault*/; // abstract int extendedAbstractMixedInConcreteField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: -// - Mixin.extendedAbstractMixedInAbstractField -// - Mixin.extendedAbstractMixedInAbstractField= -// - Mixin.extendedConcreteMixedInAbstractField -// - Mixin.extendedConcreteMixedInAbstractField= -// - Mixin.mixedInAbstractField -// - Mixin.mixedInAbstractField= -// Try to either -// - provide an implementation, -// - inherit an implementation from a superclass or mixin, -// - mark the class as abstract, or -// - provide a 'noSuchMethod' implementation. -// -// class Mixin { -// ^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:30:16: Context: 'Mixin.extendedAbstractMixedInAbstractField' is defined here. -// abstract int extendedAbstractMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:30:16: Context: 'Mixin.extendedAbstractMixedInAbstractField=' is defined here. -// abstract int extendedAbstractMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:28:16: Context: 'Mixin.extendedConcreteMixedInAbstractField' is defined here. -// abstract int extendedConcreteMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:28:16: Context: 'Mixin.extendedConcreteMixedInAbstractField=' is defined here. -// abstract int extendedConcreteMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:22:16: Context: 'Mixin.mixedInAbstractField' is defined here. -// abstract int mixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:22:16: Context: 'Mixin.mixedInAbstractField=' is defined here. -// abstract int mixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^ -// // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:33:7: Error: The non-abstract class 'ClassMixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractField // - Mixin.extendedAbstractMixedInAbstractField= @@ -170,12 +136,10 @@ class Super extends core::Object { abstract get extendedAbstractMixedInAbstractField() → core::int; abstract set extendedAbstractMixedInAbstractField(core::int #externalFieldValue) → void; } -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field core::int mixedInConcreteField; field core::int extendedConcreteMixedInConcreteField; field core::int extendedAbstractMixedInConcreteField; - synthetic constructor •() → self::Mixin - ; abstract get mixedInAbstractField() → core::int; abstract set mixedInAbstractField(core::int #externalFieldValue) → void; abstract get extendedConcreteMixedInAbstractField() → core::int; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.transformed.expect index 3e4184117b5..fb1a17fdc4d 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart.weak.transformed.expect @@ -36,40 +36,6 @@ library /*isNonNullableByDefault*/; // abstract int extendedAbstractMixedInConcreteField; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:19:7: Error: The non-abstract class 'Mixin' is missing implementations for these members: -// - Mixin.extendedAbstractMixedInAbstractField -// - Mixin.extendedAbstractMixedInAbstractField= -// - Mixin.extendedConcreteMixedInAbstractField -// - Mixin.extendedConcreteMixedInAbstractField= -// - Mixin.mixedInAbstractField -// - Mixin.mixedInAbstractField= -// Try to either -// - provide an implementation, -// - inherit an implementation from a superclass or mixin, -// - mark the class as abstract, or -// - provide a 'noSuchMethod' implementation. -// -// class Mixin { -// ^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:30:16: Context: 'Mixin.extendedAbstractMixedInAbstractField' is defined here. -// abstract int extendedAbstractMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:30:16: Context: 'Mixin.extendedAbstractMixedInAbstractField=' is defined here. -// abstract int extendedAbstractMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:28:16: Context: 'Mixin.extendedConcreteMixedInAbstractField' is defined here. -// abstract int extendedConcreteMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:28:16: Context: 'Mixin.extendedConcreteMixedInAbstractField=' is defined here. -// abstract int extendedConcreteMixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:22:16: Context: 'Mixin.mixedInAbstractField' is defined here. -// abstract int mixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^ -// pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:22:16: Context: 'Mixin.mixedInAbstractField=' is defined here. -// abstract int mixedInAbstractField; -// ^^^^^^^^^^^^^^^^^^^^ -// // pkg/front_end/testcases/nnbd_mixed/hierarchy/mix_in_field.dart:33:7: Error: The non-abstract class 'ClassMixin' is missing implementations for these members: // - Mixin.extendedAbstractMixedInAbstractField // - Mixin.extendedAbstractMixedInAbstractField= @@ -171,13 +137,10 @@ class Super extends core::Object { abstract get extendedAbstractMixedInAbstractField() → core::int; abstract set extendedAbstractMixedInAbstractField(core::int #externalFieldValue) → void; } -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field core::int mixedInConcreteField = 0; field core::int extendedConcreteMixedInConcreteField = 0; field core::int extendedAbstractMixedInConcreteField = 0; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; abstract get mixedInAbstractField() → core::int; abstract set mixedInAbstractField(core::int #externalFieldValue) → void; abstract get extendedConcreteMixedInAbstractField() → core::int; diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart index 3f86658adde..5b6b9d82e24 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart @@ -22,7 +22,7 @@ class Super { void extendedInstanceImplementedStaticMethod() {} } -class Mixin { +mixin Mixin { static void mixedInStaticDeclaredInstanceMethod() {} void mixedInInstanceDeclaredStaticMethod() {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.textual_outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.textual_outline.expect index fb0f36eb9e2..df67f65e809 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.textual_outline.expect @@ -13,7 +13,7 @@ class Super { void extendedInstanceImplementedStaticMethod() {} } -class Mixin { +mixin Mixin { static void mixedInStaticDeclaredInstanceMethod() {} void mixedInInstanceDeclaredStaticMethod() {} static void mixedInStaticImplementedInstanceMethod() {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.textual_outline_modelled.expect index c1f3a1313e0..9faed15f027 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.textual_outline_modelled.expect @@ -34,15 +34,6 @@ class Interface { void set implementedInstanceSetterDeclaredStaticGetter(int value) {} } -class Mixin { - static void extendedInstanceMixedInStaticMethod() {} - static void mixedInStaticDeclaredInstanceMethod() {} - static void mixedInStaticImplementedInstanceMethod() {} - void extendedStaticMixedInInstanceMethod() {} - void mixedInInstanceDeclaredStaticMethod() {} - void mixedInInstanceImplementedStaticMethod() {} -} - class Super { int get extendedInstanceGetterDeclaredStaticSetter => 0; static int get extendedStaticGetterDeclaredInstanceSetter => 0; @@ -59,3 +50,11 @@ class Super { } main() {} +mixin Mixin { + static void extendedInstanceMixedInStaticMethod() {} + static void mixedInStaticDeclaredInstanceMethod() {} + static void mixedInStaticImplementedInstanceMethod() {} + void extendedStaticMixedInInstanceMethod() {} + void mixedInInstanceDeclaredStaticMethod() {} + void mixedInInstanceImplementedStaticMethod() {} +} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.expect index 91d4ae27acb..6f5749bb359 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.expect @@ -87,10 +87,7 @@ class Super extends core::Object { static method extendedStaticImplementedInstanceMethod() → void {} method extendedInstanceImplementedStaticMethod() → void {} } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { static method mixedInStaticDeclaredInstanceMethod() → void {} method mixedInInstanceDeclaredStaticMethod() → void {} static method mixedInStaticImplementedInstanceMethod() → void {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.modular.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.modular.expect index 91d4ae27acb..6f5749bb359 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.modular.expect @@ -87,10 +87,7 @@ class Super extends core::Object { static method extendedStaticImplementedInstanceMethod() → void {} method extendedInstanceImplementedStaticMethod() → void {} } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { static method mixedInStaticDeclaredInstanceMethod() → void {} method mixedInInstanceDeclaredStaticMethod() → void {} static method mixedInStaticImplementedInstanceMethod() → void {} diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.outline.expect index 05079d432f8..0f457543066 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.outline.expect @@ -96,9 +96,7 @@ class Super extends core::Object { method extendedInstanceImplementedStaticMethod() → void ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { static method mixedInStaticDeclaredInstanceMethod() → void ; method mixedInInstanceDeclaredStaticMethod() → void diff --git a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.transformed.expect index 4477dde0ab4..09661ce1ebf 100644 --- a/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nnbd_mixed/hierarchy/static.dart.weak.transformed.expect @@ -87,10 +87,7 @@ class Super extends core::Object { static method extendedStaticImplementedInstanceMethod() → void {} method extendedInstanceImplementedStaticMethod() → void {} } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { static method mixedInStaticDeclaredInstanceMethod() → void {} method mixedInInstanceDeclaredStaticMethod() → void {} static method mixedInStaticImplementedInstanceMethod() → void {} diff --git a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.expect b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.expect index e88db74fd8c..3d8a4cdeeaa 100644 --- a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.expect +++ b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.expect @@ -23,10 +23,7 @@ class SuperClass extends core::Object { ; method method(covariant-by-declaration core::int i) → void {} } -class Mixin extends core::Object { - synthetic constructor •() → mai::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method(core::num i) → void {} } abstract class _Class&SuperClass&Mixin = mai::SuperClass with mai::Mixin /*isAnonymousMixin*/ { diff --git a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.transformed.expect b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.transformed.expect index e88db74fd8c..3d8a4cdeeaa 100644 --- a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.strong.transformed.expect @@ -23,10 +23,7 @@ class SuperClass extends core::Object { ; method method(covariant-by-declaration core::int i) → void {} } -class Mixin extends core::Object { - synthetic constructor •() → mai::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method(core::num i) → void {} } abstract class _Class&SuperClass&Mixin = mai::SuperClass with mai::Mixin /*isAnonymousMixin*/ { diff --git a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.expect b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.expect index e88db74fd8c..3d8a4cdeeaa 100644 --- a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.expect +++ b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.expect @@ -23,10 +23,7 @@ class SuperClass extends core::Object { ; method method(covariant-by-declaration core::int i) → void {} } -class Mixin extends core::Object { - synthetic constructor •() → mai::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method(core::num i) → void {} } abstract class _Class&SuperClass&Mixin = mai::SuperClass with mai::Mixin /*isAnonymousMixin*/ { diff --git a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.outline.expect b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.outline.expect index 8a68721861b..bfe90610ef7 100644 --- a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.outline.expect +++ b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.outline.expect @@ -21,9 +21,7 @@ class SuperClass extends core::Object { method method(covariant-by-declaration core::int i) → void ; } -class Mixin extends core::Object { - synthetic constructor •() → mai::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method(core::num i) → void ; } diff --git a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.transformed.expect b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.transformed.expect index e88db74fd8c..3d8a4cdeeaa 100644 --- a/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/none/mixin_application_declares/main.dart.weak.transformed.expect @@ -23,10 +23,7 @@ class SuperClass extends core::Object { ; method method(covariant-by-declaration core::int i) → void {} } -class Mixin extends core::Object { - synthetic constructor •() → mai::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method(core::num i) → void {} } abstract class _Class&SuperClass&Mixin = mai::SuperClass with mai::Mixin /*isAnonymousMixin*/ { diff --git a/pkg/front_end/testcases/none/mixin_application_declares/main_lib.dart b/pkg/front_end/testcases/none/mixin_application_declares/main_lib.dart index 6f2553d41cc..81412e1c7e4 100644 --- a/pkg/front_end/testcases/none/mixin_application_declares/main_lib.dart +++ b/pkg/front_end/testcases/none/mixin_application_declares/main_lib.dart @@ -6,7 +6,7 @@ class SuperClass { void method(covariant int i) {} } -class Mixin { +mixin Mixin { void method(num i) {} } diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart b/pkg/front_end/testcases/none/mixin_covariant.dart index 84541149246..d46d24d3312 100644 --- a/pkg/front_end/testcases/none/mixin_covariant.dart +++ b/pkg/front_end/testcases/none/mixin_covariant.dart @@ -9,7 +9,7 @@ class Superclass { String method4(num argument1, covariant num argument2) => "Superclass"; } -class Mixin { +mixin Mixin { String method1(num argument1, num argument2) => "Mixin"; String method2(covariant int argument1, num argument2) => "Mixin"; String method3(num argument1, num argument2) => "Mixin"; diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart.strong.expect b/pkg/front_end/testcases/none/mixin_covariant.dart.strong.expect index ebd83050d01..3c991877d80 100644 --- a/pkg/front_end/testcases/none/mixin_covariant.dart.strong.expect +++ b/pkg/front_end/testcases/none/mixin_covariant.dart.strong.expect @@ -15,10 +15,7 @@ class Superclass extends core::Object { method method4(core::num argument1, covariant-by-declaration core::num argument2) → core::String return "Superclass"; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method1(core::num argument1, core::num argument2) → core::String return "Mixin"; method method2(covariant-by-declaration core::int argument1, core::num argument2) → core::String diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart.strong.transformed.expect b/pkg/front_end/testcases/none/mixin_covariant.dart.strong.transformed.expect index ebd83050d01..3c991877d80 100644 --- a/pkg/front_end/testcases/none/mixin_covariant.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/none/mixin_covariant.dart.strong.transformed.expect @@ -15,10 +15,7 @@ class Superclass extends core::Object { method method4(core::num argument1, covariant-by-declaration core::num argument2) → core::String return "Superclass"; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method1(core::num argument1, core::num argument2) → core::String return "Mixin"; method method2(covariant-by-declaration core::int argument1, core::num argument2) → core::String diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline.expect b/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline.expect index 6f22d96cdda..ec5632b33ce 100644 --- a/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline.expect +++ b/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline.expect @@ -5,7 +5,7 @@ class Superclass { String method4(num argument1, covariant num argument2) => "Superclass"; } -class Mixin { +mixin Mixin { String method1(num argument1, num argument2) => "Mixin"; String method2(covariant int argument1, num argument2) => "Mixin"; String method3(num argument1, num argument2) => "Mixin"; diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline_modelled.expect index 9f3d0b44201..3f1f488d924 100644 --- a/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/none/mixin_covariant.dart.textual_outline_modelled.expect @@ -1,12 +1,5 @@ class Class extends Superclass with Mixin {} -class Mixin { - String method1(num argument1, num argument2) => "Mixin"; - String method2(covariant int argument1, num argument2) => "Mixin"; - String method3(num argument1, num argument2) => "Mixin"; - String method4(covariant int argument1, int argument2) => "Mixin"; -} - class Superclass { String method1(num argument1, num argument2) => "Superclass"; String method2(num argument1, num argument2) => "Superclass"; @@ -15,5 +8,11 @@ class Superclass { } main() {} +mixin Mixin { + String method1(num argument1, num argument2) => "Mixin"; + String method2(covariant int argument1, num argument2) => "Mixin"; + String method3(num argument1, num argument2) => "Mixin"; + String method4(covariant int argument1, int argument2) => "Mixin"; +} void expect(expected, actual) {} void throws(void Function() f) {} diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart.weak.expect b/pkg/front_end/testcases/none/mixin_covariant.dart.weak.expect index ebd83050d01..3c991877d80 100644 --- a/pkg/front_end/testcases/none/mixin_covariant.dart.weak.expect +++ b/pkg/front_end/testcases/none/mixin_covariant.dart.weak.expect @@ -15,10 +15,7 @@ class Superclass extends core::Object { method method4(core::num argument1, covariant-by-declaration core::num argument2) → core::String return "Superclass"; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method1(core::num argument1, core::num argument2) → core::String return "Mixin"; method method2(covariant-by-declaration core::int argument1, core::num argument2) → core::String diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart.weak.modular.expect b/pkg/front_end/testcases/none/mixin_covariant.dart.weak.modular.expect index ebd83050d01..3c991877d80 100644 --- a/pkg/front_end/testcases/none/mixin_covariant.dart.weak.modular.expect +++ b/pkg/front_end/testcases/none/mixin_covariant.dart.weak.modular.expect @@ -15,10 +15,7 @@ class Superclass extends core::Object { method method4(core::num argument1, covariant-by-declaration core::num argument2) → core::String return "Superclass"; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method1(core::num argument1, core::num argument2) → core::String return "Mixin"; method method2(covariant-by-declaration core::int argument1, core::num argument2) → core::String diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart.weak.outline.expect b/pkg/front_end/testcases/none/mixin_covariant.dart.weak.outline.expect index a2ed6ce31fe..213c6302d2d 100644 --- a/pkg/front_end/testcases/none/mixin_covariant.dart.weak.outline.expect +++ b/pkg/front_end/testcases/none/mixin_covariant.dart.weak.outline.expect @@ -14,9 +14,7 @@ class Superclass extends core::Object { method method4(core::num argument1, covariant-by-declaration core::num argument2) → core::String ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method1(core::num argument1, core::num argument2) → core::String ; method method2(covariant-by-declaration core::int argument1, core::num argument2) → core::String diff --git a/pkg/front_end/testcases/none/mixin_covariant.dart.weak.transformed.expect b/pkg/front_end/testcases/none/mixin_covariant.dart.weak.transformed.expect index ebd83050d01..3c991877d80 100644 --- a/pkg/front_end/testcases/none/mixin_covariant.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/none/mixin_covariant.dart.weak.transformed.expect @@ -15,10 +15,7 @@ class Superclass extends core::Object { method method4(core::num argument1, covariant-by-declaration core::num argument2) → core::String return "Superclass"; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method method1(core::num argument1, core::num argument2) → core::String return "Mixin"; method method2(covariant-by-declaration core::int argument1, core::num argument2) → core::String diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart index 30966c943ca..3c76bad26a1 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart +++ b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart @@ -5,7 +5,9 @@ import 'nullable_supertypes.dart' as prefix; class A {} -class B {} + +mixin B {} + class C {} typedef AAlias = A?; @@ -53,5 +55,4 @@ mixin N2 on A, TAlias {} mixin N3 on A implements TAlias {} -main() { -} +main() {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.strong.expect b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.strong.expect index 067e4b2e275..71318fd6cc8 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.strong.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.strong.expect @@ -2,261 +2,261 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:18: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:18: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D1 extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. -// typedef TAlias = T?; -// ^ -// -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. -// class D1a extends prefix.TAlias {} -// ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // // pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// class D1a extends prefix.TAlias {} +// ^ +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. +// typedef TAlias = T?; +// ^ +// +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D1b extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:21: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:21: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D2 implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:32: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:32: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D4 = A with B implements TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:25: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:25: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:13: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:13: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N1 on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. -// typedef TAlias = T?; -// ^ -// -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. -// mixin N1a on prefix.TAlias {} -// ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // // pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// mixin N1a on prefix.TAlias {} +// ^ +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. +// typedef TAlias = T?; +// ^ +// +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N1b on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:16: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:16: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N2 on A, TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:26: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:56:26: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N3 on A implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:7: Error: The type 'TAlias' can't be mixed in. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:7: Error: The type 'TAlias' can't be mixed in. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:7: Error: The type 'TAlias' can't be mixed in. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:7: Error: The type 'TAlias' can't be mixed in. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:18: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:18:18: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C1 extends AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:18:21: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:20:21: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C2 implements AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:20:19: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:22:19: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C3 = A with BAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:22:32: Error: The type 'CAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:24:32: Error: The type 'CAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. // - 'C' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C4 = A with B implements CAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:15:9: Context: The issue arises via this type alias. // typedef CAlias = C?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:24:25: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:26:25: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C5 extends A with BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:26:13: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:28:13: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M1 on AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:28:16: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:30:16: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M2 on A, BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:30:26: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:26: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M3 on A implements BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:18: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:18: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1 extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:19: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1a extends prefix.TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:19: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1b extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:21: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:21: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D2 implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:19: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:19: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:32: Error: The type 'TAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:32: Error: The type 'TAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. // - 'C' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D4 = A with B implements TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:25: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:25: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:13: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:13: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1 on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:14: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1a on prefix.TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:14: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1b on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:16: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:16: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N2 on A, TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:26: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:56:26: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N3 on A implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // @@ -274,10 +274,7 @@ class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C extends core::Object { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.strong.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.strong.transformed.expect index eeb78f7fb44..8a7157375f1 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.strong.transformed.expect @@ -2,261 +2,261 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:18: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:18: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D1 extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. -// typedef TAlias = T?; -// ^ -// -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. -// class D1a extends prefix.TAlias {} -// ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // // pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// class D1a extends prefix.TAlias {} +// ^ +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. +// typedef TAlias = T?; +// ^ +// +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D1b extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:21: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:21: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D2 implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:32: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:32: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D4 = A with B implements TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:25: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:25: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:13: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:13: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N1 on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. -// typedef TAlias = T?; -// ^ -// -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. -// mixin N1a on prefix.TAlias {} -// ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // // pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// mixin N1a on prefix.TAlias {} +// ^ +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. +// typedef TAlias = T?; +// ^ +// +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N1b on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:16: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:16: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N2 on A, TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:26: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:56:26: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N3 on A implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:7: Error: The type 'TAlias' can't be mixed in. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:7: Error: The type 'TAlias' can't be mixed in. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:7: Error: The type 'TAlias' can't be mixed in. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:7: Error: The type 'TAlias' can't be mixed in. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:18: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:18:18: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C1 extends AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:18:21: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:20:21: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C2 implements AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:20:19: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:22:19: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C3 = A with BAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:22:32: Error: The type 'CAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:24:32: Error: The type 'CAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. // - 'C' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C4 = A with B implements CAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:15:9: Context: The issue arises via this type alias. // typedef CAlias = C?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:24:25: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:26:25: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C5 extends A with BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:26:13: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:28:13: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M1 on AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:28:16: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:30:16: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M2 on A, BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:30:26: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:26: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M3 on A implements BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:18: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:18: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1 extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:19: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1a extends prefix.TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:19: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1b extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:21: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:21: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D2 implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:19: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:19: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:32: Error: The type 'TAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:32: Error: The type 'TAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. // - 'C' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D4 = A with B implements TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:25: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:25: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:13: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:13: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1 on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:14: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1a on prefix.TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:14: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1b on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:16: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:16: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N2 on A, TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:26: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:56:26: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N3 on A implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // @@ -274,10 +274,7 @@ class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C extends core::Object { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline.expect index 1c0f31126f8..7cac3414499 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline.expect @@ -2,7 +2,7 @@ import 'nullable_supertypes.dart' as prefix; class A {} -class B {} +mixin B {} class C {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline_modelled.expect index 85ec1fa85aa..65bed4dc9bd 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.textual_outline_modelled.expect @@ -2,8 +2,6 @@ import 'nullable_supertypes.dart' as prefix; class A {} -class B {} - class C {} class C1 extends AAlias {} @@ -29,6 +27,7 @@ class D4 = A with B implements TAlias; class D5 extends A with TAlias {} main() {} +mixin B {} mixin M1 on AAlias {} mixin M2 on A, BAlias {} mixin M3 on A implements BAlias {} diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.expect b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.expect index 067e4b2e275..71318fd6cc8 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.expect @@ -2,261 +2,261 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:18: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:18: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D1 extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. -// typedef TAlias = T?; -// ^ -// -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. -// class D1a extends prefix.TAlias {} -// ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // // pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// class D1a extends prefix.TAlias {} +// ^ +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. +// typedef TAlias = T?; +// ^ +// +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D1b extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:21: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:21: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D2 implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:32: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:32: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D4 = A with B implements TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:25: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:25: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:13: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:13: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N1 on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. -// typedef TAlias = T?; -// ^ -// -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. -// mixin N1a on prefix.TAlias {} -// ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // // pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// mixin N1a on prefix.TAlias {} +// ^ +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. +// typedef TAlias = T?; +// ^ +// +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N1b on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:16: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:16: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N2 on A, TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:26: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:56:26: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N3 on A implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:7: Error: The type 'TAlias' can't be mixed in. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:7: Error: The type 'TAlias' can't be mixed in. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:7: Error: The type 'TAlias' can't be mixed in. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:7: Error: The type 'TAlias' can't be mixed in. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:18: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:18:18: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C1 extends AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:18:21: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:20:21: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C2 implements AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:20:19: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:22:19: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C3 = A with BAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:22:32: Error: The type 'CAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:24:32: Error: The type 'CAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. // - 'C' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C4 = A with B implements CAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:15:9: Context: The issue arises via this type alias. // typedef CAlias = C?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:24:25: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:26:25: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C5 extends A with BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:26:13: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:28:13: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M1 on AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:28:16: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:30:16: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M2 on A, BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:30:26: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:26: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M3 on A implements BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:18: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:18: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1 extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:19: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1a extends prefix.TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:19: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1b extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:21: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:21: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D2 implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:19: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:19: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:32: Error: The type 'TAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:32: Error: The type 'TAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. // - 'C' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D4 = A with B implements TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:25: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:25: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:13: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:13: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1 on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:14: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1a on prefix.TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:14: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1b on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:16: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:16: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N2 on A, TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:26: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:56:26: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N3 on A implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // @@ -274,10 +274,7 @@ class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C extends core::Object { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.modular.expect b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.modular.expect index 067e4b2e275..71318fd6cc8 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.modular.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.modular.expect @@ -2,261 +2,261 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:18: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:18: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D1 extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. -// typedef TAlias = T?; -// ^ -// -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. -// class D1a extends prefix.TAlias {} -// ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // // pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// class D1a extends prefix.TAlias {} +// ^ +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. +// typedef TAlias = T?; +// ^ +// +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D1b extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:21: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:21: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D2 implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:32: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:32: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D4 = A with B implements TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:25: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:25: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:13: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:13: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N1 on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. -// typedef TAlias = T?; -// ^ -// -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. -// mixin N1a on prefix.TAlias {} -// ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // // pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// mixin N1a on prefix.TAlias {} +// ^ +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. +// typedef TAlias = T?; +// ^ +// +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N1b on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:16: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:16: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N2 on A, TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:26: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:56:26: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N3 on A implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:7: Error: The type 'TAlias' can't be mixed in. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:7: Error: The type 'TAlias' can't be mixed in. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:7: Error: The type 'TAlias' can't be mixed in. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:7: Error: The type 'TAlias' can't be mixed in. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:18: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:18:18: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C1 extends AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:18:21: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:20:21: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C2 implements AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:20:19: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:22:19: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C3 = A with BAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:22:32: Error: The type 'CAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:24:32: Error: The type 'CAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. // - 'C' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C4 = A with B implements CAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:15:9: Context: The issue arises via this type alias. // typedef CAlias = C?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:24:25: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:26:25: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C5 extends A with BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:26:13: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:28:13: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M1 on AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:28:16: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:30:16: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M2 on A, BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:30:26: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:26: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M3 on A implements BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:18: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:18: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1 extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:19: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1a extends prefix.TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:19: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1b extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:21: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:21: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D2 implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:19: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:19: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:32: Error: The type 'TAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:32: Error: The type 'TAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. // - 'C' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D4 = A with B implements TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:25: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:25: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:13: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:13: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1 on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:14: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1a on prefix.TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:14: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1b on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:16: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:16: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N2 on A, TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:26: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:56:26: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N3 on A implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // @@ -274,10 +274,7 @@ class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C extends core::Object { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.outline.expect index d1280097ec8..f80347d3e85 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.outline.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.outline.expect @@ -2,261 +2,261 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:18: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:18: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D1 extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. -// typedef TAlias = T?; -// ^ -// -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. -// class D1a extends prefix.TAlias {} -// ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // // pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// class D1a extends prefix.TAlias {} +// ^ +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. +// typedef TAlias = T?; +// ^ +// +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D1b extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:21: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:21: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D2 implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:32: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:32: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D4 = A with B implements TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:25: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:25: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:13: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:13: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N1 on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. -// typedef TAlias = T?; -// ^ -// -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. -// mixin N1a on prefix.TAlias {} -// ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // // pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// mixin N1a on prefix.TAlias {} +// ^ +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. +// typedef TAlias = T?; +// ^ +// +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N1b on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:16: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:16: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N2 on A, TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:26: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:56:26: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N3 on A implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:7: Error: The type 'TAlias' can't be mixed in. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:7: Error: The type 'TAlias' can't be mixed in. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:7: Error: The type 'TAlias' can't be mixed in. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:7: Error: The type 'TAlias' can't be mixed in. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:18: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:18:18: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C1 extends AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:18:21: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:20:21: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C2 implements AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:20:19: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:22:19: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C3 = A with BAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:22:32: Error: The type 'CAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:24:32: Error: The type 'CAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. // - 'C' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C4 = A with B implements CAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:15:9: Context: The issue arises via this type alias. // typedef CAlias = C?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:24:25: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:26:25: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C5 extends A with BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:26:13: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:28:13: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M1 on AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:28:16: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:30:16: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M2 on A, BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:30:26: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:26: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M3 on A implements BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:18: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:18: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1 extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:19: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1a extends prefix.TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:19: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1b extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:21: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:21: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D2 implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:19: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:19: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:32: Error: The type 'TAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:32: Error: The type 'TAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. // - 'C' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D4 = A with B implements TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:25: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:25: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:13: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:13: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1 on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:14: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1a on prefix.TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:14: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1b on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:16: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:16: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N2 on A, TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:26: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:56:26: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N3 on A implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // @@ -273,9 +273,7 @@ class A extends core::Object { synthetic constructor •() → self::A ; } -class B extends core::Object { - synthetic constructor •() → self::B - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C extends core::Object { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.transformed.expect index eeb78f7fb44..8a7157375f1 100644 --- a/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart.weak.transformed.expect @@ -2,261 +2,261 @@ library /*isNonNullableByDefault*/; // // Problems in library: // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:18: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:18: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D1 extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. -// typedef TAlias = T?; -// ^ -// -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. -// class D1a extends prefix.TAlias {} -// ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // // pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// class D1a extends prefix.TAlias {} +// ^ +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. +// typedef TAlias = T?; +// ^ +// +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D1b extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:21: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:21: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D2 implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:19: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:32: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:32: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D4 = A with B implements TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:25: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:25: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:13: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:13: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N1 on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. -// typedef TAlias = T?; -// ^ -// -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. -// mixin N1a on prefix.TAlias {} -// ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // // pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// mixin N1a on prefix.TAlias {} +// ^ +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. +// typedef TAlias = T?; +// ^ +// +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:14: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N1b on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:16: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:16: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N2 on A, TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:26: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:56:26: Error: Can't use a typedef denoting a type variable as a constructor, nor for a static member access. // mixin N3 on A implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:16: Context: This is the type variable ultimately denoted. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:16: Context: This is the type variable ultimately denoted. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:7: Error: The type 'TAlias' can't be mixed in. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:7: Error: The type 'TAlias' can't be mixed in. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:7: Error: The type 'TAlias' can't be mixed in. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:7: Error: The type 'TAlias' can't be mixed in. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:18: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:18:18: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C1 extends AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:18:21: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:20:21: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C2 implements AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:20:19: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:22:19: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C3 = A with BAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:22:32: Error: The type 'CAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:24:32: Error: The type 'CAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. // - 'C' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C4 = A with B implements CAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:15:9: Context: The issue arises via this type alias. // typedef CAlias = C?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:24:25: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:26:25: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class C5 extends A with BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:26:13: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:28:13: Error: The type 'AAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M1 on AAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:11:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:13:9: Context: The issue arises via this type alias. // typedef AAlias = A?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:28:16: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:30:16: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M2 on A, BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:30:26: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:26: Error: The type 'BAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin M3 on A implements BAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:12:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. // typedef BAlias = B?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:32:18: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:18: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1 extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:34:19: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1a extends prefix.TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:36:19: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:19: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D1b extends TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:38:21: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:21: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D2 implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:40:19: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:19: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D3 = A with TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:42:32: Error: The type 'TAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:32: Error: The type 'TAlias' which is an alias of 'C?' can't be used as supertype because it is nullable. // - 'C' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D4 = A with B implements TAlias; // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:44:25: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:25: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // class D5 extends A with TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:46:13: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:13: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1 on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:48:14: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: The type 'prefix.TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1a on prefix.TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:50:14: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:14: Error: The type 'TAlias' which is an alias of 'A?' can't be used as supertype because it is nullable. // - 'A' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N1b on TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:52:16: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:16: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N2 on A, TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:54:26: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:56:26: Error: The type 'TAlias' which is an alias of 'B?' can't be used as supertype because it is nullable. // - 'B' is from 'pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart'. // mixin N3 on A implements TAlias {} // ^ -// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:14:9: Context: The issue arises via this type alias. +// pkg/front_end/testcases/nonfunction_type_aliases/nullable_supertypes.dart:16:9: Context: The issue arises via this type alias. // typedef TAlias = T?; // ^ // @@ -274,10 +274,7 @@ class A extends core::Object { : super core::Object::•() ; } -class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { } class C extends core::Object { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart b/pkg/front_end/testcases/rasta/duplicated_mixin.dart index 09c91075973..8c2f8e9df9a 100644 --- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart +++ b/pkg/front_end/testcases/rasta/duplicated_mixin.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.md file. -class Mixin { +mixin Mixin { var field; } diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.expect index 4a60de7058f..9d13c189cdd 100644 --- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.expect +++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic field = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; } abstract class _A&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/ { synthetic constructor •() → self::_A&Object&Mixin diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.transformed.expect index 8630f78b3ab..58e4ca6ecdf 100644 --- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.strong.transformed.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic field = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; } abstract class _A&Object&Mixin extends core::Object implements self::Mixin /*isAnonymousMixin,isEliminatedMixin*/ { field dynamic field = null; diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline.expect index 6da2cea8f17..39152fe9299 100644 --- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline.expect +++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline.expect @@ -1,4 +1,4 @@ -class Mixin { +mixin Mixin { var field; } diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline_modelled.expect index 525de0e3d5a..a30a902dd51 100644 --- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.textual_outline_modelled.expect @@ -1,5 +1,5 @@ class A extends Object with Mixin, Mixin {} -class Mixin { +mixin Mixin { var field; } diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.expect index 4a60de7058f..9d13c189cdd 100644 --- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.expect +++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic field = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; } abstract class _A&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/ { synthetic constructor •() → self::_A&Object&Mixin diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.modular.expect index 4a60de7058f..9d13c189cdd 100644 --- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.modular.expect +++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.modular.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic field = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; } abstract class _A&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/ { synthetic constructor •() → self::_A&Object&Mixin diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.outline.expect index 93387b2f2bd..66bfdb449fc 100644 --- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.outline.expect +++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.outline.expect @@ -2,10 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic field; - synthetic constructor •() → self::Mixin - ; } abstract class _A&Object&Mixin = core::Object with self::Mixin /*isAnonymousMixin*/ { synthetic constructor •() → self::_A&Object&Mixin diff --git a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.transformed.expect index 8630f78b3ab..58e4ca6ecdf 100644 --- a/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/rasta/duplicated_mixin.dart.weak.transformed.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic field = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; } abstract class _A&Object&Mixin extends core::Object implements self::Mixin /*isAnonymousMixin,isEliminatedMixin*/ { field dynamic field = null; diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart b/pkg/front_end/testcases/rasta/issue_000007.dart index 9fb1dc0856e..12317bc0b5b 100644 --- a/pkg/front_end/testcases/rasta/issue_000007.dart +++ b/pkg/front_end/testcases/rasta/issue_000007.dart @@ -4,7 +4,7 @@ class Base {} -class Mixin { +mixin Mixin { foo() => print('foo'); } diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.strong.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.strong.expect index 12b10a35c25..9beb586080b 100644 --- a/pkg/front_end/testcases/rasta/issue_000007.dart.strong.expect +++ b/pkg/front_end/testcases/rasta/issue_000007.dart.strong.expect @@ -7,10 +7,7 @@ class Base extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic return core::print("foo"); } diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.strong.transformed.expect index 2e27be42837..ace14455693 100644 --- a/pkg/front_end/testcases/rasta/issue_000007.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/rasta/issue_000007.dart.strong.transformed.expect @@ -7,10 +7,7 @@ class Base extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic return core::print("foo"); } diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline.expect index 58c40fa0de0..08853342aed 100644 --- a/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline.expect @@ -1,6 +1,6 @@ class Base {} -class Mixin { +mixin Mixin { foo() => print('foo'); } diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline_modelled.expect index 58c40fa0de0..10eccb25de3 100644 --- a/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/rasta/issue_000007.dart.textual_outline_modelled.expect @@ -1,9 +1,8 @@ class Base {} -class Mixin { - foo() => print('foo'); -} - class Sub extends Base with Mixin {} main() {} +mixin Mixin { + foo() => print('foo'); +} diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.expect index 12b10a35c25..9beb586080b 100644 --- a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.expect +++ b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.expect @@ -7,10 +7,7 @@ class Base extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic return core::print("foo"); } diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.modular.expect index 12b10a35c25..9beb586080b 100644 --- a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.modular.expect +++ b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.modular.expect @@ -7,10 +7,7 @@ class Base extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic return core::print("foo"); } diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.outline.expect index f29bfaf429e..5678b625898 100644 --- a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.outline.expect @@ -6,9 +6,7 @@ class Base extends core::Object { synthetic constructor •() → self::Base ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic ; } diff --git a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.transformed.expect index 2e27be42837..ace14455693 100644 --- a/pkg/front_end/testcases/rasta/issue_000007.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/rasta/issue_000007.dart.weak.transformed.expect @@ -7,10 +7,7 @@ class Base extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { method foo() → dynamic return core::print("foo"); } diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart b/pkg/front_end/testcases/rasta/issue_000048.dart index 02114800170..07ab336c430 100644 --- a/pkg/front_end/testcases/rasta/issue_000048.dart +++ b/pkg/front_end/testcases/rasta/issue_000048.dart @@ -8,7 +8,7 @@ class A { A(bool this.v1, num this.v2); } -class M1 { +mixin M1 { num v2 = 0; } diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart.strong.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.strong.expect index 2b0abe4710d..6922e2ebcba 100644 --- a/pkg/front_end/testcases/rasta/issue_000048.dart.strong.expect +++ b/pkg/front_end/testcases/rasta/issue_000048.dart.strong.expect @@ -9,11 +9,8 @@ class A extends core::Object { : self::A::v1 = v1, self::A::v2 = v2, super core::Object::•() ; } -class M1 extends core::Object { +abstract class M1 extends core::Object /*isMixinDeclaration*/ { field core::num v2 = 0; - synthetic constructor •() → self::M1 - : super core::Object::•() - ; } class C = self::A with self::M1 { synthetic constructor •(core::bool v1, core::num v2) → self::C diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.strong.transformed.expect index 0c73c5c3eb4..46d030184fe 100644 --- a/pkg/front_end/testcases/rasta/issue_000048.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/rasta/issue_000048.dart.strong.transformed.expect @@ -9,11 +9,8 @@ class A extends core::Object { : self::A::v1 = v1, self::A::v2 = v2, super core::Object::•() ; } -class M1 extends core::Object { +abstract class M1 extends core::Object /*isMixinDeclaration*/ { field core::num v2 = 0; - synthetic constructor •() → self::M1 - : super core::Object::•() - ; } class C extends self::A implements self::M1 /*isEliminatedMixin*/ { field core::num v2 = 0; diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline.expect index 75793bce351..08980f4258d 100644 --- a/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline.expect @@ -4,9 +4,8 @@ class A { A(bool this.v1, num this.v2); } -class M1 { +mixin M1 { num v2 = 0; } - class C = A with M1; main() {} diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline_modelled.expect index 333c72fe913..56cc4075db9 100644 --- a/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/rasta/issue_000048.dart.textual_outline_modelled.expect @@ -5,9 +5,7 @@ class A { } class C = A with M1; - -class M1 { +main() {} +mixin M1 { num v2 = 0; } - -main() {} diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.expect index 2b0abe4710d..6922e2ebcba 100644 --- a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.expect +++ b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.expect @@ -9,11 +9,8 @@ class A extends core::Object { : self::A::v1 = v1, self::A::v2 = v2, super core::Object::•() ; } -class M1 extends core::Object { +abstract class M1 extends core::Object /*isMixinDeclaration*/ { field core::num v2 = 0; - synthetic constructor •() → self::M1 - : super core::Object::•() - ; } class C = self::A with self::M1 { synthetic constructor •(core::bool v1, core::num v2) → self::C diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.modular.expect index 2b0abe4710d..6922e2ebcba 100644 --- a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.modular.expect +++ b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.modular.expect @@ -9,11 +9,8 @@ class A extends core::Object { : self::A::v1 = v1, self::A::v2 = v2, super core::Object::•() ; } -class M1 extends core::Object { +abstract class M1 extends core::Object /*isMixinDeclaration*/ { field core::num v2 = 0; - synthetic constructor •() → self::M1 - : super core::Object::•() - ; } class C = self::A with self::M1 { synthetic constructor •(core::bool v1, core::num v2) → self::C diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.outline.expect index 96b4f9aaf3f..24f4def625f 100644 --- a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.outline.expect @@ -8,10 +8,8 @@ class A extends core::Object { constructor •(core::bool v1, core::num v2) → self::A ; } -class M1 extends core::Object { +abstract class M1 extends core::Object /*isMixinDeclaration*/ { field core::num v2; - synthetic constructor •() → self::M1 - ; } class C = self::A with self::M1 { synthetic constructor •(core::bool v1, core::num v2) → self::C diff --git a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.transformed.expect index 0c73c5c3eb4..46d030184fe 100644 --- a/pkg/front_end/testcases/rasta/issue_000048.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/rasta/issue_000048.dart.weak.transformed.expect @@ -9,11 +9,8 @@ class A extends core::Object { : self::A::v1 = v1, self::A::v2 = v2, super core::Object::•() ; } -class M1 extends core::Object { +abstract class M1 extends core::Object /*isMixinDeclaration*/ { field core::num v2 = 0; - synthetic constructor •() → self::M1 - : super core::Object::•() - ; } class C extends self::A implements self::M1 /*isEliminatedMixin*/ { field core::num v2 = 0; diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart b/pkg/front_end/testcases/rasta/issue_000080.dart index 6a0292d34c7..5e929924894 100644 --- a/pkg/front_end/testcases/rasta/issue_000080.dart +++ b/pkg/front_end/testcases/rasta/issue_000080.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.md file. -class Mixin { +mixin Mixin { var field; foo() => 87; } diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.strong.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.strong.expect index d91ab1258c9..a0af4780479 100644 --- a/pkg/front_end/testcases/rasta/issue_000080.dart.strong.expect +++ b/pkg/front_end/testcases/rasta/issue_000080.dart.strong.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic field = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; method foo() → dynamic return 87; } diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.strong.transformed.expect index 6ab51200baa..f5e30a0b58e 100644 --- a/pkg/front_end/testcases/rasta/issue_000080.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/rasta/issue_000080.dart.strong.transformed.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic field = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; method foo() → dynamic return 87; } diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline.expect index e1dd6e27694..470e2478396 100644 --- a/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline.expect @@ -1,4 +1,4 @@ -class Mixin { +mixin Mixin { var field; foo() => 87; } diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline_modelled.expect index 8ed966c6706..b7eebc2d64b 100644 --- a/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/rasta/issue_000080.dart.textual_outline_modelled.expect @@ -3,9 +3,8 @@ class Foo extends Object with Mixin { foo() => super.foo(); } -class Mixin { +main() {} +mixin Mixin { foo() => 87; var field; } - -main() {} diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.expect index d91ab1258c9..a0af4780479 100644 --- a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.expect +++ b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic field = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; method foo() → dynamic return 87; } diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.modular.expect index d91ab1258c9..a0af4780479 100644 --- a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.modular.expect +++ b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.modular.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic field = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; method foo() → dynamic return 87; } diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.outline.expect index 4f952bca0ad..d172335f726 100644 --- a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.outline.expect +++ b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.outline.expect @@ -2,10 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic field; - synthetic constructor •() → self::Mixin - ; method foo() → dynamic ; } diff --git a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.transformed.expect index 6ab51200baa..f5e30a0b58e 100644 --- a/pkg/front_end/testcases/rasta/issue_000080.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/rasta/issue_000080.dart.weak.transformed.expect @@ -2,11 +2,8 @@ library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic field = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; method foo() → dynamic return 87; } diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart b/pkg/front_end/testcases/rasta/mixin_library.dart index e441d854421..2dea5cfde95 100644 --- a/pkg/front_end/testcases/rasta/mixin_library.dart +++ b/pkg/front_end/testcases/rasta/mixin_library.dart @@ -10,7 +10,7 @@ V() => 87; _private() => 117; -class Mixin { +mixin Mixin { var x = f(), y, z; T? t; foo() => super.foo() + f(); diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart.strong.expect b/pkg/front_end/testcases/rasta/mixin_library.dart.strong.expect index c5136dde82c..d6826d708c5 100644 --- a/pkg/front_end/testcases/rasta/mixin_library.dart.strong.expect +++ b/pkg/front_end/testcases/rasta/mixin_library.dart.strong.expect @@ -9,14 +9,11 @@ library test.mixin_library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic x = self::f(); field dynamic y = null; field dynamic z = null; covariant-by-class field self::Mixin::T? t = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; method foo() → dynamic return invalid-expression "pkg/front_end/testcases/rasta/mixin_library.dart:16:18: Error: Superclass has no method named 'foo'. foo() => super.foo() + f(); diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/mixin_library.dart.strong.transformed.expect index c5136dde82c..d6826d708c5 100644 --- a/pkg/front_end/testcases/rasta/mixin_library.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/rasta/mixin_library.dart.strong.transformed.expect @@ -9,14 +9,11 @@ library test.mixin_library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic x = self::f(); field dynamic y = null; field dynamic z = null; covariant-by-class field self::Mixin::T? t = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; method foo() → dynamic return invalid-expression "pkg/front_end/testcases/rasta/mixin_library.dart:16:18: Error: Superclass has no method named 'foo'. foo() => super.foo() + f(); diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline.expect b/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline.expect index 1c6c28fc26e..e424bf96eb5 100644 --- a/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline.expect +++ b/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline.expect @@ -3,8 +3,7 @@ library test.mixin_library; f() => 2; V() => 87; _private() => 117; - -class Mixin { +mixin Mixin { var x = f(), y, z; T? t; foo() => super.foo() + f(); @@ -14,5 +13,4 @@ class Mixin { _privateMethod() => 49; publicMethod() => _privateMethod(); } - foo(m) => m._privateMethod(); diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline_modelled.expect index c5410206caa..ef83483b9b4 100644 --- a/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/rasta/mixin_library.dart.textual_outline_modelled.expect @@ -2,8 +2,9 @@ library test.mixin_library; V() => 87; _private() => 117; - -class Mixin { +f() => 2; +foo(m) => m._privateMethod(); +mixin Mixin { T? g(T a) => null; T? t; _privateMethod() => 49; @@ -13,6 +14,3 @@ class Mixin { publicMethod() => _privateMethod(); var x = f(), y, z; } - -f() => 2; -foo(m) => m._privateMethod(); diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.expect b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.expect index c5136dde82c..d6826d708c5 100644 --- a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.expect +++ b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.expect @@ -9,14 +9,11 @@ library test.mixin_library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic x = self::f(); field dynamic y = null; field dynamic z = null; covariant-by-class field self::Mixin::T? t = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; method foo() → dynamic return invalid-expression "pkg/front_end/testcases/rasta/mixin_library.dart:16:18: Error: Superclass has no method named 'foo'. foo() => super.foo() + f(); diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.modular.expect index c5136dde82c..d6826d708c5 100644 --- a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.modular.expect +++ b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.modular.expect @@ -9,14 +9,11 @@ library test.mixin_library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic x = self::f(); field dynamic y = null; field dynamic z = null; covariant-by-class field self::Mixin::T? t = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; method foo() → dynamic return invalid-expression "pkg/front_end/testcases/rasta/mixin_library.dart:16:18: Error: Superclass has no method named 'foo'. foo() => super.foo() + f(); diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.outline.expect index 97d80083c4d..c42c0133e4f 100644 --- a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.outline.expect +++ b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.outline.expect @@ -2,13 +2,11 @@ library test.mixin_library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic x; field dynamic y; field dynamic z; covariant-by-class field self::Mixin::T? t; - synthetic constructor •() → self::Mixin - ; method foo() → dynamic ; method g(covariant-by-class self::Mixin::T% a) → self::Mixin::T? diff --git a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.transformed.expect index c5136dde82c..d6826d708c5 100644 --- a/pkg/front_end/testcases/rasta/mixin_library.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/rasta/mixin_library.dart.weak.transformed.expect @@ -9,14 +9,11 @@ library test.mixin_library /*isNonNullableByDefault*/; import self as self; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic x = self::f(); field dynamic y = null; field dynamic z = null; covariant-by-class field self::Mixin::T? t = null; - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; method foo() → dynamic return invalid-expression "pkg/front_end/testcases/rasta/mixin_library.dart:16:18: Error: Superclass has no method named 'foo'. foo() => super.foo() + f(); diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.strong.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.strong.expect index d16a720f9e3..a35d8bfb301 100644 --- a/pkg/front_end/testcases/rasta/super_mixin.dart.strong.expect +++ b/pkg/front_end/testcases/rasta/super_mixin.dart.strong.expect @@ -172,14 +172,11 @@ library test.mixin_library /*isNonNullableByDefault*/; import self as mix; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic x = mix::f(); field dynamic y = null; field dynamic z = null; covariant-by-class field mix::Mixin::T? t = null; - synthetic constructor •() → mix::Mixin - : super core::Object::•() - ; method foo() → dynamic return invalid-expression "pkg/front_end/testcases/rasta/mixin_library.dart:16:18: Error: Superclass has no method named 'foo'. foo() => super.foo() + f(); diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.strong.transformed.expect index 8a5aa70af40..f5124cb796c 100644 --- a/pkg/front_end/testcases/rasta/super_mixin.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/rasta/super_mixin.dart.strong.transformed.expect @@ -132,14 +132,11 @@ library test.mixin_library /*isNonNullableByDefault*/; import self as mix; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic x = mix::f(); field dynamic y = null; field dynamic z = null; covariant-by-class field mix::Mixin::T? t = null; - synthetic constructor •() → mix::Mixin - : super core::Object::•() - ; method foo() → dynamic return invalid-expression "pkg/front_end/testcases/rasta/mixin_library.dart:16:18: Error: Superclass has no method named 'foo'. foo() => super.foo() + f(); diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.expect index d16a720f9e3..a35d8bfb301 100644 --- a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.expect +++ b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.expect @@ -172,14 +172,11 @@ library test.mixin_library /*isNonNullableByDefault*/; import self as mix; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic x = mix::f(); field dynamic y = null; field dynamic z = null; covariant-by-class field mix::Mixin::T? t = null; - synthetic constructor •() → mix::Mixin - : super core::Object::•() - ; method foo() → dynamic return invalid-expression "pkg/front_end/testcases/rasta/mixin_library.dart:16:18: Error: Superclass has no method named 'foo'. foo() => super.foo() + f(); diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.modular.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.modular.expect index d16a720f9e3..a35d8bfb301 100644 --- a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.modular.expect +++ b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.modular.expect @@ -172,14 +172,11 @@ library test.mixin_library /*isNonNullableByDefault*/; import self as mix; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic x = mix::f(); field dynamic y = null; field dynamic z = null; covariant-by-class field mix::Mixin::T? t = null; - synthetic constructor •() → mix::Mixin - : super core::Object::•() - ; method foo() → dynamic return invalid-expression "pkg/front_end/testcases/rasta/mixin_library.dart:16:18: Error: Superclass has no method named 'foo'. foo() => super.foo() + f(); diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.outline.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.outline.expect index cc211fc389f..72319144a64 100644 --- a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.outline.expect +++ b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.outline.expect @@ -160,13 +160,11 @@ library test.mixin_library /*isNonNullableByDefault*/; import self as mix; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic x; field dynamic y; field dynamic z; covariant-by-class field mix::Mixin::T? t; - synthetic constructor •() → mix::Mixin - ; method foo() → dynamic ; method g(covariant-by-class mix::Mixin::T% a) → mix::Mixin::T? diff --git a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.transformed.expect index 8a5aa70af40..f5124cb796c 100644 --- a/pkg/front_end/testcases/rasta/super_mixin.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/rasta/super_mixin.dart.weak.transformed.expect @@ -132,14 +132,11 @@ library test.mixin_library /*isNonNullableByDefault*/; import self as mix; import "dart:core" as core; -class Mixin extends core::Object { +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { field dynamic x = mix::f(); field dynamic y = null; field dynamic z = null; covariant-by-class field mix::Mixin::T? t = null; - synthetic constructor •() → mix::Mixin - : super core::Object::•() - ; method foo() → dynamic return invalid-expression "pkg/front_end/testcases/rasta/mixin_library.dart:16:18: Error: Superclass has no method named 'foo'. foo() => super.foo() + f(); diff --git a/pkg/front_end/testcases/regress/issue_32182.dart b/pkg/front_end/testcases/regress/issue_32182.dart index 7e421469faa..869ac9933f5 100644 --- a/pkg/front_end/testcases/regress/issue_32182.dart +++ b/pkg/front_end/testcases/regress/issue_32182.dart @@ -6,7 +6,7 @@ import "issue_32182.dart" as self; class A {} -class M { +mixin M { m() => 42; } diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.strong.expect b/pkg/front_end/testcases/regress/issue_32182.dart.strong.expect index ff49484a592..dfd30e73b14 100644 --- a/pkg/front_end/testcases/regress/issue_32182.dart.strong.expect +++ b/pkg/front_end/testcases/regress/issue_32182.dart.strong.expect @@ -9,10 +9,7 @@ class A extends core::Object { : super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return 42; } diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_32182.dart.strong.transformed.expect index 6fcf27a8192..79db90700cc 100644 --- a/pkg/front_end/testcases/regress/issue_32182.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/regress/issue_32182.dart.strong.transformed.expect @@ -9,10 +9,7 @@ class A extends core::Object { : super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return 42; } diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline.expect index 22f0c87f8be..33aac770b20 100644 --- a/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline.expect +++ b/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline.expect @@ -2,7 +2,7 @@ import "issue_32182.dart" as self; class A {} -class M { +mixin M { m() => 42; } diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline_modelled.expect index f0f5e7930f8..3b45bfa31b7 100644 --- a/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/regress/issue_32182.dart.textual_outline_modelled.expect @@ -4,8 +4,7 @@ class A {} class C extends A with M {} -class M { +main() {} +mixin M { m() => 42; } - -main() {} diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.weak.expect b/pkg/front_end/testcases/regress/issue_32182.dart.weak.expect index ff49484a592..dfd30e73b14 100644 --- a/pkg/front_end/testcases/regress/issue_32182.dart.weak.expect +++ b/pkg/front_end/testcases/regress/issue_32182.dart.weak.expect @@ -9,10 +9,7 @@ class A extends core::Object { : super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return 42; } diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_32182.dart.weak.modular.expect index ff49484a592..dfd30e73b14 100644 --- a/pkg/front_end/testcases/regress/issue_32182.dart.weak.modular.expect +++ b/pkg/front_end/testcases/regress/issue_32182.dart.weak.modular.expect @@ -9,10 +9,7 @@ class A extends core::Object { : super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return 42; } diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_32182.dart.weak.outline.expect index b80c90bb5cf..45e09f2fafb 100644 --- a/pkg/front_end/testcases/regress/issue_32182.dart.weak.outline.expect +++ b/pkg/front_end/testcases/regress/issue_32182.dart.weak.outline.expect @@ -8,9 +8,7 @@ class A extends core::Object { synthetic constructor •() → self::A ; } -class M extends core::Object { - synthetic constructor •() → self::M - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method m() → dynamic ; } diff --git a/pkg/front_end/testcases/regress/issue_32182.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_32182.dart.weak.transformed.expect index 6fcf27a8192..79db90700cc 100644 --- a/pkg/front_end/testcases/regress/issue_32182.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/regress/issue_32182.dart.weak.transformed.expect @@ -9,10 +9,7 @@ class A extends core::Object { : super core::Object::•() ; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method m() → dynamic return 42; } diff --git a/pkg/front_end/testcases/regress/issue_36669.dart b/pkg/front_end/testcases/regress/issue_36669.dart index 1de60553209..aaff8164362 100644 --- a/pkg/front_end/testcases/regress/issue_36669.dart +++ b/pkg/front_end/testcases/regress/issue_36669.dart @@ -6,6 +6,6 @@ class NoUnnamedConstructor { NoUnnamedConstructor._(); } -class MixMeIn {} +mixin MixMeIn {} class Foo extends NoUnnamedConstructor with MixMeIn {} diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.strong.expect b/pkg/front_end/testcases/regress/issue_36669.dart.strong.expect index 1886d36e9d3..b0751083874 100644 --- a/pkg/front_end/testcases/regress/issue_36669.dart.strong.expect +++ b/pkg/front_end/testcases/regress/issue_36669.dart.strong.expect @@ -14,10 +14,7 @@ class NoUnnamedConstructor extends core::Object { : super core::Object::•() ; } -class MixMeIn extends core::Object { - synthetic constructor •() → self::MixMeIn - : super core::Object::•() - ; +abstract class MixMeIn extends core::Object /*isMixinDeclaration*/ { } abstract class _Foo&NoUnnamedConstructor&MixMeIn = self::NoUnnamedConstructor with self::MixMeIn /*isAnonymousMixin*/ { synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_36669.dart.strong.transformed.expect index 1fb6d3a6909..37ab83cd0a5 100644 --- a/pkg/front_end/testcases/regress/issue_36669.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/regress/issue_36669.dart.strong.transformed.expect @@ -14,10 +14,7 @@ class NoUnnamedConstructor extends core::Object { : super core::Object::•() ; } -class MixMeIn extends core::Object { - synthetic constructor •() → self::MixMeIn - : super core::Object::•() - ; +abstract class MixMeIn extends core::Object /*isMixinDeclaration*/ { } abstract class _Foo&NoUnnamedConstructor&MixMeIn extends self::NoUnnamedConstructor implements self::MixMeIn /*isAnonymousMixin,isEliminatedMixin*/ { synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline.expect b/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline.expect index 0dab00af92b..0674e3263b2 100644 --- a/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline.expect +++ b/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline.expect @@ -2,6 +2,6 @@ class NoUnnamedConstructor { NoUnnamedConstructor._(); } -class MixMeIn {} +mixin MixMeIn {} class Foo extends NoUnnamedConstructor with MixMeIn {} diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline_modelled.expect index ea59eadade1..e20032584a6 100644 --- a/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/regress/issue_36669.dart.textual_outline_modelled.expect @@ -1,7 +1,7 @@ class Foo extends NoUnnamedConstructor with MixMeIn {} -class MixMeIn {} - class NoUnnamedConstructor { NoUnnamedConstructor._(); } + +mixin MixMeIn {} diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.weak.expect b/pkg/front_end/testcases/regress/issue_36669.dart.weak.expect index 1886d36e9d3..b0751083874 100644 --- a/pkg/front_end/testcases/regress/issue_36669.dart.weak.expect +++ b/pkg/front_end/testcases/regress/issue_36669.dart.weak.expect @@ -14,10 +14,7 @@ class NoUnnamedConstructor extends core::Object { : super core::Object::•() ; } -class MixMeIn extends core::Object { - synthetic constructor •() → self::MixMeIn - : super core::Object::•() - ; +abstract class MixMeIn extends core::Object /*isMixinDeclaration*/ { } abstract class _Foo&NoUnnamedConstructor&MixMeIn = self::NoUnnamedConstructor with self::MixMeIn /*isAnonymousMixin*/ { synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.weak.modular.expect b/pkg/front_end/testcases/regress/issue_36669.dart.weak.modular.expect index 1886d36e9d3..b0751083874 100644 --- a/pkg/front_end/testcases/regress/issue_36669.dart.weak.modular.expect +++ b/pkg/front_end/testcases/regress/issue_36669.dart.weak.modular.expect @@ -14,10 +14,7 @@ class NoUnnamedConstructor extends core::Object { : super core::Object::•() ; } -class MixMeIn extends core::Object { - synthetic constructor •() → self::MixMeIn - : super core::Object::•() - ; +abstract class MixMeIn extends core::Object /*isMixinDeclaration*/ { } abstract class _Foo&NoUnnamedConstructor&MixMeIn = self::NoUnnamedConstructor with self::MixMeIn /*isAnonymousMixin*/ { synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.weak.outline.expect b/pkg/front_end/testcases/regress/issue_36669.dart.weak.outline.expect index b335607687b..fc8928975ec 100644 --- a/pkg/front_end/testcases/regress/issue_36669.dart.weak.outline.expect +++ b/pkg/front_end/testcases/regress/issue_36669.dart.weak.outline.expect @@ -6,9 +6,7 @@ class NoUnnamedConstructor extends core::Object { constructor _() → self::NoUnnamedConstructor ; } -class MixMeIn extends core::Object { - synthetic constructor •() → self::MixMeIn - ; +abstract class MixMeIn extends core::Object /*isMixinDeclaration*/ { } abstract class _Foo&NoUnnamedConstructor&MixMeIn = self::NoUnnamedConstructor with self::MixMeIn /*isAnonymousMixin*/ { synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_36669.dart.weak.transformed.expect index 1fb6d3a6909..37ab83cd0a5 100644 --- a/pkg/front_end/testcases/regress/issue_36669.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/regress/issue_36669.dart.weak.transformed.expect @@ -14,10 +14,7 @@ class NoUnnamedConstructor extends core::Object { : super core::Object::•() ; } -class MixMeIn extends core::Object { - synthetic constructor •() → self::MixMeIn - : super core::Object::•() - ; +abstract class MixMeIn extends core::Object /*isMixinDeclaration*/ { } abstract class _Foo&NoUnnamedConstructor&MixMeIn extends self::NoUnnamedConstructor implements self::MixMeIn /*isAnonymousMixin,isEliminatedMixin*/ { synthetic constructor _() → self::_Foo&NoUnnamedConstructor&MixMeIn diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart index 4da2532c082..5b162280faf 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart @@ -13,7 +13,7 @@ abstract class I { void f(T x); } -class M { +mixin M { void f(int x) {} } diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.strong.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.strong.expect index 32dd7dfd6e7..21438db9ad9 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.strong.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.strong.expect @@ -14,10 +14,7 @@ abstract class I extends core::Object { ; abstract method f(covariant-by-class self::I::T% x) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method f(core::int x) → void {} } class C = self::B with self::M implements self::I { diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.strong.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.strong.transformed.expect index 9d2b0e0fca5..8e48110db47 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.strong.transformed.expect @@ -14,10 +14,7 @@ abstract class I extends core::Object { ; abstract method f(covariant-by-class self::I::T% x) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method f(core::int x) → void {} } class C extends self::B implements self::I, self::M /*isEliminatedMixin*/ { diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline.expect index 7d6cf9bdd4c..7cac5c823a6 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline.expect @@ -8,10 +8,9 @@ abstract class I { void f(T x); } -class M { +mixin M { void f(int x) {} } - class C = B with M implements I; void g1(C c) {} void g2(I i) {} diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline_modelled.expect index f1f10575a07..5ad01310817 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.textual_outline_modelled.expect @@ -9,11 +9,9 @@ class B { } class C = B with M implements I; - -class M { +mixin M { void f(int x) {} } - void g1(C c) {} void g2(I i) {} void main() {} diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.expect index 32dd7dfd6e7..21438db9ad9 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.expect @@ -14,10 +14,7 @@ abstract class I extends core::Object { ; abstract method f(covariant-by-class self::I::T% x) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method f(core::int x) → void {} } class C = self::B with self::M implements self::I { diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.modular.expect index 32dd7dfd6e7..21438db9ad9 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.modular.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.modular.expect @@ -14,10 +14,7 @@ abstract class I extends core::Object { ; abstract method f(covariant-by-class self::I::T% x) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method f(core::int x) → void {} } class C = self::B with self::M implements self::I { diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.outline.expect index b8c12ffbedc..e0c6a892325 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.outline.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.outline.expect @@ -13,9 +13,7 @@ abstract class I extends core::Object { ; abstract method f(covariant-by-class self::I::T% x) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method f(core::int x) → void ; } diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.transformed.expect index 9d2b0e0fca5..8e48110db47 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_mixin.dart.weak.transformed.expect @@ -14,10 +14,7 @@ abstract class I extends core::Object { ; abstract method f(covariant-by-class self::I::T% x) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { method f(core::int x) → void {} } class C extends self::B implements self::I, self::M /*isEliminatedMixin*/ { diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart index 8208926afe3..0b3ec4082f7 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart @@ -13,7 +13,7 @@ abstract class I { void f(T x); } -class M {} +mixin M {} class C = B with M implements I; void g1(C c) { diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.strong.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.strong.expect index f4466031814..694e2030e3f 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.strong.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.strong.expect @@ -14,10 +14,7 @@ abstract class I extends core::Object { ; abstract method f(covariant-by-class self::I::T% x) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } class C = self::B with self::M implements self::I { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.strong.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.strong.transformed.expect index 38a7a743140..89010bf7d1c 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.strong.transformed.expect @@ -14,10 +14,7 @@ abstract class I extends core::Object { ; abstract method f(covariant-by-class self::I::T% x) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } class C extends self::B implements self::I, self::M /*isEliminatedMixin*/ { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline.expect index ef098bf9abd..e2d41ea631a 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline.expect @@ -8,8 +8,7 @@ abstract class I { void f(T x); } -class M {} - +mixin M {} class C = B with M implements I; void g1(C c) {} void g2(I i) {} diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline_modelled.expect index 6b9085b18b7..85205f10a28 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.textual_outline_modelled.expect @@ -9,9 +9,7 @@ class B { } class C = B with M implements I; - -class M {} - +mixin M {} void g1(C c) {} void g2(I i) {} void main() {} diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.expect index f4466031814..694e2030e3f 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.expect @@ -14,10 +14,7 @@ abstract class I extends core::Object { ; abstract method f(covariant-by-class self::I::T% x) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } class C = self::B with self::M implements self::I { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.modular.expect index f4466031814..694e2030e3f 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.modular.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.modular.expect @@ -14,10 +14,7 @@ abstract class I extends core::Object { ; abstract method f(covariant-by-class self::I::T% x) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } class C = self::B with self::M implements self::I { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.outline.expect index 6ff2a0e154f..6dd59ac743b 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.outline.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.outline.expect @@ -13,9 +13,7 @@ abstract class I extends core::Object { ; abstract method f(covariant-by-class self::I::T% x) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } class C = self::B with self::M implements self::I { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.transformed.expect index 38a7a743140..89010bf7d1c 100644 --- a/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_parameter_in_interface_super_mixin.dart.weak.transformed.expect @@ -14,10 +14,7 @@ abstract class I extends core::Object { ; abstract method f(covariant-by-class self::I::T% x) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { } class C extends self::B implements self::I, self::M /*isEliminatedMixin*/ { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart index bfda10423a5..d9fa39af24a 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart @@ -43,7 +43,7 @@ abstract class I { void set y(covariant Object value); } -class M { +mixin M { int x = 0; int y = 0; } diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.strong.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.strong.expect index 4313fc3744a..73f4c722291 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.strong.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.strong.expect @@ -42,12 +42,9 @@ abstract class I extends core::Object { abstract get y() → core::Object; abstract set y(covariant-by-declaration core::Object value) → void; } -class M extends core::Object { +abstract class M extends core::Object /*isMixinDeclaration*/ { field core::int x = 0; field core::int y = 0; - synthetic constructor •() → self::M - : super core::Object::•() - ; } class C = self::B with self::M implements self::I { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.strong.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.strong.transformed.expect index 40e699452c7..7bbaca8b1d0 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.strong.transformed.expect @@ -42,12 +42,9 @@ abstract class I extends core::Object { abstract get y() → core::Object; abstract set y(covariant-by-declaration core::Object value) → void; } -class M extends core::Object { +abstract class M extends core::Object /*isMixinDeclaration*/ { field core::int x = 0; field core::int y = 0; - synthetic constructor •() → self::M - : super core::Object::•() - ; } class C extends self::B implements self::I, self::M /*isEliminatedMixin*/ { covariant-by-class field core::int x = 0; diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline.expect index 80b19338330..a0d85c64021 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline.expect @@ -17,11 +17,10 @@ abstract class I { void set y(covariant Object value); } -class M { +mixin M { int x = 0; int y = 0; } - class C = B with M implements I; void test(I i) {} void main() {} diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline_modelled.expect index 204e623deba..c79bab58e93 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.textual_outline_modelled.expect @@ -15,12 +15,10 @@ class B { } class C = B with M implements I; - -class M { +mixin M { int x = 0; int y = 0; } - void expect(Object value, Object expected) {} void expectTypeError(void callback()) {} void main() {} diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.expect index 4313fc3744a..73f4c722291 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.expect @@ -42,12 +42,9 @@ abstract class I extends core::Object { abstract get y() → core::Object; abstract set y(covariant-by-declaration core::Object value) → void; } -class M extends core::Object { +abstract class M extends core::Object /*isMixinDeclaration*/ { field core::int x = 0; field core::int y = 0; - synthetic constructor •() → self::M - : super core::Object::•() - ; } class C = self::B with self::M implements self::I { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.modular.expect index 4313fc3744a..73f4c722291 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.modular.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.modular.expect @@ -42,12 +42,9 @@ abstract class I extends core::Object { abstract get y() → core::Object; abstract set y(covariant-by-declaration core::Object value) → void; } -class M extends core::Object { +abstract class M extends core::Object /*isMixinDeclaration*/ { field core::int x = 0; field core::int y = 0; - synthetic constructor •() → self::M - : super core::Object::•() - ; } class C = self::B with self::M implements self::I { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.outline.expect index 28401364793..eaa00981419 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.outline.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.outline.expect @@ -36,11 +36,9 @@ abstract class I extends core::Object { abstract get y() → core::Object; abstract set y(covariant-by-declaration core::Object value) → void; } -class M extends core::Object { +abstract class M extends core::Object /*isMixinDeclaration*/ { field core::int x; field core::int y; - synthetic constructor •() → self::M - ; } class C = self::B with self::M implements self::I { synthetic constructor •() → self::C diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.transformed.expect index 40e699452c7..7bbaca8b1d0 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_field.dart.weak.transformed.expect @@ -42,12 +42,9 @@ abstract class I extends core::Object { abstract get y() → core::Object; abstract set y(covariant-by-declaration core::Object value) → void; } -class M extends core::Object { +abstract class M extends core::Object /*isMixinDeclaration*/ { field core::int x = 0; field core::int y = 0; - synthetic constructor •() → self::M - : super core::Object::•() - ; } class C extends self::B implements self::I, self::M /*isEliminatedMixin*/ { covariant-by-class field core::int x = 0; diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart index 574153fce9c..4409c7eb65d 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart @@ -43,7 +43,7 @@ abstract class I { void set y(covariant Object value); } -class M { +mixin M { int get x => 1; void set x(int value) { expect(value, 2); diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.strong.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.strong.expect index 69135ff0aeb..fbc7b949b83 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.strong.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.strong.expect @@ -43,10 +43,7 @@ abstract class I extends core::Object { abstract get y() → core::Object; abstract set y(covariant-by-declaration core::Object value) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { get x() → core::int return 1; set x(core::int value) → void { diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.strong.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.strong.transformed.expect index fea9c96ba73..65e42a32875 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.strong.transformed.expect @@ -43,10 +43,7 @@ abstract class I extends core::Object { abstract get y() → core::Object; abstract set y(covariant-by-declaration core::Object value) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { get x() → core::int return 1; set x(core::int value) → void { diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline.expect index 7b50e59c7df..484d31cb21b 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline.expect @@ -17,13 +17,12 @@ abstract class I { void set y(covariant Object value); } -class M { +mixin M { int get x => 1; void set x(int value) {} int get y => 3; void set y(int value) {} } - class C = B with M implements I; void test(I i) {} void main() {} diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline_modelled.expect index 7bcde01946d..ebfe92858a8 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.textual_outline_modelled.expect @@ -15,14 +15,12 @@ class B { } class C = B with M implements I; - -class M { +mixin M { int get x => 1; int get y => 3; void set x(int value) {} void set y(int value) {} } - void expect(Object value, Object expected) {} void expectTypeError(void callback()) {} void main() {} diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.expect index 69135ff0aeb..fbc7b949b83 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.expect @@ -43,10 +43,7 @@ abstract class I extends core::Object { abstract get y() → core::Object; abstract set y(covariant-by-declaration core::Object value) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { get x() → core::int return 1; set x(core::int value) → void { diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.modular.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.modular.expect index 69135ff0aeb..fbc7b949b83 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.modular.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.modular.expect @@ -43,10 +43,7 @@ abstract class I extends core::Object { abstract get y() → core::Object; abstract set y(covariant-by-declaration core::Object value) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { get x() → core::int return 1; set x(core::int value) → void { diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.outline.expect index 640d9af24d7..d5ff65f00c5 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.outline.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.outline.expect @@ -37,9 +37,7 @@ abstract class I extends core::Object { abstract get y() → core::Object; abstract set y(covariant-by-declaration core::Object value) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { get x() → core::int ; set x(core::int value) → void diff --git a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.transformed.expect index fea9c96ba73..65e42a32875 100644 --- a/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/runtime_checks_new/mixin_forwarding_stub_setter.dart.weak.transformed.expect @@ -43,10 +43,7 @@ abstract class I extends core::Object { abstract get y() → core::Object; abstract set y(covariant-by-declaration core::Object value) → void; } -class M extends core::Object { - synthetic constructor •() → self::M - : super core::Object::•() - ; +abstract class M extends core::Object /*isMixinDeclaration*/ { get x() → core::int return 1; set x(core::int value) → void { diff --git a/pkg/front_end/testcases/super_parameters/issue48708.dart b/pkg/front_end/testcases/super_parameters/issue48708.dart index 5b2395d18f7..84c2a26d5c8 100644 --- a/pkg/front_end/testcases/super_parameters/issue48708.dart +++ b/pkg/front_end/testcases/super_parameters/issue48708.dart @@ -4,7 +4,7 @@ class A {} -class Mixin {} +mixin Mixin {} abstract class B { B({ diff --git a/pkg/front_end/testcases/super_parameters/issue48708.dart.strong.expect b/pkg/front_end/testcases/super_parameters/issue48708.dart.strong.expect index 05ade25d972..a73b3a91fc2 100644 --- a/pkg/front_end/testcases/super_parameters/issue48708.dart.strong.expect +++ b/pkg/front_end/testcases/super_parameters/issue48708.dart.strong.expect @@ -7,10 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } abstract class B extends core::Object { final field self::B::D% field; diff --git a/pkg/front_end/testcases/super_parameters/issue48708.dart.strong.transformed.expect b/pkg/front_end/testcases/super_parameters/issue48708.dart.strong.transformed.expect index f71d8627187..b0f063ecf1e 100644 --- a/pkg/front_end/testcases/super_parameters/issue48708.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/super_parameters/issue48708.dart.strong.transformed.expect @@ -7,10 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } abstract class B extends core::Object { final field self::B::D% field; diff --git a/pkg/front_end/testcases/super_parameters/issue48708.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/issue48708.dart.textual_outline.expect index 963c4ca68e0..bc8fdc001f3 100644 --- a/pkg/front_end/testcases/super_parameters/issue48708.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/issue48708.dart.textual_outline.expect @@ -1,6 +1,6 @@ class A {} -class Mixin {} +mixin Mixin {} abstract class B { B({ diff --git a/pkg/front_end/testcases/super_parameters/issue48708.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/issue48708.dart.textual_outline_modelled.expect index 429733ea61d..80bde65c3f2 100644 --- a/pkg/front_end/testcases/super_parameters/issue48708.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/super_parameters/issue48708.dart.textual_outline_modelled.expect @@ -13,6 +13,5 @@ class C extends B with Mixin { }); } -class Mixin {} - main() {} +mixin Mixin {} diff --git a/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.expect b/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.expect index 05ade25d972..a73b3a91fc2 100644 --- a/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.expect +++ b/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.expect @@ -7,10 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } abstract class B extends core::Object { final field self::B::D% field; diff --git a/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.modular.expect b/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.modular.expect index 05ade25d972..a73b3a91fc2 100644 --- a/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.modular.expect +++ b/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.modular.expect @@ -7,10 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } abstract class B extends core::Object { final field self::B::D% field; diff --git a/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.outline.expect b/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.outline.expect index 3450f1ead34..6fe7f54c56c 100644 --- a/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.outline.expect +++ b/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.outline.expect @@ -6,9 +6,7 @@ class A extends core::Object { synthetic constructor •() → self::A ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } abstract class B extends core::Object { final field self::B::D% field; diff --git a/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.transformed.expect b/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.transformed.expect index f71d8627187..b0f063ecf1e 100644 --- a/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/super_parameters/issue48708.dart.weak.transformed.expect @@ -7,10 +7,7 @@ class A extends core::Object { : super core::Object::•() ; } -class Mixin extends core::Object { - synthetic constructor •() → self::Mixin - : super core::Object::•() - ; +abstract class Mixin extends core::Object /*isMixinDeclaration*/ { } abstract class B extends core::Object { final field self::B::D% field; diff --git a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart index 29915d68a01..acafde3abad 100644 --- a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart +++ b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart @@ -11,7 +11,7 @@ class A1 { A1(this.a); } -class B1 {} +mixin B1 {} // C1 has a synthesized constructor that takes a positional parameter. class C1 = A1 with B1; @@ -27,7 +27,7 @@ class A2 { A2({this.a = 0}); } -class B2 {} +mixin B2 {} // C2 has a synthesized constructor that takes a named parameter. class C2 = A2 with B2; @@ -43,7 +43,7 @@ class A3 { A3([this.a = 0]); } -class B3 {} +mixin B3 {} // C3 has a synthesized constructor that takes an optional positional parameter. class C3 = A3 with B3; @@ -61,7 +61,7 @@ class D4 extends C4 { // C4 has a synthesized constructor that takes an optional parameter. class C4 = A4 with B4; -class B4 {} +mixin B4 {} class A4 extends AA4 { A4([super.foo]); @@ -83,7 +83,7 @@ class C5c = C5b with B5; class C5b = C5a with B5; class C5a = A5 with B5; -class B5 {} +mixin B5 {} class A5 extends AA5 { A5([super.foo]); @@ -102,7 +102,7 @@ class D6 extends C6 { // 7. The base class from dill. -class B7 {} +mixin B7 {} // C7 has a synthesized constructor that takes a positional parameter. class C7 = A7 with B7; @@ -119,7 +119,7 @@ class D8 extends C8 { // 9. The base class with nullable field from dill. -class B9 {} +mixin B9 {} // C9 has a synthesized constructor that takes a positional parameter. class C9 = A9 with B9; diff --git a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.strong.expect b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.strong.expect index 1d3e74047a9..1616ce201c8 100644 --- a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.strong.expect +++ b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.strong.expect @@ -11,10 +11,7 @@ class A1 extends core::Object { : self::A1::a = a, super core::Object::•() ; } -class B1 extends core::Object { - synthetic constructor •() → self::B1 - : super core::Object::•() - ; +abstract class B1 extends core::Object /*isMixinDeclaration*/ { } class C1 = self::A1 with self::B1 { synthetic constructor •(core::int a) → self::C1 @@ -32,10 +29,7 @@ class A2 extends core::Object { : self::A2::a = a, super core::Object::•() ; } -class B2 extends core::Object { - synthetic constructor •() → self::B2 - : super core::Object::•() - ; +abstract class B2 extends core::Object /*isMixinDeclaration*/ { } class C2 = self::A2 with self::B2 { synthetic constructor •({core::int a = #C1}) → self::C2 @@ -53,10 +47,7 @@ class A3 extends core::Object { : self::A3::a = a, super core::Object::•() ; } -class B3 extends core::Object { - synthetic constructor •() → self::B3 - : super core::Object::•() - ; +abstract class B3 extends core::Object /*isMixinDeclaration*/ { } class C3 = self::A3 with self::B3 { synthetic constructor •([core::int a = #C1]) → self::C3 @@ -78,10 +69,7 @@ class C4 = self::A4 with self::B4 { : super self::A4::•(foo) ; } -class B4 extends core::Object { - synthetic constructor •() → self::B4 - : super core::Object::•() - ; +abstract class B4 extends core::Object /*isMixinDeclaration*/ { } class A4 extends self::AA4 { constructor •([core::int foo = #C2]) → self::A4 @@ -114,10 +102,7 @@ class C5a = self::A5 with self::B5 { : super self::A5::•(foo) ; } -class B5 extends core::Object { - synthetic constructor •() → self::B5 - : super core::Object::•() - ; +abstract class B5 extends core::Object /*isMixinDeclaration*/ { } class A5 extends self::AA5 { constructor •([core::int foo = #C2]) → self::A5 @@ -135,10 +120,7 @@ class D6 extends syn::C6 { : super syn::C6::•(a: a) ; } -class B7 extends core::Object { - synthetic constructor •() → self::B7 - : super core::Object::•() - ; +abstract class B7 extends core::Object /*isMixinDeclaration*/ { } class C7 = syn::A7 with self::B7 { synthetic constructor •([core::int a = #C1]) → self::C7 @@ -155,10 +137,7 @@ class D8 extends syn::C8 { : super syn::C8::•(a: a) ; } -class B9 extends core::Object { - synthetic constructor •() → self::B9 - : super core::Object::•() - ; +abstract class B9 extends core::Object /*isMixinDeclaration*/ { } class C9 = syn::A9 with self::B9 { synthetic constructor •([core::int? a = #C3]) → self::C9 diff --git a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.strong.transformed.expect b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.strong.transformed.expect index 8995764c85e..0a71635938d 100644 --- a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.strong.transformed.expect @@ -11,10 +11,7 @@ class A1 extends core::Object { : self::A1::a = a, super core::Object::•() ; } -class B1 extends core::Object { - synthetic constructor •() → self::B1 - : super core::Object::•() - ; +abstract class B1 extends core::Object /*isMixinDeclaration*/ { } class C1 extends self::A1 implements self::B1 /*isEliminatedMixin*/ { synthetic constructor •(core::int a) → self::C1 @@ -32,10 +29,7 @@ class A2 extends core::Object { : self::A2::a = a, super core::Object::•() ; } -class B2 extends core::Object { - synthetic constructor •() → self::B2 - : super core::Object::•() - ; +abstract class B2 extends core::Object /*isMixinDeclaration*/ { } class C2 extends self::A2 implements self::B2 /*isEliminatedMixin*/ { synthetic constructor •({core::int a = #C1}) → self::C2 @@ -53,10 +47,7 @@ class A3 extends core::Object { : self::A3::a = a, super core::Object::•() ; } -class B3 extends core::Object { - synthetic constructor •() → self::B3 - : super core::Object::•() - ; +abstract class B3 extends core::Object /*isMixinDeclaration*/ { } class C3 extends self::A3 implements self::B3 /*isEliminatedMixin*/ { synthetic constructor •([core::int a = #C1]) → self::C3 @@ -78,10 +69,7 @@ class C4 extends self::A4 implements self::B4 /*isEliminatedMixin*/ { : super self::A4::•(foo) ; } -class B4 extends core::Object { - synthetic constructor •() → self::B4 - : super core::Object::•() - ; +abstract class B4 extends core::Object /*isMixinDeclaration*/ { } class A4 extends self::AA4 { constructor •([core::int foo = #C2]) → self::A4 @@ -114,10 +102,7 @@ class C5a extends self::A5 implements self::B5 /*isEliminatedMixin*/ { : super self::A5::•(foo) ; } -class B5 extends core::Object { - synthetic constructor •() → self::B5 - : super core::Object::•() - ; +abstract class B5 extends core::Object /*isMixinDeclaration*/ { } class A5 extends self::AA5 { constructor •([core::int foo = #C2]) → self::A5 @@ -135,10 +120,7 @@ class D6 extends syn::C6 { : super syn::C6::•(a: a) ; } -class B7 extends core::Object { - synthetic constructor •() → self::B7 - : super core::Object::•() - ; +abstract class B7 extends core::Object /*isMixinDeclaration*/ { } class C7 extends syn::A7 implements self::B7 /*isEliminatedMixin*/ { synthetic constructor •([core::int a = #C1]) → self::C7 @@ -155,10 +137,7 @@ class D8 extends syn::C8 { : super syn::C8::•(a: a) ; } -class B9 extends core::Object { - synthetic constructor •() → self::B9 - : super core::Object::•() - ; +abstract class B9 extends core::Object /*isMixinDeclaration*/ { } class C9 extends syn::A9 implements self::B9 /*isEliminatedMixin*/ { synthetic constructor •([core::int? a = #C3]) → self::C9 diff --git a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline.expect b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline.expect index 576eaec0349..ca5252f4369 100644 --- a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline.expect +++ b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline.expect @@ -5,8 +5,7 @@ class A1 { A1(this.a); } -class B1 {} - +mixin B1 {} class C1 = A1 with B1; class D1 extends C1 { @@ -18,8 +17,7 @@ class A2 { A2({this.a = 0}); } -class B2 {} - +mixin B2 {} class C2 = A2 with B2; class D2 extends C2 { @@ -31,8 +29,7 @@ class A3 { A3([this.a = 0]); } -class B3 {} - +mixin B3 {} class C3 = A3 with B3; class D3 extends C3 { @@ -44,8 +41,7 @@ class D4 extends C4 { } class C4 = A4 with B4; - -class B4 {} +mixin B4 {} class A4 extends AA4 { A4([super.foo]); @@ -63,8 +59,7 @@ class D5 extends C5c { class C5c = C5b with B5; class C5b = C5a with B5; class C5a = A5 with B5; - -class B5 {} +mixin B5 {} class A5 extends AA5 { A5([super.foo]); @@ -79,8 +74,7 @@ class D6 extends C6 { D6({super.a}); } -class B7 {} - +mixin B7 {} class C7 = A7 with B7; class D7 extends C7 { @@ -91,8 +85,7 @@ class D8 extends C8 { D8({super.a}); } -class B9 {} - +mixin B9 {} class C9 = A9 with B9; class D9 extends C9 { diff --git a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline_modelled.expect index 12b80fcafd6..d81a731371b 100644 --- a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.textual_outline_modelled.expect @@ -33,20 +33,6 @@ class AA5 { final int foo; } -class B1 {} - -class B2 {} - -class B3 {} - -class B4 {} - -class B5 {} - -class B7 {} - -class B9 {} - class C1 = A1 with B1; class C2 = A2 with B2; class C3 = A3 with B3; @@ -94,3 +80,10 @@ class D9 extends C9 { } main() {} +mixin B1 {} +mixin B2 {} +mixin B3 {} +mixin B4 {} +mixin B5 {} +mixin B7 {} +mixin B9 {} diff --git a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.expect b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.expect index 1d3e74047a9..1616ce201c8 100644 --- a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.expect +++ b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.expect @@ -11,10 +11,7 @@ class A1 extends core::Object { : self::A1::a = a, super core::Object::•() ; } -class B1 extends core::Object { - synthetic constructor •() → self::B1 - : super core::Object::•() - ; +abstract class B1 extends core::Object /*isMixinDeclaration*/ { } class C1 = self::A1 with self::B1 { synthetic constructor •(core::int a) → self::C1 @@ -32,10 +29,7 @@ class A2 extends core::Object { : self::A2::a = a, super core::Object::•() ; } -class B2 extends core::Object { - synthetic constructor •() → self::B2 - : super core::Object::•() - ; +abstract class B2 extends core::Object /*isMixinDeclaration*/ { } class C2 = self::A2 with self::B2 { synthetic constructor •({core::int a = #C1}) → self::C2 @@ -53,10 +47,7 @@ class A3 extends core::Object { : self::A3::a = a, super core::Object::•() ; } -class B3 extends core::Object { - synthetic constructor •() → self::B3 - : super core::Object::•() - ; +abstract class B3 extends core::Object /*isMixinDeclaration*/ { } class C3 = self::A3 with self::B3 { synthetic constructor •([core::int a = #C1]) → self::C3 @@ -78,10 +69,7 @@ class C4 = self::A4 with self::B4 { : super self::A4::•(foo) ; } -class B4 extends core::Object { - synthetic constructor •() → self::B4 - : super core::Object::•() - ; +abstract class B4 extends core::Object /*isMixinDeclaration*/ { } class A4 extends self::AA4 { constructor •([core::int foo = #C2]) → self::A4 @@ -114,10 +102,7 @@ class C5a = self::A5 with self::B5 { : super self::A5::•(foo) ; } -class B5 extends core::Object { - synthetic constructor •() → self::B5 - : super core::Object::•() - ; +abstract class B5 extends core::Object /*isMixinDeclaration*/ { } class A5 extends self::AA5 { constructor •([core::int foo = #C2]) → self::A5 @@ -135,10 +120,7 @@ class D6 extends syn::C6 { : super syn::C6::•(a: a) ; } -class B7 extends core::Object { - synthetic constructor •() → self::B7 - : super core::Object::•() - ; +abstract class B7 extends core::Object /*isMixinDeclaration*/ { } class C7 = syn::A7 with self::B7 { synthetic constructor •([core::int a = #C1]) → self::C7 @@ -155,10 +137,7 @@ class D8 extends syn::C8 { : super syn::C8::•(a: a) ; } -class B9 extends core::Object { - synthetic constructor •() → self::B9 - : super core::Object::•() - ; +abstract class B9 extends core::Object /*isMixinDeclaration*/ { } class C9 = syn::A9 with self::B9 { synthetic constructor •([core::int? a = #C3]) → self::C9 diff --git a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.modular.expect b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.modular.expect index 1d3e74047a9..1616ce201c8 100644 --- a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.modular.expect +++ b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.modular.expect @@ -11,10 +11,7 @@ class A1 extends core::Object { : self::A1::a = a, super core::Object::•() ; } -class B1 extends core::Object { - synthetic constructor •() → self::B1 - : super core::Object::•() - ; +abstract class B1 extends core::Object /*isMixinDeclaration*/ { } class C1 = self::A1 with self::B1 { synthetic constructor •(core::int a) → self::C1 @@ -32,10 +29,7 @@ class A2 extends core::Object { : self::A2::a = a, super core::Object::•() ; } -class B2 extends core::Object { - synthetic constructor •() → self::B2 - : super core::Object::•() - ; +abstract class B2 extends core::Object /*isMixinDeclaration*/ { } class C2 = self::A2 with self::B2 { synthetic constructor •({core::int a = #C1}) → self::C2 @@ -53,10 +47,7 @@ class A3 extends core::Object { : self::A3::a = a, super core::Object::•() ; } -class B3 extends core::Object { - synthetic constructor •() → self::B3 - : super core::Object::•() - ; +abstract class B3 extends core::Object /*isMixinDeclaration*/ { } class C3 = self::A3 with self::B3 { synthetic constructor •([core::int a = #C1]) → self::C3 @@ -78,10 +69,7 @@ class C4 = self::A4 with self::B4 { : super self::A4::•(foo) ; } -class B4 extends core::Object { - synthetic constructor •() → self::B4 - : super core::Object::•() - ; +abstract class B4 extends core::Object /*isMixinDeclaration*/ { } class A4 extends self::AA4 { constructor •([core::int foo = #C2]) → self::A4 @@ -114,10 +102,7 @@ class C5a = self::A5 with self::B5 { : super self::A5::•(foo) ; } -class B5 extends core::Object { - synthetic constructor •() → self::B5 - : super core::Object::•() - ; +abstract class B5 extends core::Object /*isMixinDeclaration*/ { } class A5 extends self::AA5 { constructor •([core::int foo = #C2]) → self::A5 @@ -135,10 +120,7 @@ class D6 extends syn::C6 { : super syn::C6::•(a: a) ; } -class B7 extends core::Object { - synthetic constructor •() → self::B7 - : super core::Object::•() - ; +abstract class B7 extends core::Object /*isMixinDeclaration*/ { } class C7 = syn::A7 with self::B7 { synthetic constructor •([core::int a = #C1]) → self::C7 @@ -155,10 +137,7 @@ class D8 extends syn::C8 { : super syn::C8::•(a: a) ; } -class B9 extends core::Object { - synthetic constructor •() → self::B9 - : super core::Object::•() - ; +abstract class B9 extends core::Object /*isMixinDeclaration*/ { } class C9 = syn::A9 with self::B9 { synthetic constructor •([core::int? a = #C3]) → self::C9 diff --git a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.outline.expect b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.outline.expect index 8752d3dafa2..1863d0f08a5 100644 --- a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.outline.expect +++ b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.outline.expect @@ -10,9 +10,7 @@ class A1 extends core::Object { constructor •(core::int a) → self::A1 ; } -class B1 extends core::Object { - synthetic constructor •() → self::B1 - ; +abstract class B1 extends core::Object /*isMixinDeclaration*/ { } class C1 = self::A1 with self::B1 { synthetic constructor •(core::int a) → self::C1 @@ -28,9 +26,7 @@ class A2 extends core::Object { constructor •({core::int a = 0}) → self::A2 ; } -class B2 extends core::Object { - synthetic constructor •() → self::B2 - ; +abstract class B2 extends core::Object /*isMixinDeclaration*/ { } class C2 = self::A2 with self::B2 { synthetic constructor •({core::int a = 0}) → self::C2 @@ -46,9 +42,7 @@ class A3 extends core::Object { constructor •([core::int a = 0]) → self::A3 ; } -class B3 extends core::Object { - synthetic constructor •() → self::B3 - ; +abstract class B3 extends core::Object /*isMixinDeclaration*/ { } class C3 = self::A3 with self::B3 { synthetic constructor •([core::int a = 0]) → self::C3 @@ -68,9 +62,7 @@ class C4 = self::A4 with self::B4 { : super self::A4::•(foo) ; } -class B4 extends core::Object { - synthetic constructor •() → self::B4 - ; +abstract class B4 extends core::Object /*isMixinDeclaration*/ { } class A4 extends self::AA4 { constructor •([core::int foo = 42]) → self::A4 @@ -100,9 +92,7 @@ class C5a = self::A5 with self::B5 { : super self::A5::•(foo) ; } -class B5 extends core::Object { - synthetic constructor •() → self::B5 - ; +abstract class B5 extends core::Object /*isMixinDeclaration*/ { } class A5 extends self::AA5 { constructor •([core::int foo = 42]) → self::A5 @@ -117,9 +107,7 @@ class D6 extends syn::C6 { constructor •({core::int a = 0}) → self::D6 ; } -class B7 extends core::Object { - synthetic constructor •() → self::B7 - ; +abstract class B7 extends core::Object /*isMixinDeclaration*/ { } class C7 = syn::A7 with self::B7 { synthetic constructor •([core::int a = 0]) → self::C7 @@ -134,9 +122,7 @@ class D8 extends syn::C8 { constructor •({core::int? a = null}) → self::D8 ; } -class B9 extends core::Object { - synthetic constructor •() → self::B9 - ; +abstract class B9 extends core::Object /*isMixinDeclaration*/ { } class C9 = syn::A9 with self::B9 { synthetic constructor •([core::int? a = null]) → self::C9 diff --git a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.transformed.expect b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.transformed.expect index 8995764c85e..0a71635938d 100644 --- a/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/super_parameters/synthesized_super_constructor_with_parameters.dart.weak.transformed.expect @@ -11,10 +11,7 @@ class A1 extends core::Object { : self::A1::a = a, super core::Object::•() ; } -class B1 extends core::Object { - synthetic constructor •() → self::B1 - : super core::Object::•() - ; +abstract class B1 extends core::Object /*isMixinDeclaration*/ { } class C1 extends self::A1 implements self::B1 /*isEliminatedMixin*/ { synthetic constructor •(core::int a) → self::C1 @@ -32,10 +29,7 @@ class A2 extends core::Object { : self::A2::a = a, super core::Object::•() ; } -class B2 extends core::Object { - synthetic constructor •() → self::B2 - : super core::Object::•() - ; +abstract class B2 extends core::Object /*isMixinDeclaration*/ { } class C2 extends self::A2 implements self::B2 /*isEliminatedMixin*/ { synthetic constructor •({core::int a = #C1}) → self::C2 @@ -53,10 +47,7 @@ class A3 extends core::Object { : self::A3::a = a, super core::Object::•() ; } -class B3 extends core::Object { - synthetic constructor •() → self::B3 - : super core::Object::•() - ; +abstract class B3 extends core::Object /*isMixinDeclaration*/ { } class C3 extends self::A3 implements self::B3 /*isEliminatedMixin*/ { synthetic constructor •([core::int a = #C1]) → self::C3 @@ -78,10 +69,7 @@ class C4 extends self::A4 implements self::B4 /*isEliminatedMixin*/ { : super self::A4::•(foo) ; } -class B4 extends core::Object { - synthetic constructor •() → self::B4 - : super core::Object::•() - ; +abstract class B4 extends core::Object /*isMixinDeclaration*/ { } class A4 extends self::AA4 { constructor •([core::int foo = #C2]) → self::A4 @@ -114,10 +102,7 @@ class C5a extends self::A5 implements self::B5 /*isEliminatedMixin*/ { : super self::A5::•(foo) ; } -class B5 extends core::Object { - synthetic constructor •() → self::B5 - : super core::Object::•() - ; +abstract class B5 extends core::Object /*isMixinDeclaration*/ { } class A5 extends self::AA5 { constructor •([core::int foo = #C2]) → self::A5 @@ -135,10 +120,7 @@ class D6 extends syn::C6 { : super syn::C6::•(a: a) ; } -class B7 extends core::Object { - synthetic constructor •() → self::B7 - : super core::Object::•() - ; +abstract class B7 extends core::Object /*isMixinDeclaration*/ { } class C7 extends syn::A7 implements self::B7 /*isEliminatedMixin*/ { synthetic constructor •([core::int a = #C1]) → self::C7 @@ -155,10 +137,7 @@ class D8 extends syn::C8 { : super syn::C8::•(a: a) ; } -class B9 extends core::Object { - synthetic constructor •() → self::B9 - : super core::Object::•() - ; +abstract class B9 extends core::Object /*isMixinDeclaration*/ { } class C9 extends syn::A9 implements self::B9 /*isEliminatedMixin*/ { synthetic constructor •([core::int? a = #C3]) → self::C9 diff --git a/pkg/front_end/testcases/value_class/explicit_mixin.dart b/pkg/front_end/testcases/value_class/explicit_mixin.dart index 47b83d5cce3..c9523c71438 100644 --- a/pkg/front_end/testcases/value_class/explicit_mixin.dart +++ b/pkg/front_end/testcases/value_class/explicit_mixin.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 + import 'value_class_support_lib.dart'; @valueClass @@ -17,4 +19,4 @@ class E = B with A; @valueClass class F = B with C; -main() {} \ No newline at end of file +main() {} diff --git a/pkg/front_end/testcases/value_class/explicit_mixin.dart.strong.transformed.expect b/pkg/front_end/testcases/value_class/explicit_mixin.dart.strong.transformed.expect index f3cd9d1ab36..bb2f49ad3b6 100644 --- a/pkg/front_end/testcases/value_class/explicit_mixin.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/value_class/explicit_mixin.dart.strong.transformed.expect @@ -87,7 +87,7 @@ constants { } Extra constant evaluation status: -Evaluated: StringConcatenation @ org-dartlang-testcase:///explicit_mixin.dart:8:7 -> StringConstant("A()") -Evaluated: StringConcatenation @ org-dartlang-testcase:///explicit_mixin.dart:8:7 -> StringConstant("A()") -Evaluated: StringConcatenation @ org-dartlang-testcase:///explicit_mixin.dart:18:7 -> StringConstant("F()") +Evaluated: StringConcatenation @ org-dartlang-testcase:///explicit_mixin.dart:10:7 -> StringConstant("A()") +Evaluated: StringConcatenation @ org-dartlang-testcase:///explicit_mixin.dart:10:7 -> StringConstant("A()") +Evaluated: StringConcatenation @ org-dartlang-testcase:///explicit_mixin.dart:20:7 -> StringConstant("F()") Extra constant evaluation: evaluated: 52, effectively constant: 3 diff --git a/pkg/front_end/testcases/value_class/explicit_mixin.dart.textual_outline.expect b/pkg/front_end/testcases/value_class/explicit_mixin.dart.textual_outline.expect index aea61511fe7..43110bce2f2 100644 --- a/pkg/front_end/testcases/value_class/explicit_mixin.dart.textual_outline.expect +++ b/pkg/front_end/testcases/value_class/explicit_mixin.dart.textual_outline.expect @@ -1,3 +1,4 @@ +// @dart = 2.19 import 'value_class_support_lib.dart'; @valueClass diff --git a/pkg/front_end/testcases/value_class/explicit_mixin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/value_class/explicit_mixin.dart.textual_outline_modelled.expect index aea61511fe7..43110bce2f2 100644 --- a/pkg/front_end/testcases/value_class/explicit_mixin.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/value_class/explicit_mixin.dart.textual_outline_modelled.expect @@ -1,3 +1,4 @@ +// @dart = 2.19 import 'value_class_support_lib.dart'; @valueClass diff --git a/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.outline.expect b/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.outline.expect index da7ab09121f..0356fe1d63a 100644 --- a/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.outline.expect +++ b/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.outline.expect @@ -53,6 +53,6 @@ static const field core::String valueClass = "valueClass"; Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///explicit_mixin.dart:7:2 -> StringConstant("valueClass") -Evaluated: StaticGet @ org-dartlang-testcase:///explicit_mixin.dart:17:2 -> StringConstant("valueClass") +Evaluated: StaticGet @ org-dartlang-testcase:///explicit_mixin.dart:9:2 -> StringConstant("valueClass") +Evaluated: StaticGet @ org-dartlang-testcase:///explicit_mixin.dart:19:2 -> StringConstant("valueClass") Extra constant evaluation: evaluated: 2, effectively constant: 2 diff --git a/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.transformed.expect b/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.transformed.expect index f3cd9d1ab36..bb2f49ad3b6 100644 --- a/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/value_class/explicit_mixin.dart.weak.transformed.expect @@ -87,7 +87,7 @@ constants { } Extra constant evaluation status: -Evaluated: StringConcatenation @ org-dartlang-testcase:///explicit_mixin.dart:8:7 -> StringConstant("A()") -Evaluated: StringConcatenation @ org-dartlang-testcase:///explicit_mixin.dart:8:7 -> StringConstant("A()") -Evaluated: StringConcatenation @ org-dartlang-testcase:///explicit_mixin.dart:18:7 -> StringConstant("F()") +Evaluated: StringConcatenation @ org-dartlang-testcase:///explicit_mixin.dart:10:7 -> StringConstant("A()") +Evaluated: StringConcatenation @ org-dartlang-testcase:///explicit_mixin.dart:10:7 -> StringConstant("A()") +Evaluated: StringConcatenation @ org-dartlang-testcase:///explicit_mixin.dart:20:7 -> StringConstant("F()") Extra constant evaluation: evaluated: 52, effectively constant: 3 diff --git a/pkg/front_end/testcases/value_class/value_mixin_error.dart b/pkg/front_end/testcases/value_class/value_mixin_error.dart index a6bfe0908ae..7f5145374f1 100644 --- a/pkg/front_end/testcases/value_class/value_mixin_error.dart +++ b/pkg/front_end/testcases/value_class/value_mixin_error.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 + import 'value_class_support_lib.dart'; @valueClass @@ -10,6 +12,7 @@ class A {} class B {} class C extends B with A {} // error, value class as mixin + class D extends A with B {} // error, D extends a value class -main() {} \ No newline at end of file +main() {} diff --git a/pkg/front_end/testcases/value_class/value_mixin_error.dart.strong.transformed.expect b/pkg/front_end/testcases/value_class/value_mixin_error.dart.strong.transformed.expect index 86f62437e96..7cfa63cbd6d 100644 --- a/pkg/front_end/testcases/value_class/value_mixin_error.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/value_class/value_mixin_error.dart.strong.transformed.expect @@ -79,6 +79,6 @@ constants { } Extra constant evaluation status: -Evaluated: StringConcatenation @ org-dartlang-testcase:///value_mixin_error.dart:8:7 -> StringConstant("A()") -Evaluated: StringConcatenation @ org-dartlang-testcase:///value_mixin_error.dart:8:7 -> StringConstant("A()") +Evaluated: StringConcatenation @ org-dartlang-testcase:///value_mixin_error.dart:10:7 -> StringConstant("A()") +Evaluated: StringConcatenation @ org-dartlang-testcase:///value_mixin_error.dart:10:7 -> StringConstant("A()") Extra constant evaluation: evaluated: 46, effectively constant: 2 diff --git a/pkg/front_end/testcases/value_class/value_mixin_error.dart.textual_outline.expect b/pkg/front_end/testcases/value_class/value_mixin_error.dart.textual_outline.expect index 0e31c97b3f8..038bb86c087 100644 --- a/pkg/front_end/testcases/value_class/value_mixin_error.dart.textual_outline.expect +++ b/pkg/front_end/testcases/value_class/value_mixin_error.dart.textual_outline.expect @@ -1,3 +1,4 @@ +// @dart = 2.19 import 'value_class_support_lib.dart'; @valueClass diff --git a/pkg/front_end/testcases/value_class/value_mixin_error.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/value_class/value_mixin_error.dart.textual_outline_modelled.expect index 0e31c97b3f8..038bb86c087 100644 --- a/pkg/front_end/testcases/value_class/value_mixin_error.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/value_class/value_mixin_error.dart.textual_outline_modelled.expect @@ -1,3 +1,4 @@ +// @dart = 2.19 import 'value_class_support_lib.dart'; @valueClass diff --git a/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.outline.expect b/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.outline.expect index cbe7b43bab2..3fe110fcbdb 100644 --- a/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.outline.expect +++ b/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.outline.expect @@ -51,5 +51,5 @@ static const field core::String valueClass = "valueClass"; Extra constant evaluation status: -Evaluated: StaticGet @ org-dartlang-testcase:///value_mixin_error.dart:7:2 -> StringConstant("valueClass") +Evaluated: StaticGet @ org-dartlang-testcase:///value_mixin_error.dart:9:2 -> StringConstant("valueClass") Extra constant evaluation: evaluated: 1, effectively constant: 1 diff --git a/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.transformed.expect b/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.transformed.expect index 86f62437e96..7cfa63cbd6d 100644 --- a/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/value_class/value_mixin_error.dart.weak.transformed.expect @@ -79,6 +79,6 @@ constants { } Extra constant evaluation status: -Evaluated: StringConcatenation @ org-dartlang-testcase:///value_mixin_error.dart:8:7 -> StringConstant("A()") -Evaluated: StringConcatenation @ org-dartlang-testcase:///value_mixin_error.dart:8:7 -> StringConstant("A()") +Evaluated: StringConcatenation @ org-dartlang-testcase:///value_mixin_error.dart:10:7 -> StringConstant("A()") +Evaluated: StringConcatenation @ org-dartlang-testcase:///value_mixin_error.dart:10:7 -> StringConstant("A()") Extra constant evaluation: evaluated: 46, effectively constant: 2