| // Copyright (c) 2018, 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. |
| |
| import 'package:_fe_analyzer_shared/src/util/link.dart' show Link, LinkBuilder; |
| |
| import 'package:expect/expect.dart' show Expect; |
| |
| void main() { |
| Link<String> strings = const Link<String>().prepend("B").prepend("A"); |
| Expect.stringEquals("[ A, B ]", "${strings}"); |
| Expect.stringEquals("[ B, A ]", "${strings.reverse(const Link<String>())}"); |
| |
| strings = (new LinkBuilder<String>() |
| ..addLast("A") |
| ..addLast("B")) |
| .toLink(const Link<String>()); |
| |
| Expect.stringEquals("[ A, B ]", "${strings}"); |
| Expect.stringEquals("[ B, A ]", "${strings.reverse(const Link<String>())}"); |
| |
| strings = new LinkBuilder<String>() |
| .toLink(const Link<String>()) |
| .prepend("B") |
| .prepend("A"); |
| |
| Expect.stringEquals("[ A, B ]", "${strings}"); |
| Expect.stringEquals("[ B, A ]", "${strings.reverse(const Link<String>())}"); |
| |
| strings = const Link<String>() |
| .reverse(const Link<String>()) |
| .prepend("B") |
| .prepend("A"); |
| Expect.stringEquals("[ A, B ]", "${strings}"); |
| Expect.stringEquals("[ B, A ]", "${strings.reverse(const Link<String>())}"); |
| |
| strings = (new LinkBuilder<String>() |
| ..addLast("A") |
| ..addLast("B")) |
| .toLink(const Link<String>()); |
| |
| Expect.stringEquals("[ A, B ]", "${strings}"); |
| Expect.stringEquals("[ B, A ]", "${strings.reverse(const Link<String>())}"); |
| |
| Link<int> ints = |
| const Link<int>().prepend(1).reverse(const Link<int>()).tail!.prepend(1); |
| Expect.stringEquals("[ 1 ]", "${ints}"); |
| } |