| // Copyright (c) 2019, 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 Any self reference in a type alias, either directly or recursively
|
| * via another type declaration, is a compile-time error
|
| * @description Checks that any self reference in a type alias is a compile-time
|
| * error. Test recursive reference
|
| * @compile-error
|
| * @author sgrekhov@unipro.ru
|
| */
|
| // SharedOptions=--enable-experiment=nonfunction-type-aliases
|
| class C<T> {}
|
|
|
| typedef CAlias1<T extends CAlias2> = C<T>;
|
| typedef CAlias2<T extends CAlias1> = C<T>;
|
|
|
| main() {
|
| }
|