/* | |
* 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 A generative constructor may be redirecting, in which case its | |
* only action is to invoke another generative constructor. A redirecting | |
* constructor has no body; instead, it has a redirect clause that specifies | |
* which constructor the invocation is redirected to, and with what arguments. | |
* redirection: | |
* ':' this ('.' identifier)? arguments | |
* ; | |
* @description Checks that cyclic dependency in constructor redirection | |
* produces a compile error (Using a longer redirection chain). | |
* @compile-error | |
* @author iefremov | |
* @reviewer rodionov | |
*/ | |
class C { | |
C.c0() : this.c9(); | |
C.c1() : this.c0(); | |
C.c2() : this.c1(); | |
C.c3() : this.c2(); | |
C.c4() : this.c3(); | |
C.c5() : this.c4(); | |
C.c6() : this.c5(); | |
C.c7() : this.c6(); | |
C.c8() : this.c7(); | |
C.c9() : this.c8(); | |
} | |
main() { | |
var x = new C.c0(); | |
} |