| library /*isNonNullableByDefault*/; |
| // |
| // Problems in library: |
| // |
| // pkg/front_end/testcases/general/mixin_conflicts.dart:22:7: Error: The non-abstract class 'N2' is missing implementations for these members: |
| // - M.foo |
| // 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 N2 = Object with M2; |
| // ^^ |
| // pkg/front_end/testcases/general/mixin_conflicts.dart:7:3: Context: 'M.foo' is defined here. |
| // foo() {} |
| // ^^^ |
| // |
| // pkg/front_end/testcases/general/mixin_conflicts.dart:29:7: Error: The non-abstract class 'C2' is missing implementations for these members: |
| // - M.foo |
| // 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 C2 extends Object with M2 {} |
| // ^^ |
| // pkg/front_end/testcases/general/mixin_conflicts.dart:7:3: Context: 'M.foo' is defined here. |
| // foo() {} |
| // ^^^ |
| // |
| import self as self; |
| import "dart:core" as core; |
| |
| class M extends core::Object { |
| synthetic constructor •() → self::M |
| ; |
| method foo() → dynamic |
| ; |
| } |
| class N = core::Object with self::M /*hasConstConstructor*/ { |
| const synthetic constructor •() → self::N |
| : super core::Object::•() |
| ; |
| mixin-super-stub method foo() → dynamic |
| return super.{self::M::foo}(); |
| } |
| abstract class _C&Object&N = core::Object with self::N /*isAnonymousMixin,hasConstConstructor*/ { |
| const synthetic constructor •() → self::_C&Object&N |
| : super core::Object::•() |
| ; |
| mixin-super-stub method foo() → dynamic |
| return super.{self::M::foo}(); |
| } |
| class C extends self::_C&Object&N { |
| synthetic constructor •() → self::C |
| ; |
| } |
| abstract class M2 extends core::Object implements self::M { |
| synthetic constructor •() → self::M2 |
| ; |
| method bar() → dynamic |
| ; |
| } |
| class N2 = core::Object with self::M2 /*hasConstConstructor*/ { |
| const synthetic constructor •() → self::N2 |
| : super core::Object::•() |
| ; |
| mixin-super-stub method bar() → dynamic |
| return super.{self::M2::bar}(); |
| } |
| abstract class N3 = core::Object with self::M2 /*hasConstConstructor*/ { |
| const synthetic constructor •() → self::N3 |
| : super core::Object::•() |
| ; |
| mixin-super-stub method bar() → dynamic |
| return super.{self::M2::bar}(); |
| } |
| abstract class _C2&Object&M2 = core::Object with self::M2 /*isAnonymousMixin,hasConstConstructor*/ { |
| const synthetic constructor •() → self::_C2&Object&M2 |
| : super core::Object::•() |
| ; |
| mixin-super-stub method bar() → dynamic |
| return super.{self::M2::bar}(); |
| } |
| class C2 extends self::_C2&Object&M2 { |
| synthetic constructor •() → self::C2 |
| ; |
| } |
| abstract class _C3&Object&M2 = core::Object with self::M2 /*isAnonymousMixin,hasConstConstructor*/ { |
| const synthetic constructor •() → self::_C3&Object&M2 |
| : super core::Object::•() |
| ; |
| mixin-super-stub method bar() → dynamic |
| return super.{self::M2::bar}(); |
| } |
| abstract class C3 extends self::_C3&Object&M2 { |
| synthetic constructor •() → self::C3 |
| ; |
| } |
| static method main() → dynamic |
| ; |