blob: 6cb4adcf83f9789b5305c001d986af47618ce384 [file] [log] [blame]
// 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();
}