diff --git a/pkg/front_end/testcases/general/bounds_type_parameters.dart b/pkg/front_end/testcases/general/bounds_type_parameters.dart index 9f3cfa8097d..1e7873910ee 100644 --- a/pkg/front_end/testcases/general/bounds_type_parameters.dart +++ b/pkg/front_end/testcases/general/bounds_type_parameters.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 Class {} +mixin Class {} class ConcreteClass implements Class {} diff --git a/pkg/front_end/testcases/general/bounds_type_parameters.dart.strong.expect b/pkg/front_end/testcases/general/bounds_type_parameters.dart.strong.expect index 1454709aca5..f7b07925bf3 100644 --- a/pkg/front_end/testcases/general/bounds_type_parameters.dart.strong.expect +++ b/pkg/front_end/testcases/general/bounds_type_parameters.dart.strong.expect @@ -605,10 +605,7 @@ typedef F = self::Class> = X; typedef Typedef1 = dynamic, unrelated T2 extends dynamic, unrelated T3 extends self::Class = dynamic, unrelated T4 extends self::Class = dynamic, unrelated T5 extends self::ConcreteClass = dynamic, unrelated T6 extends self::Class = dynamic, unrelated T7 extends core::Object = dynamic, unrelated T8 extends core::int = dynamic, unrelated S1 extends self::G> = dynamic, unrelated S2 extends self::G = dynamic, unrelated S3 extends self::G> = dynamic, unrelated S4 extends self::G> = dynamic, unrelated S5 extends self::G = dynamic, unrelated S6 extends self::G> = dynamic, unrelated S7 extends self::G = dynamic, unrelated S8 extends self::G = dynamic> = () → void; typedef Typedef2 = = dynamic, T2 extends dynamic, T3 extends self::Class = dynamic, T4 extends self::Class = dynamic, T5 extends self::ConcreteClass = dynamic, T6 extends self::Class = dynamic, T7 extends core::Object = dynamic, T8 extends core::int = dynamic, S1 extends self::G> = dynamic, S2 extends self::G = dynamic, S3 extends self::G> = dynamic, S4 extends self::G> = dynamic, S5 extends self::G = dynamic, S6 extends self::G> = dynamic, S7 extends self::G = dynamic, S8 extends self::G = dynamic>() → void; typedef Typedef3 = dynamic, unrelated T2 extends dynamic, unrelated T3 extends self::Class = dynamic, unrelated T4 extends self::Class = dynamic, unrelated T5 extends self::ConcreteClass = dynamic, unrelated T6 extends self::Class = dynamic, unrelated T7 extends core::Object = dynamic, unrelated T8 extends core::int = dynamic, unrelated S1 extends self::G> = dynamic, unrelated S2 extends self::G = dynamic, unrelated S3 extends self::G> = dynamic, unrelated S4 extends self::G> = dynamic, unrelated S5 extends self::G = dynamic, unrelated S6 extends self::G> = dynamic, unrelated S7 extends self::G = dynamic, unrelated S8 extends self::G = dynamic> = () → void; -class Class extends core::Object { - synthetic constructor •() → self::Class - : super core::Object::•() - ; +abstract class Class extends core::Object /*isMixinDeclaration*/ { } class ConcreteClass extends core::Object implements self::Class { synthetic constructor •() → self::ConcreteClass diff --git a/pkg/front_end/testcases/general/bounds_type_parameters.dart.strong.transformed.expect b/pkg/front_end/testcases/general/bounds_type_parameters.dart.strong.transformed.expect index efe11fab897..671498da8eb 100644 --- a/pkg/front_end/testcases/general/bounds_type_parameters.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/bounds_type_parameters.dart.strong.transformed.expect @@ -605,10 +605,7 @@ typedef F = self::Class> = X; typedef Typedef1 = dynamic, unrelated T2 extends dynamic, unrelated T3 extends self::Class = dynamic, unrelated T4 extends self::Class = dynamic, unrelated T5 extends self::ConcreteClass = dynamic, unrelated T6 extends self::Class = dynamic, unrelated T7 extends core::Object = dynamic, unrelated T8 extends core::int = dynamic, unrelated S1 extends self::G> = dynamic, unrelated S2 extends self::G = dynamic, unrelated S3 extends self::G> = dynamic, unrelated S4 extends self::G> = dynamic, unrelated S5 extends self::G = dynamic, unrelated S6 extends self::G> = dynamic, unrelated S7 extends self::G = dynamic, unrelated S8 extends self::G = dynamic> = () → void; typedef Typedef2 = = dynamic, T2 extends dynamic, T3 extends self::Class = dynamic, T4 extends self::Class = dynamic, T5 extends self::ConcreteClass = dynamic, T6 extends self::Class = dynamic, T7 extends core::Object = dynamic, T8 extends core::int = dynamic, S1 extends self::G> = dynamic, S2 extends self::G = dynamic, S3 extends self::G> = dynamic, S4 extends self::G> = dynamic, S5 extends self::G = dynamic, S6 extends self::G> = dynamic, S7 extends self::G = dynamic, S8 extends self::G = dynamic>() → void; typedef Typedef3 = dynamic, unrelated T2 extends dynamic, unrelated T3 extends self::Class = dynamic, unrelated T4 extends self::Class = dynamic, unrelated T5 extends self::ConcreteClass = dynamic, unrelated T6 extends self::Class = dynamic, unrelated T7 extends core::Object = dynamic, unrelated T8 extends core::int = dynamic, unrelated S1 extends self::G> = dynamic, unrelated S2 extends self::G = dynamic, unrelated S3 extends self::G> = dynamic, unrelated S4 extends self::G> = dynamic, unrelated S5 extends self::G = dynamic, unrelated S6 extends self::G> = dynamic, unrelated S7 extends self::G = dynamic, unrelated S8 extends self::G = dynamic> = () → void; -class Class extends core::Object { - synthetic constructor •() → self::Class - : super core::Object::•() - ; +abstract class Class extends core::Object /*isMixinDeclaration*/ { } class ConcreteClass extends core::Object implements self::Class { synthetic constructor •() → self::ConcreteClass diff --git a/pkg/front_end/testcases/general/bounds_type_parameters.dart.textual_outline.expect b/pkg/front_end/testcases/general/bounds_type_parameters.dart.textual_outline.expect index 7608f2da31a..174bcbf515c 100644 --- a/pkg/front_end/testcases/general/bounds_type_parameters.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/bounds_type_parameters.dart.textual_outline.expect @@ -1,4 +1,4 @@ -class Class {} +mixin Class {} class ConcreteClass implements Class {} diff --git a/pkg/front_end/testcases/general/bounds_type_parameters.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/bounds_type_parameters.dart.textual_outline_modelled.expect index 216f660d66f..a925888dcee 100644 --- a/pkg/front_end/testcases/general/bounds_type_parameters.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/bounds_type_parameters.dart.textual_outline_modelled.expect @@ -1,5 +1,3 @@ -class Class {} - class Class1< T1 extends F, T2 extends F, @@ -95,6 +93,7 @@ extension Extension< S8 extends G> on Class {} main() {} +mixin Class {} mixin Mixin1< T1 extends F, T2 extends F, diff --git a/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.expect b/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.expect index 338d3be4ab1..824f60d56fe 100644 --- a/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.expect +++ b/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.expect @@ -605,10 +605,7 @@ typedef F = self::Class> = X; typedef Typedef1 = dynamic, unrelated T2 extends dynamic, unrelated T3 extends self::Class = dynamic, unrelated T4 extends self::Class = dynamic, unrelated T5 extends self::ConcreteClass = dynamic, unrelated T6 extends self::Class = dynamic, unrelated T7 extends core::Object = dynamic, unrelated T8 extends core::int = dynamic, unrelated S1 extends self::G> = dynamic, unrelated S2 extends self::G = dynamic, unrelated S3 extends self::G> = dynamic, unrelated S4 extends self::G> = dynamic, unrelated S5 extends self::G = dynamic, unrelated S6 extends self::G> = dynamic, unrelated S7 extends self::G = dynamic, unrelated S8 extends self::G = dynamic> = () → void; typedef Typedef2 = = dynamic, T2 extends dynamic, T3 extends self::Class = dynamic, T4 extends self::Class = dynamic, T5 extends self::ConcreteClass = dynamic, T6 extends self::Class = dynamic, T7 extends core::Object = dynamic, T8 extends core::int = dynamic, S1 extends self::G> = dynamic, S2 extends self::G = dynamic, S3 extends self::G> = dynamic, S4 extends self::G> = dynamic, S5 extends self::G = dynamic, S6 extends self::G> = dynamic, S7 extends self::G = dynamic, S8 extends self::G = dynamic>() → void; typedef Typedef3 = dynamic, unrelated T2 extends dynamic, unrelated T3 extends self::Class = dynamic, unrelated T4 extends self::Class = dynamic, unrelated T5 extends self::ConcreteClass = dynamic, unrelated T6 extends self::Class = dynamic, unrelated T7 extends core::Object = dynamic, unrelated T8 extends core::int = dynamic, unrelated S1 extends self::G> = dynamic, unrelated S2 extends self::G = dynamic, unrelated S3 extends self::G> = dynamic, unrelated S4 extends self::G> = dynamic, unrelated S5 extends self::G = dynamic, unrelated S6 extends self::G> = dynamic, unrelated S7 extends self::G = dynamic, unrelated S8 extends self::G = dynamic> = () → void; -class Class extends core::Object { - synthetic constructor •() → self::Class - : super core::Object::•() - ; +abstract class Class extends core::Object /*isMixinDeclaration*/ { } class ConcreteClass extends core::Object implements self::Class { synthetic constructor •() → self::ConcreteClass diff --git a/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.modular.expect b/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.modular.expect index 338d3be4ab1..824f60d56fe 100644 --- a/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.modular.expect @@ -605,10 +605,7 @@ typedef F = self::Class> = X; typedef Typedef1 = dynamic, unrelated T2 extends dynamic, unrelated T3 extends self::Class = dynamic, unrelated T4 extends self::Class = dynamic, unrelated T5 extends self::ConcreteClass = dynamic, unrelated T6 extends self::Class = dynamic, unrelated T7 extends core::Object = dynamic, unrelated T8 extends core::int = dynamic, unrelated S1 extends self::G> = dynamic, unrelated S2 extends self::G = dynamic, unrelated S3 extends self::G> = dynamic, unrelated S4 extends self::G> = dynamic, unrelated S5 extends self::G = dynamic, unrelated S6 extends self::G> = dynamic, unrelated S7 extends self::G = dynamic, unrelated S8 extends self::G = dynamic> = () → void; typedef Typedef2 = = dynamic, T2 extends dynamic, T3 extends self::Class = dynamic, T4 extends self::Class = dynamic, T5 extends self::ConcreteClass = dynamic, T6 extends self::Class = dynamic, T7 extends core::Object = dynamic, T8 extends core::int = dynamic, S1 extends self::G> = dynamic, S2 extends self::G = dynamic, S3 extends self::G> = dynamic, S4 extends self::G> = dynamic, S5 extends self::G = dynamic, S6 extends self::G> = dynamic, S7 extends self::G = dynamic, S8 extends self::G = dynamic>() → void; typedef Typedef3 = dynamic, unrelated T2 extends dynamic, unrelated T3 extends self::Class = dynamic, unrelated T4 extends self::Class = dynamic, unrelated T5 extends self::ConcreteClass = dynamic, unrelated T6 extends self::Class = dynamic, unrelated T7 extends core::Object = dynamic, unrelated T8 extends core::int = dynamic, unrelated S1 extends self::G> = dynamic, unrelated S2 extends self::G = dynamic, unrelated S3 extends self::G> = dynamic, unrelated S4 extends self::G> = dynamic, unrelated S5 extends self::G = dynamic, unrelated S6 extends self::G> = dynamic, unrelated S7 extends self::G = dynamic, unrelated S8 extends self::G = dynamic> = () → void; -class Class extends core::Object { - synthetic constructor •() → self::Class - : super core::Object::•() - ; +abstract class Class extends core::Object /*isMixinDeclaration*/ { } class ConcreteClass extends core::Object implements self::Class { synthetic constructor •() → self::ConcreteClass diff --git a/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.outline.expect b/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.outline.expect index 3567960df3f..1772db6bda3 100644 --- a/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.outline.expect @@ -514,9 +514,7 @@ typedef F = self::Class> = X; typedef Typedef1 = dynamic, unrelated T2 extends dynamic, unrelated T3 extends self::Class = dynamic, unrelated T4 extends self::Class = dynamic, unrelated T5 extends self::ConcreteClass = dynamic, unrelated T6 extends self::Class = dynamic, unrelated T7 extends core::Object = dynamic, unrelated T8 extends core::int = dynamic, unrelated S1 extends self::G> = dynamic, unrelated S2 extends self::G = dynamic, unrelated S3 extends self::G> = dynamic, unrelated S4 extends self::G> = dynamic, unrelated S5 extends self::G = dynamic, unrelated S6 extends self::G> = dynamic, unrelated S7 extends self::G = dynamic, unrelated S8 extends self::G = dynamic> = () → void; typedef Typedef2 = = dynamic, T2 extends dynamic, T3 extends self::Class = dynamic, T4 extends self::Class = dynamic, T5 extends self::ConcreteClass = dynamic, T6 extends self::Class = dynamic, T7 extends core::Object = dynamic, T8 extends core::int = dynamic, S1 extends self::G> = dynamic, S2 extends self::G = dynamic, S3 extends self::G> = dynamic, S4 extends self::G> = dynamic, S5 extends self::G = dynamic, S6 extends self::G> = dynamic, S7 extends self::G = dynamic, S8 extends self::G = dynamic>() → void; typedef Typedef3 = dynamic, unrelated T2 extends dynamic, unrelated T3 extends self::Class = dynamic, unrelated T4 extends self::Class = dynamic, unrelated T5 extends self::ConcreteClass = dynamic, unrelated T6 extends self::Class = dynamic, unrelated T7 extends core::Object = dynamic, unrelated T8 extends core::int = dynamic, unrelated S1 extends self::G> = dynamic, unrelated S2 extends self::G = dynamic, unrelated S3 extends self::G> = dynamic, unrelated S4 extends self::G> = dynamic, unrelated S5 extends self::G = dynamic, unrelated S6 extends self::G> = dynamic, unrelated S7 extends self::G = dynamic, unrelated S8 extends self::G = dynamic> = () → void; -class Class extends core::Object { - synthetic constructor •() → self::Class - ; +abstract class Class extends core::Object /*isMixinDeclaration*/ { } class ConcreteClass extends core::Object implements self::Class { synthetic constructor •() → self::ConcreteClass diff --git a/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.transformed.expect index 029483dd243..572a984b1e1 100644 --- a/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/bounds_type_parameters.dart.weak.transformed.expect @@ -605,10 +605,7 @@ typedef F = self::Class> = X; typedef Typedef1 = dynamic, unrelated T2 extends dynamic, unrelated T3 extends self::Class = dynamic, unrelated T4 extends self::Class = dynamic, unrelated T5 extends self::ConcreteClass = dynamic, unrelated T6 extends self::Class = dynamic, unrelated T7 extends core::Object = dynamic, unrelated T8 extends core::int = dynamic, unrelated S1 extends self::G> = dynamic, unrelated S2 extends self::G = dynamic, unrelated S3 extends self::G> = dynamic, unrelated S4 extends self::G> = dynamic, unrelated S5 extends self::G = dynamic, unrelated S6 extends self::G> = dynamic, unrelated S7 extends self::G = dynamic, unrelated S8 extends self::G = dynamic> = () → void; typedef Typedef2 = = dynamic, T2 extends dynamic, T3 extends self::Class = dynamic, T4 extends self::Class = dynamic, T5 extends self::ConcreteClass = dynamic, T6 extends self::Class = dynamic, T7 extends core::Object = dynamic, T8 extends core::int = dynamic, S1 extends self::G> = dynamic, S2 extends self::G = dynamic, S3 extends self::G> = dynamic, S4 extends self::G> = dynamic, S5 extends self::G = dynamic, S6 extends self::G> = dynamic, S7 extends self::G = dynamic, S8 extends self::G = dynamic>() → void; typedef Typedef3 = dynamic, unrelated T2 extends dynamic, unrelated T3 extends self::Class = dynamic, unrelated T4 extends self::Class = dynamic, unrelated T5 extends self::ConcreteClass = dynamic, unrelated T6 extends self::Class = dynamic, unrelated T7 extends core::Object = dynamic, unrelated T8 extends core::int = dynamic, unrelated S1 extends self::G> = dynamic, unrelated S2 extends self::G = dynamic, unrelated S3 extends self::G> = dynamic, unrelated S4 extends self::G> = dynamic, unrelated S5 extends self::G = dynamic, unrelated S6 extends self::G> = dynamic, unrelated S7 extends self::G = dynamic, unrelated S8 extends self::G = dynamic> = () → void; -class Class extends core::Object { - synthetic constructor •() → self::Class - : super core::Object::•() - ; +abstract class Class extends core::Object /*isMixinDeclaration*/ { } class ConcreteClass extends core::Object implements self::Class { synthetic constructor •() → self::ConcreteClass diff --git a/pkg/front_end/testcases/general/issue41210a.dart b/pkg/front_end/testcases/general/issue41210a.dart index 78cfc3c9dc0..4c9c5f2c814 100644 --- a/pkg/front_end/testcases/general/issue41210a.dart +++ b/pkg/front_end/testcases/general/issue41210a.dart @@ -14,17 +14,17 @@ 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); } class C with A, B {} // error -abstract class D implements Interface, Interface2 {} +mixin D implements Interface, Interface2 {} class E with A, D {} // ok -abstract class F implements Interface {} +mixin F implements Interface {} class G with A, F {} // ok diff --git a/pkg/front_end/testcases/general/issue41210a.dart.strong.expect b/pkg/front_end/testcases/general/issue41210a.dart.strong.expect index 89137302f07..6d8f74499fd 100644 --- a/pkg/front_end/testcases/general/issue41210a.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue41210a.dart.strong.expect @@ -31,10 +31,7 @@ abstract class A extends core::Object implements self::Interface /*isMixinDeclar method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements self::Interface { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object implements self::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } abstract class _C&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { @@ -55,10 +52,7 @@ class C extends self::_C&Object&A&B { : super self::_C&Object&A&B::•() ; } -abstract class D extends core::Object implements self::Interface, self::Interface2 { - synthetic constructor •() → self::D - : super core::Object::•() - ; +abstract class D extends core::Object implements self::Interface, self::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } abstract class _E&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { @@ -80,10 +74,7 @@ class E extends self::_E&Object&A&D { : super self::_E&Object&A&D::•() ; } -abstract class F extends core::Object implements self::Interface { - synthetic constructor •() → self::F - : super core::Object::•() - ; +abstract class F extends core::Object implements self::Interface /*isMixinDeclaration*/ { } abstract class _G&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_G&Object&A diff --git a/pkg/front_end/testcases/general/issue41210a.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue41210a.dart.textual_outline.expect index 599fc0f1b54..a7fbb848f24 100644 --- a/pkg/front_end/testcases/general/issue41210a.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/issue41210a.dart.textual_outline.expect @@ -9,18 +9,17 @@ abstract class Interface2 { 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); } class C with A, B {} -abstract class D implements Interface, Interface2 {} +mixin D implements Interface, Interface2 {} class E with A, D {} -abstract class F implements Interface {} +mixin F implements Interface {} class G with A, F {} diff --git a/pkg/front_end/testcases/general/issue41210a.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue41210a.dart.textual_outline_modelled.expect index d6c9646869e..bb1aa13a79c 100644 --- a/pkg/front_end/testcases/general/issue41210a.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/issue41210a.dart.textual_outline_modelled.expect @@ -1,11 +1,3 @@ -abstract class B implements Interface { - String method(num i); -} - -abstract class D implements Interface, Interface2 {} - -abstract class F implements Interface {} - abstract class Interface { String method(num i); } @@ -24,3 +16,8 @@ main() {} mixin A implements Interface { String method(num i, {String s = "hello"}) => s; } +mixin B implements Interface { + String method(num i); +} +mixin D implements Interface, Interface2 {} +mixin F implements Interface {} diff --git a/pkg/front_end/testcases/general/issue41210a.dart.weak.expect b/pkg/front_end/testcases/general/issue41210a.dart.weak.expect index 89137302f07..6d8f74499fd 100644 --- a/pkg/front_end/testcases/general/issue41210a.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue41210a.dart.weak.expect @@ -31,10 +31,7 @@ abstract class A extends core::Object implements self::Interface /*isMixinDeclar method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements self::Interface { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object implements self::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } abstract class _C&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { @@ -55,10 +52,7 @@ class C extends self::_C&Object&A&B { : super self::_C&Object&A&B::•() ; } -abstract class D extends core::Object implements self::Interface, self::Interface2 { - synthetic constructor •() → self::D - : super core::Object::•() - ; +abstract class D extends core::Object implements self::Interface, self::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } abstract class _E&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { @@ -80,10 +74,7 @@ class E extends self::_E&Object&A&D { : super self::_E&Object&A&D::•() ; } -abstract class F extends core::Object implements self::Interface { - synthetic constructor •() → self::F - : super core::Object::•() - ; +abstract class F extends core::Object implements self::Interface /*isMixinDeclaration*/ { } abstract class _G&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_G&Object&A diff --git a/pkg/front_end/testcases/general/issue41210a.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue41210a.dart.weak.modular.expect index 89137302f07..6d8f74499fd 100644 --- a/pkg/front_end/testcases/general/issue41210a.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/issue41210a.dart.weak.modular.expect @@ -31,10 +31,7 @@ abstract class A extends core::Object implements self::Interface /*isMixinDeclar method method(core::num i, {core::String s = #C1}) → core::String return s; } -abstract class B extends core::Object implements self::Interface { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object implements self::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } abstract class _C&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { @@ -55,10 +52,7 @@ class C extends self::_C&Object&A&B { : super self::_C&Object&A&B::•() ; } -abstract class D extends core::Object implements self::Interface, self::Interface2 { - synthetic constructor •() → self::D - : super core::Object::•() - ; +abstract class D extends core::Object implements self::Interface, self::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } abstract class _E&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { @@ -80,10 +74,7 @@ class E extends self::_E&Object&A&D { : super self::_E&Object&A&D::•() ; } -abstract class F extends core::Object implements self::Interface { - synthetic constructor •() → self::F - : super core::Object::•() - ; +abstract class F extends core::Object implements self::Interface /*isMixinDeclaration*/ { } abstract class _G&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_G&Object&A diff --git a/pkg/front_end/testcases/general/issue41210a.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue41210a.dart.weak.outline.expect index 22ccaeebdf8..5886e447b8e 100644 --- a/pkg/front_end/testcases/general/issue41210a.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue41210a.dart.weak.outline.expect @@ -29,9 +29,7 @@ abstract class A extends core::Object implements self::Interface /*isMixinDeclar method method(core::num i, {core::String s = "hello"}) → core::String ; } -abstract class B extends core::Object implements self::Interface { - synthetic constructor •() → self::B - ; +abstract class B extends core::Object implements self::Interface /*isMixinDeclaration*/ { abstract method method(core::num i) → core::String; } abstract class _C&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { @@ -51,9 +49,7 @@ class C extends self::_C&Object&A&B { synthetic constructor •() → self::C ; } -abstract class D extends core::Object implements self::Interface, self::Interface2 { - synthetic constructor •() → self::D - ; +abstract class D extends core::Object implements self::Interface, self::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } abstract class _E&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { @@ -74,9 +70,7 @@ class E extends self::_E&Object&A&D { synthetic constructor •() → self::E ; } -abstract class F extends core::Object implements self::Interface { - synthetic constructor •() → self::F - ; +abstract class F extends core::Object implements self::Interface /*isMixinDeclaration*/ { } abstract class _G&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_G&Object&A diff --git a/pkg/front_end/testcases/general/issue41210a_no_error.dart b/pkg/front_end/testcases/general/issue41210a_no_error.dart index b838aa983b7..370da14afbb 100644 --- a/pkg/front_end/testcases/general/issue41210a_no_error.dart +++ b/pkg/front_end/testcases/general/issue41210a_no_error.dart @@ -18,11 +18,11 @@ abstract class B implements Interface { String method(num i); } -abstract class D implements Interface, Interface2 {} +mixin D implements Interface, Interface2 {} class E with A, D {} // ok -abstract class F implements Interface {} +mixin F implements Interface {} class G with A, F {} // ok diff --git a/pkg/front_end/testcases/general/issue41210a_no_error.dart.strong.expect b/pkg/front_end/testcases/general/issue41210a_no_error.dart.strong.expect index 2913f38b5c1..4d9a1a696b2 100644 --- a/pkg/front_end/testcases/general/issue41210a_no_error.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue41210a_no_error.dart.strong.expect @@ -24,10 +24,7 @@ abstract class B extends core::Object implements self::Interface { ; abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements self::Interface, self::Interface2 { - synthetic constructor •() → self::D - : super core::Object::•() - ; +abstract class D extends core::Object implements self::Interface, self::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } abstract class _E&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { @@ -49,10 +46,7 @@ class E extends self::_E&Object&A&D { : super self::_E&Object&A&D::•() ; } -abstract class F extends core::Object implements self::Interface { - synthetic constructor •() → self::F - : super core::Object::•() - ; +abstract class F extends core::Object implements self::Interface /*isMixinDeclaration*/ { } abstract class _G&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_G&Object&A diff --git a/pkg/front_end/testcases/general/issue41210a_no_error.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue41210a_no_error.dart.strong.transformed.expect index fcfe4b1f55f..3c22fab9588 100644 --- a/pkg/front_end/testcases/general/issue41210a_no_error.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/issue41210a_no_error.dart.strong.transformed.expect @@ -24,10 +24,7 @@ abstract class B extends core::Object implements self::Interface { ; abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements self::Interface, self::Interface2 { - synthetic constructor •() → self::D - : super core::Object::•() - ; +abstract class D extends core::Object implements self::Interface, self::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } abstract class _E&Object&A extends core::Object implements self::A /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { @@ -49,10 +46,7 @@ class E extends self::_E&Object&A&D { : super self::_E&Object&A&D::•() ; } -abstract class F extends core::Object implements self::Interface { - synthetic constructor •() → self::F - : super core::Object::•() - ; +abstract class F extends core::Object implements self::Interface /*isMixinDeclaration*/ { } abstract class _G&Object&A extends core::Object implements self::A /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_G&Object&A diff --git a/pkg/front_end/testcases/general/issue41210a_no_error.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue41210a_no_error.dart.textual_outline.expect index c01fb180047..eb79a0a9d0b 100644 --- a/pkg/front_end/testcases/general/issue41210a_no_error.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/issue41210a_no_error.dart.textual_outline.expect @@ -14,11 +14,11 @@ abstract class B implements Interface { String method(num i); } -abstract class D implements Interface, Interface2 {} +mixin D implements Interface, Interface2 {} class E with A, D {} -abstract class F implements Interface {} +mixin F implements Interface {} class G with A, F {} diff --git a/pkg/front_end/testcases/general/issue41210a_no_error.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue41210a_no_error.dart.textual_outline_modelled.expect index 801b25ed2d6..85393233537 100644 --- a/pkg/front_end/testcases/general/issue41210a_no_error.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/issue41210a_no_error.dart.textual_outline_modelled.expect @@ -2,10 +2,6 @@ abstract class B implements Interface { String method(num i); } -abstract class D implements Interface, Interface2 {} - -abstract class F implements Interface {} - abstract class Interface { String method(num i); } @@ -22,3 +18,5 @@ main() {} mixin A implements Interface { String method(num i, {String s = "hello"}) => s; } +mixin D implements Interface, Interface2 {} +mixin F implements Interface {} diff --git a/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.expect b/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.expect index 2913f38b5c1..4d9a1a696b2 100644 --- a/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.expect @@ -24,10 +24,7 @@ abstract class B extends core::Object implements self::Interface { ; abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements self::Interface, self::Interface2 { - synthetic constructor •() → self::D - : super core::Object::•() - ; +abstract class D extends core::Object implements self::Interface, self::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } abstract class _E&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { @@ -49,10 +46,7 @@ class E extends self::_E&Object&A&D { : super self::_E&Object&A&D::•() ; } -abstract class F extends core::Object implements self::Interface { - synthetic constructor •() → self::F - : super core::Object::•() - ; +abstract class F extends core::Object implements self::Interface /*isMixinDeclaration*/ { } abstract class _G&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_G&Object&A diff --git a/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.modular.expect index 2913f38b5c1..4d9a1a696b2 100644 --- a/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.modular.expect @@ -24,10 +24,7 @@ abstract class B extends core::Object implements self::Interface { ; abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements self::Interface, self::Interface2 { - synthetic constructor •() → self::D - : super core::Object::•() - ; +abstract class D extends core::Object implements self::Interface, self::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } abstract class _E&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { @@ -49,10 +46,7 @@ class E extends self::_E&Object&A&D { : super self::_E&Object&A&D::•() ; } -abstract class F extends core::Object implements self::Interface { - synthetic constructor •() → self::F - : super core::Object::•() - ; +abstract class F extends core::Object implements self::Interface /*isMixinDeclaration*/ { } abstract class _G&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_G&Object&A diff --git a/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.outline.expect index 016588f517b..65365a74b6a 100644 --- a/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.outline.expect @@ -21,9 +21,7 @@ abstract class B extends core::Object implements self::Interface { ; abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements self::Interface, self::Interface2 { - synthetic constructor •() → self::D - ; +abstract class D extends core::Object implements self::Interface, self::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } abstract class _E&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { @@ -44,9 +42,7 @@ class E extends self::_E&Object&A&D { synthetic constructor •() → self::E ; } -abstract class F extends core::Object implements self::Interface { - synthetic constructor •() → self::F - ; +abstract class F extends core::Object implements self::Interface /*isMixinDeclaration*/ { } abstract class _G&Object&A = core::Object with self::A /*isAnonymousMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_G&Object&A diff --git a/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.transformed.expect index fcfe4b1f55f..3c22fab9588 100644 --- a/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue41210a_no_error.dart.weak.transformed.expect @@ -24,10 +24,7 @@ abstract class B extends core::Object implements self::Interface { ; abstract method method(core::num i) → core::String; } -abstract class D extends core::Object implements self::Interface, self::Interface2 { - synthetic constructor •() → self::D - : super core::Object::•() - ; +abstract class D extends core::Object implements self::Interface, self::Interface2 /*isMixinDeclaration*/ { abstract forwarding-stub method method(covariant-by-declaration core::num i) → core::String; } abstract class _E&Object&A extends core::Object implements self::A /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { @@ -49,10 +46,7 @@ class E extends self::_E&Object&A&D { : super self::_E&Object&A&D::•() ; } -abstract class F extends core::Object implements self::Interface { - synthetic constructor •() → self::F - : super core::Object::•() - ; +abstract class F extends core::Object implements self::Interface /*isMixinDeclaration*/ { } abstract class _G&Object&A extends core::Object implements self::A /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ { const synthetic constructor •() → self::_G&Object&A diff --git a/pkg/front_end/testcases/general/issue46389.dart b/pkg/front_end/testcases/general/issue46389.dart index b1acb267780..e36823aa3a4 100644 --- a/pkg/front_end/testcases/general/issue46389.dart +++ b/pkg/front_end/testcases/general/issue46389.dart @@ -20,7 +20,7 @@ class A { int boz = 0; } -abstract class B { +mixin B { X foo(X x); X bar({required X x}); void set baz(X x); diff --git a/pkg/front_end/testcases/general/issue46389.dart.strong.expect b/pkg/front_end/testcases/general/issue46389.dart.strong.expect index 55be1b7db8f..6be83dc4080 100644 --- a/pkg/front_end/testcases/general/issue46389.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue46389.dart.strong.expect @@ -19,10 +19,7 @@ class A extends core::Object { core::print(x.{core::Object::runtimeType}{core::Type}); } } -abstract class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { abstract method foo(covariant-by-class self::B::X% x) → self::B::X%; abstract method bar({required covariant-by-class self::B::X% x = #C1}) → self::B::X%; abstract set baz(covariant-by-class self::B::X% x) → void; diff --git a/pkg/front_end/testcases/general/issue46389.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue46389.dart.strong.transformed.expect index efd3846a4ea..cacc5088ac6 100644 --- a/pkg/front_end/testcases/general/issue46389.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/issue46389.dart.strong.transformed.expect @@ -19,10 +19,7 @@ class A extends core::Object { core::print(x.{core::Object::runtimeType}{core::Type}); } } -abstract class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { abstract method foo(covariant-by-class self::B::X% x) → self::B::X%; abstract method bar({required covariant-by-class self::B::X% x = #C1}) → self::B::X%; abstract set baz(covariant-by-class self::B::X% x) → void; diff --git a/pkg/front_end/testcases/general/issue46389.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue46389.dart.textual_outline.expect index 8c1997d6824..f3c6337b0c3 100644 --- a/pkg/front_end/testcases/general/issue46389.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/issue46389.dart.textual_outline.expect @@ -5,7 +5,7 @@ class A { int boz = 0; } -abstract class B { +mixin B { X foo(X x); X bar({required X x}); void set baz(X x); diff --git a/pkg/front_end/testcases/general/issue46389.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue46389.dart.textual_outline_modelled.expect index 8aae48366b2..79a85d3311a 100644 --- a/pkg/front_end/testcases/general/issue46389.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/issue46389.dart.textual_outline_modelled.expect @@ -1,10 +1,3 @@ -abstract class B { - X bar({required X x}); - X foo(X x); - void set baz(X x); - void set boz(X x); -} - class A { int boz = 0; num bar({required int x}) {} @@ -14,5 +7,11 @@ class A { class C extends A with B {} +mixin B { + X bar({required X x}); + X foo(X x); + void set baz(X x); + void set boz(X x); +} throws(void Function() f) {} void main() {} diff --git a/pkg/front_end/testcases/general/issue46389.dart.weak.expect b/pkg/front_end/testcases/general/issue46389.dart.weak.expect index 55be1b7db8f..6be83dc4080 100644 --- a/pkg/front_end/testcases/general/issue46389.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue46389.dart.weak.expect @@ -19,10 +19,7 @@ class A extends core::Object { core::print(x.{core::Object::runtimeType}{core::Type}); } } -abstract class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { abstract method foo(covariant-by-class self::B::X% x) → self::B::X%; abstract method bar({required covariant-by-class self::B::X% x = #C1}) → self::B::X%; abstract set baz(covariant-by-class self::B::X% x) → void; diff --git a/pkg/front_end/testcases/general/issue46389.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue46389.dart.weak.modular.expect index 55be1b7db8f..6be83dc4080 100644 --- a/pkg/front_end/testcases/general/issue46389.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/issue46389.dart.weak.modular.expect @@ -19,10 +19,7 @@ class A extends core::Object { core::print(x.{core::Object::runtimeType}{core::Type}); } } -abstract class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { abstract method foo(covariant-by-class self::B::X% x) → self::B::X%; abstract method bar({required covariant-by-class self::B::X% x = #C1}) → self::B::X%; abstract set baz(covariant-by-class self::B::X% x) → void; diff --git a/pkg/front_end/testcases/general/issue46389.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue46389.dart.weak.outline.expect index bb955ac3080..99737af15e1 100644 --- a/pkg/front_end/testcases/general/issue46389.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue46389.dart.weak.outline.expect @@ -13,9 +13,7 @@ class A extends core::Object { set baz(core::int x) → void ; } -abstract class B extends core::Object { - synthetic constructor •() → self::B - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { abstract method foo(covariant-by-class self::B::X% x) → self::B::X%; abstract method bar({required covariant-by-class self::B::X% x = null}) → self::B::X%; abstract set baz(covariant-by-class self::B::X% x) → void; diff --git a/pkg/front_end/testcases/general/issue46389.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue46389.dart.weak.transformed.expect index efd3846a4ea..cacc5088ac6 100644 --- a/pkg/front_end/testcases/general/issue46389.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue46389.dart.weak.transformed.expect @@ -19,10 +19,7 @@ class A extends core::Object { core::print(x.{core::Object::runtimeType}{core::Type}); } } -abstract class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { abstract method foo(covariant-by-class self::B::X% x) → self::B::X%; abstract method bar({required covariant-by-class self::B::X% x = #C1}) → self::B::X%; abstract set baz(covariant-by-class self::B::X% x) → void; diff --git a/pkg/front_end/testcases/general/issue46390.dart b/pkg/front_end/testcases/general/issue46390.dart index 305717eabe8..bd4a660c019 100644 --- a/pkg/front_end/testcases/general/issue46390.dart +++ b/pkg/front_end/testcases/general/issue46390.dart @@ -9,7 +9,7 @@ class A { } } -abstract class B { +mixin B { X foo(X x); } diff --git a/pkg/front_end/testcases/general/issue46390.dart.strong.expect b/pkg/front_end/testcases/general/issue46390.dart.strong.expect index 8c3187233dc..3a8a87df5a7 100644 --- a/pkg/front_end/testcases/general/issue46390.dart.strong.expect +++ b/pkg/front_end/testcases/general/issue46390.dart.strong.expect @@ -11,10 +11,7 @@ class A extends core::Object { return 1.1; } } -abstract class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { abstract method foo(covariant-by-class self::B::X% x) → self::B::X%; } abstract class _C&A&B = self::A with self::B /*isAnonymousMixin*/ { diff --git a/pkg/front_end/testcases/general/issue46390.dart.strong.transformed.expect b/pkg/front_end/testcases/general/issue46390.dart.strong.transformed.expect index 6447989dc03..7e75b73f986 100644 --- a/pkg/front_end/testcases/general/issue46390.dart.strong.transformed.expect +++ b/pkg/front_end/testcases/general/issue46390.dart.strong.transformed.expect @@ -11,10 +11,7 @@ class A extends core::Object { return 1.1; } } -abstract class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { abstract method foo(covariant-by-class self::B::X% x) → self::B::X%; } abstract class _C&A&B extends self::A implements self::B /*isAnonymousMixin,isEliminatedMixin*/ { diff --git a/pkg/front_end/testcases/general/issue46390.dart.textual_outline.expect b/pkg/front_end/testcases/general/issue46390.dart.textual_outline.expect index 554317fa363..85132be948e 100644 --- a/pkg/front_end/testcases/general/issue46390.dart.textual_outline.expect +++ b/pkg/front_end/testcases/general/issue46390.dart.textual_outline.expect @@ -2,7 +2,7 @@ class A { num foo(num n) {} } -abstract class B { +mixin B { X foo(X x); } diff --git a/pkg/front_end/testcases/general/issue46390.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/issue46390.dart.textual_outline_modelled.expect index 77cbaa09449..085a94f32f1 100644 --- a/pkg/front_end/testcases/general/issue46390.dart.textual_outline_modelled.expect +++ b/pkg/front_end/testcases/general/issue46390.dart.textual_outline_modelled.expect @@ -1,11 +1,10 @@ -abstract class B { - X foo(X x); -} - class A { num foo(num n) {} } class C extends A with B {} +mixin B { + X foo(X x); +} void main() {} diff --git a/pkg/front_end/testcases/general/issue46390.dart.weak.expect b/pkg/front_end/testcases/general/issue46390.dart.weak.expect index 8c3187233dc..3a8a87df5a7 100644 --- a/pkg/front_end/testcases/general/issue46390.dart.weak.expect +++ b/pkg/front_end/testcases/general/issue46390.dart.weak.expect @@ -11,10 +11,7 @@ class A extends core::Object { return 1.1; } } -abstract class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { abstract method foo(covariant-by-class self::B::X% x) → self::B::X%; } abstract class _C&A&B = self::A with self::B /*isAnonymousMixin*/ { diff --git a/pkg/front_end/testcases/general/issue46390.dart.weak.modular.expect b/pkg/front_end/testcases/general/issue46390.dart.weak.modular.expect index 8c3187233dc..3a8a87df5a7 100644 --- a/pkg/front_end/testcases/general/issue46390.dart.weak.modular.expect +++ b/pkg/front_end/testcases/general/issue46390.dart.weak.modular.expect @@ -11,10 +11,7 @@ class A extends core::Object { return 1.1; } } -abstract class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { abstract method foo(covariant-by-class self::B::X% x) → self::B::X%; } abstract class _C&A&B = self::A with self::B /*isAnonymousMixin*/ { diff --git a/pkg/front_end/testcases/general/issue46390.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue46390.dart.weak.outline.expect index d2a9f014541..7e1aba7d9c8 100644 --- a/pkg/front_end/testcases/general/issue46390.dart.weak.outline.expect +++ b/pkg/front_end/testcases/general/issue46390.dart.weak.outline.expect @@ -8,9 +8,7 @@ class A extends core::Object { method foo(core::num n) → core::num ; } -abstract class B extends core::Object { - synthetic constructor •() → self::B - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { abstract method foo(covariant-by-class self::B::X% x) → self::B::X%; } abstract class _C&A&B = self::A with self::B /*isAnonymousMixin*/ { diff --git a/pkg/front_end/testcases/general/issue46390.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue46390.dart.weak.transformed.expect index 6447989dc03..7e75b73f986 100644 --- a/pkg/front_end/testcases/general/issue46390.dart.weak.transformed.expect +++ b/pkg/front_end/testcases/general/issue46390.dart.weak.transformed.expect @@ -11,10 +11,7 @@ class A extends core::Object { return 1.1; } } -abstract class B extends core::Object { - synthetic constructor •() → self::B - : super core::Object::•() - ; +abstract class B extends core::Object /*isMixinDeclaration*/ { abstract method foo(covariant-by-class self::B::X% x) → self::B::X%; } abstract class _C&A&B extends self::A implements self::B /*isAnonymousMixin,isEliminatedMixin*/ { diff --git a/pkg/front_end/testcases/incremental/changing_modules_13.yaml b/pkg/front_end/testcases/incremental/changing_modules_13.yaml index d0c5a04e823..1e07ae6f6f5 100644 --- a/pkg/front_end/testcases/incremental/changing_modules_13.yaml +++ b/pkg/front_end/testcases/incremental/changing_modules_13.yaml @@ -10,8 +10,8 @@ modules: module: module/a.dart: | class A { } - class B { } - class C { } + mixin B { } + mixin C { } class AB = A with B; module/.dart_tool/package_config.json: | { diff --git a/pkg/front_end/testcases/incremental/changing_modules_13.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_13.yaml.world.1.expect index dc9475d2091..8e18cac8e47 100644 --- a/pkg/front_end/testcases/incremental/changing_modules_13.yaml.world.1.expect +++ b/pkg/front_end/testcases/incremental/changing_modules_13.yaml.world.1.expect @@ -16,15 +16,9 @@ library from "package:module/a.dart" as a { : super dart.core::Object::•() ; } - class B extends dart.core::Object { - synthetic constructor •() → a::B - : super dart.core::Object::•() - ; + abstract class B extends dart.core::Object /*isMixinDeclaration*/ { } - class C extends dart.core::Object { - synthetic constructor •() → a::C - : super dart.core::Object::•() - ; + abstract class C extends dart.core::Object /*isMixinDeclaration*/ { } class AB = a::A with a::B { synthetic constructor •() → a::AB diff --git a/pkg/front_end/testcases/incremental/initializer_implicit_null.yaml b/pkg/front_end/testcases/incremental/initializer_implicit_null.yaml index 7ecf89033f7..adaef283596 100644 --- a/pkg/front_end/testcases/incremental/initializer_implicit_null.yaml +++ b/pkg/front_end/testcases/incremental/initializer_implicit_null.yaml @@ -11,7 +11,7 @@ worlds: sources: main.dart: | import "lib.dart"; - class B {} + mixin B {} class C = A with B; lib.dart: | class A { diff --git a/pkg/front_end/testcases/incremental/initializer_implicit_null.yaml.world.1.expect b/pkg/front_end/testcases/incremental/initializer_implicit_null.yaml.world.1.expect index 8290d7d1a11..7e8c5654438 100644 --- a/pkg/front_end/testcases/incremental/initializer_implicit_null.yaml.world.1.expect +++ b/pkg/front_end/testcases/incremental/initializer_implicit_null.yaml.world.1.expect @@ -12,10 +12,7 @@ library from "org-dartlang-test:///main.dart" as main { import "org-dartlang-test:///lib.dart"; - class B extends dart.core::Object { - synthetic constructor •() → main::B - : super dart.core::Object::•() - ; + abstract class B extends dart.core::Object /*isMixinDeclaration*/ { } class C extends lib::A implements main::B /*isEliminatedMixin*/ { synthetic constructor •([dart.core::int? a = #C1]) → main::C diff --git a/pkg/front_end/testcases/incremental/initializer_implicit_null.yaml.world.2.expect b/pkg/front_end/testcases/incremental/initializer_implicit_null.yaml.world.2.expect index 8290d7d1a11..7e8c5654438 100644 --- a/pkg/front_end/testcases/incremental/initializer_implicit_null.yaml.world.2.expect +++ b/pkg/front_end/testcases/incremental/initializer_implicit_null.yaml.world.2.expect @@ -12,10 +12,7 @@ library from "org-dartlang-test:///main.dart" as main { import "org-dartlang-test:///lib.dart"; - class B extends dart.core::Object { - synthetic constructor •() → main::B - : super dart.core::Object::•() - ; + abstract class B extends dart.core::Object /*isMixinDeclaration*/ { } class C extends lib::A implements main::B /*isEliminatedMixin*/ { synthetic constructor •([dart.core::int? a = #C1]) → main::C diff --git a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml index a3faeafbeaa..59dbe7c3275 100644 --- a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml +++ b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml @@ -12,7 +12,7 @@ worlds: void method(covariant int i) {} } - class Mixin { + mixin Mixin { void method(num i) {} } diff --git a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.1.expect b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.1.expect index ac9787d3fa0..aadb190a8b5 100644 --- a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.1.expect +++ b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.1.expect @@ -15,10 +15,7 @@ library from "org-dartlang-test:///main_lib1.dart" as mai2 { ; method method(covariant-by-declaration dart.core::int i) → void {} } - class Mixin extends dart.core::Object { - synthetic constructor •() → mai2::Mixin - : super dart.core::Object::•() - ; + abstract class Mixin extends dart.core::Object /*isMixinDeclaration*/ { method method(dart.core::num i) → void {} } abstract class _Class&SuperClass&Mixin = mai2::SuperClass with mai2::Mixin /*isAnonymousMixin*/ { diff --git a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.2.expect b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.2.expect index a1687b3a1d6..c6a2520809b 100644 --- a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.2.expect +++ b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.2.expect @@ -16,10 +16,7 @@ library from "org-dartlang-test:///main_lib1.dart" as mai2 { ; method method(covariant-by-declaration dart.core::int i) → void {} } - class Mixin extends dart.core::Object { - synthetic constructor •() → mai2::Mixin - : super dart.core::Object::•() - ; + abstract class Mixin extends dart.core::Object /*isMixinDeclaration*/ { method method(dart.core::num i) → void {} } abstract class _Class&SuperClass&Mixin = mai2::SuperClass with mai2::Mixin /*isAnonymousMixin*/ { diff --git a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.3.expect b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.3.expect index ac9787d3fa0..aadb190a8b5 100644 --- a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.3.expect +++ b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.3.expect @@ -15,10 +15,7 @@ library from "org-dartlang-test:///main_lib1.dart" as mai2 { ; method method(covariant-by-declaration dart.core::int i) → void {} } - class Mixin extends dart.core::Object { - synthetic constructor •() → mai2::Mixin - : super dart.core::Object::•() - ; + abstract class Mixin extends dart.core::Object /*isMixinDeclaration*/ { method method(dart.core::num i) → void {} } abstract class _Class&SuperClass&Mixin = mai2::SuperClass with mai2::Mixin /*isAnonymousMixin*/ { diff --git a/pkg/front_end/testcases/incremental/no_outline_change_23.yaml b/pkg/front_end/testcases/incremental/no_outline_change_23.yaml index 36da71a6da6..dba0a67680c 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_23.yaml +++ b/pkg/front_end/testcases/incremental/no_outline_change_23.yaml @@ -13,7 +13,7 @@ worlds: class A extends Object with B { foo() {} } - class B { + mixin B { bar() {} } expectedLibraryCount: 1 @@ -27,7 +27,7 @@ worlds: class A extends Object with B { foo() {} } - class B { + mixin B { bar() {} } expectedLibraryCount: 1 diff --git a/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.1.expect index b7af66b6388..1b5f52c032b 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.1.expect +++ b/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.1.expect @@ -13,10 +13,7 @@ library from "org-dartlang-test:///main.dart" as main { ; method foo() → dynamic {} } - class B extends dart.core::Object { - synthetic constructor •() → main::B - : super dart.core::Object::•() - ; + abstract class B extends dart.core::Object /*isMixinDeclaration*/ { method bar() → dynamic {} } } diff --git a/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.2.expect index b7af66b6388..1b5f52c032b 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.2.expect +++ b/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.2.expect @@ -13,10 +13,7 @@ library from "org-dartlang-test:///main.dart" as main { ; method foo() → dynamic {} } - class B extends dart.core::Object { - synthetic constructor •() → main::B - : super dart.core::Object::•() - ; + abstract class B extends dart.core::Object /*isMixinDeclaration*/ { method bar() → dynamic {} } } diff --git a/pkg/front_end/testcases/incremental/no_outline_change_4.yaml b/pkg/front_end/testcases/incremental/no_outline_change_4.yaml index 146b71dbfd4..c69e62b3cae 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_4.yaml +++ b/pkg/front_end/testcases/incremental/no_outline_change_4.yaml @@ -12,7 +12,7 @@ worlds: main.dart: | import 'libA.dart'; - class Foo { + mixin Foo { method() { print("A"); } @@ -35,7 +35,7 @@ worlds: main.dart: | import 'libA.dart'; - class Foo { + mixin Foo { method() { print("B"); } diff --git a/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.1.expect index 39a5dbb22f3..979f1e53114 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.1.expect +++ b/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.1.expect @@ -24,10 +24,7 @@ library from "org-dartlang-test:///main.dart" as main { import "org-dartlang-test:///libA.dart"; - class Foo extends dart.core::Object { - synthetic constructor •() → main::Foo - : super dart.core::Object::•() - ; + abstract class Foo extends dart.core::Object /*isMixinDeclaration*/ { method method() → dynamic { dart.core::print("A"); } diff --git a/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.2.expect index d7d471ae7df..75abd1c5c81 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.2.expect +++ b/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.2.expect @@ -24,10 +24,7 @@ library from "org-dartlang-test:///main.dart" as main { import "org-dartlang-test:///libA.dart"; - class Foo extends dart.core::Object { - synthetic constructor •() → main::Foo - : super dart.core::Object::•() - ; + abstract class Foo extends dart.core::Object /*isMixinDeclaration*/ { method method() → dynamic { dart.core::print("B"); } diff --git a/pkg/front_end/testcases/incremental/no_outline_change_52.yaml b/pkg/front_end/testcases/incremental/no_outline_change_52.yaml index 63120f7ba2e..ccec9debf44 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_52.yaml +++ b/pkg/front_end/testcases/incremental/no_outline_change_52.yaml @@ -15,7 +15,7 @@ worlds: part 'part.dart'; part.dart: | part of 'main.dart'; - class Foo { + mixin Foo { method() { print("A"); } @@ -37,7 +37,7 @@ worlds: sources: part.dart: | part of 'main.dart'; - class Foo { + mixin Foo { method() { print("B"); } diff --git a/pkg/front_end/testcases/incremental/no_outline_change_52.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_52.yaml.world.1.expect index 3d7bb8a565b..2d82194083f 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_52.yaml.world.1.expect +++ b/pkg/front_end/testcases/incremental/no_outline_change_52.yaml.world.1.expect @@ -25,10 +25,7 @@ library from "org-dartlang-test:///main.dart" as main { import "org-dartlang-test:///lib.dart"; part part.dart; - class Foo extends dart.core::Object { // from org-dartlang-test:///part.dart - synthetic constructor •() → main::Foo - : super dart.core::Object::•() - ; + abstract class Foo extends dart.core::Object /*isMixinDeclaration*/ { // from org-dartlang-test:///part.dart method method() → dynamic { dart.core::print("A"); } diff --git a/pkg/front_end/testcases/incremental/no_outline_change_52.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_52.yaml.world.2.expect index c9aba5f2633..0c1bac06094 100644 --- a/pkg/front_end/testcases/incremental/no_outline_change_52.yaml.world.2.expect +++ b/pkg/front_end/testcases/incremental/no_outline_change_52.yaml.world.2.expect @@ -25,10 +25,7 @@ library from "org-dartlang-test:///main.dart" as main { import "org-dartlang-test:///lib.dart"; part part.dart; - class Foo extends dart.core::Object { // from org-dartlang-test:///part.dart - synthetic constructor •() → main::Foo - : super dart.core::Object::•() - ; + abstract class Foo extends dart.core::Object /*isMixinDeclaration*/ { // from org-dartlang-test:///part.dart method method() → dynamic { dart.core::print("B"); }