| Index: tests/language/cyclic_type_test.dart
|
| ===================================================================
|
| --- tests/language/cyclic_type_test.dart (revision 0)
|
| +++ tests/language/cyclic_type_test.dart (revision 0)
|
| @@ -0,0 +1,32 @@
|
| +// Copyright (c) 2013, 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.
|
| +
|
| +// Tests self referencing types.
|
| +
|
| +import "package:expect/expect.dart";
|
| +
|
| +class Base<T> {
|
| + get t => T;
|
| +}
|
| +
|
| +class Derived<T> extends Base<Derived<Derived<T>>> {}
|
| +
|
| +class Derived1<T> extends Base<Derived2<T>> {}
|
| +
|
| +class Derived2<T> extends Base<Derived1<Derived2<T>>> {}
|
| +
|
| +main() {
|
| + var d = new Derived();
|
| + Expect.equals("Derived<Derived>", d.t.toString());
|
| + d = new Derived<bool>();
|
| + Expect.equals("Derived<Derived<bool>>", d.t.toString());
|
| + d = new Derived<Derived>();
|
| + Expect.equals("Derived<Derived<Derived>>", d.t.toString());
|
| + d = new Derived1();
|
| + Expect.equals("Derived2", d.t.toString());
|
| + d = new Derived2();
|
| + Expect.equals("Derived1<Derived2>", d.t.toString());
|
| + d = new Derived2<Derived1<int>>();
|
| + Expect.equals("Derived1<Derived2<Derived1<int>>>", d.t.toString());
|
| +}
|
|
|