| // Copyright (c) 2016, 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 String listToString(List list) |
| * ... |
| * Handles circular references where converting one of the elements to a string |
| * ends up converting list to a string again. |
| * @description Checks that this method converts each element to a string, |
| * separates results by ", " and wraps in "[" and "]" |
| * @author sgrekhov@unipro.ru |
| */ |
| import "listbase.lib.dart"; |
| import "dart:collection"; |
| import "../../../Utils/expect.dart"; |
| |
| class C { |
| String toString() => "C:toString"; |
| } |
| |
| main() { |
| ListBase list1 = create(4, new Object()); |
| ListBase list2 = create(2, new Object()); |
| list2[0] = 3; |
| list2[1] = new C(); |
| |
| list1[0] = 1; |
| list1[1] = "2"; |
| list1[2] = list2; |
| list1[3] = new C(); |
| |
| Expect.equals("[1, 2, [3, " + new C().toString() + "], " + new C().toString() |
| + "]", ListBase.listToString(list1)); |
| } |