blob: 8e366c49650694e1f1f5df7a2d6853c0d5ddacf3 [file] [log] [blame] [edit]
// Copyright (c) 2023, 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 is a compile-time error if:
/// ...
/// - A declaration has a base or final superdeclaration, and is not itself
/// marked base, final or sealed.
///
/// @description Check that it is a compile-time error if a declaration is not
/// `base`, `final` or `sealed` and has a superdeclaration marked `base`. Test
/// `abstract base` superdeclaration in another library
/// @author sgrekhov22@gmail.com
import "class_modifiers_lib.dart";
class ExtendsBaseClass extends AbstractBaseClass {}
// ^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
interface class InterfaceExtendsBaseClass extends AbstractBaseClass {}
// ^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
abstract class AbstractExtendsBaseClass extends AbstractBaseClass {}
// ^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
abstract interface class AbstractInterfaceExtendsBaseClass extends AbstractBaseClass {}
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
class ExtendsBaseMixinClass extends AbstractBaseMixinClass {}
// ^^^^^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
interface class InterfaceExtendsBaseMixinClass extends AbstractBaseMixinClass {}
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
abstract class AbstractExtendsBaseMixinClass extends AbstractBaseMixinClass {}
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
abstract interface class AbstractInterfaceExtendsBaseMixinClass extends AbstractBaseMixinClass {}
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
class ClassWithBaseMixinClass with AbstractBaseMixinClass {}
// ^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
interface class InterfaceClassWithBaseMixinClass with AbstractBaseMixinClass {}
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
abstract class AbstractClassWithBaseMixinClass with AbstractBaseMixinClass {}
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
abstract interface class AbstractInterfaceClassWithBaseMixinClass with AbstractBaseMixinClass {}
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
mixin MixinOnBaseClass on AbstractBaseClass {}
// ^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
mixin MixinOnBaseMixinClass on AbstractBaseMixinClass {}
// ^^^^^^^^^^^^^^^^^^^^^
// [analyzer] unspecified
// [cfe] unspecified
main() {
print(ExtendsBaseClass);
print(InterfaceExtendsBaseClass);
print(AbstractExtendsBaseClass);
print(AbstractInterfaceExtendsBaseClass);
print(ExtendsBaseMixinClass);
print(InterfaceExtendsBaseMixinClass);
print(AbstractExtendsBaseMixinClass);
print(AbstractInterfaceExtendsBaseMixinClass);
print(ClassWithBaseMixinClass);
print(InterfaceClassWithBaseMixinClass);
print(AbstractClassWithBaseMixinClass);
print(MixinOnBaseClass);
print(MixinOnBaseMixinClass);
}