blob: 5fe7b4232664f332a4ced79d4934a7a2e06dc70f [file] [log] [blame]
// 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:front_end/src/fasta/util/link.dart' show Link, LinkBuilder;
import 'package:expect/expect.dart' show Expect;
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}");
}