| // Copyright (c) 2017, 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. | |
| abstract class A<T extends A<T>> {} | |
| abstract class B<T extends A<T>> {} | |
| class C<U> extends B<D<U>> {} | |
| class D<U> extends A<D<U>> {} | |
| main() { | |
| new D(); | |
| new C(); | |
| new D<C>(); | |
| new C<D>(); | |
| } |