| // Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| import 'package:expect/expect.dart'; |
| |
| class SuperA1 { |
| method1(a) => 'A1.m1$a'; |
| } |
| |
| class SuperA2 { |
| method2(a) => 'A2.m2$a'; |
| } |
| |
| class SuperA { |
| method1(a) => 'A.m1$a'; |
| method2(a) => 'A.m2$a'; |
| } |
| |
| class SuperB1 extends SuperA implements SuperA1 { |
| method1(a) => 'B1.m1$a'; |
| } |
| |
| class SuperB2 extends SuperB1 implements SuperA2 { |
| method2(a) => 'B2.m2$a'; |
| } |
| |
| mixin Mixin on SuperA1, SuperA2 { |
| method1(a) => super.method1('M$a'); |
| method2(a) => super.method2('M$a'); |
| } |
| |
| class Class extends SuperB2 with Mixin {} |
| |
| main() { |
| var c = new Class(); |
| Expect.equals("B1.m1MC", c.method1('C')); |
| Expect.equals("B2.m2MC", c.method2('C')); |
| } |