| // 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 The on word is not reserved in any way, it is a context-specific |
| /// keyword that has a specific meaning when occuring after the type name of a |
| /// mixin declaration. |
| /// |
| /// @description Checks that the 'on' word can be used as a type name after 'on' |
| /// and after 'implements' in the mixin declaration. |
| /// @author ngl@unipro.ru |
| |
| |
| class I {} |
| class J {} |
| |
| class B {} |
| class C { |
| } |
| |
| class on {} |
| |
| mixin M1 on on, C implements I, J {} |
| mixin M2 on B, on implements I, J {} |
| mixin M3 on B, C implements on, J {} |
| mixin M4 on B, C implements I, on {} |
| |
| class A implements B, C, I, J, on {} |
| |
| class MA1 extends A with M1 { |
| } |
| class MA2 extends A with M2 { |
| } |
| class MA3 extends A with M3 { |
| } |
| class MA4 extends A with M4 { |
| } |
| |
| main() { |
| new MA1(); |
| new MA2(); |
| new MA3(); |
| new MA4(); |
| } |