| // 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. |
| |
| /// @assertion It's a compile-time error if an instance method in a mixin body |
| /// has a super-access (super.foo, super.foo(), super + bar, etc.) which would |
| /// not be a valid invocation if super was replaced by an expression with static |
| /// type A$super. |
| /// |
| /// @description Checks that it is a compile error if an instance method in a |
| /// mixin body has a super-access (super.foo, super.foo(), super + bar, etc.) |
| /// which would not be a valid invocation if super was replaced by an expression |
| /// with static type A$super. |
| /// @author sgrekhov@unipro.ru |
| |
| abstract class B { |
| void foo(int x); |
| } |
| |
| mixin M on B { |
| void bar() { |
| super.foo("test"); |
| // ^^^^^^ |
| // [analyzer] unspecified |
| // [cfe] unspecified |
| } |
| } |
| |
| class C implements B { |
| void foo(int x) {} |
| } |
| |
| class MA extends C with M { |
| } |
| |
| main() { |
| new MA().bar(); |
| } |