// Copyright (c) 2011, 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 An interface has a set of direct superinterfaces. | |
/// An interface J is a superinterface of an interface I iff either J is a | |
/// direct superinterface of I or J is a superinterface of a direct | |
/// superinterface of I. | |
/// @description Checks that it is a compile-time error if the chain of | |
/// superinterfaces forms a circular dependency. | |
/// @author vasya | |
abstract class C implements A {} | |
// ^ | |
// [analyzer] unspecified | |
// [cfe] unspecified | |
abstract class B implements C {} | |
// ^ | |
// [analyzer] unspecified | |
// [cfe] unspecified | |
abstract class A implements B {} | |
// ^ | |
// [analyzer] unspecified | |
// [cfe] unspecified | |
class D implements A {} | |
// ^ | |
// [cfe] unspecified | |
main() { | |
new D(); | |
} | |