| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 typedef void DebugCallback(String methodName, var arg1, var arg2); | 5 typedef void DebugCallback(String methodName, var arg1, var arg2); |
| 6 | 6 |
| 7 class DebugMap<K, V> implements Map<K, V> { | 7 class DebugMap<K, V> implements Map<K, V> { |
| 8 final Map<K, V> map; | 8 final Map<K, V> map; |
| 9 DebugCallback indexSetCallBack; | 9 DebugCallback indexSetCallBack; |
| 10 DebugCallback putIfAbsentCallBack; | 10 DebugCallback putIfAbsentCallBack; |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 124 return iterable.firstWhere(test, orElse: orElse); | 124 return iterable.firstWhere(test, orElse: orElse); |
| 125 } | 125 } |
| 126 | 126 |
| 127 E lastWhere(bool test(E element), {E orElse()}) { | 127 E lastWhere(bool test(E element), {E orElse()}) { |
| 128 return iterable.lastWhere(test, orElse: orElse); | 128 return iterable.lastWhere(test, orElse: orElse); |
| 129 } | 129 } |
| 130 | 130 |
| 131 E singleWhere(bool test(E element)) => iterable.singleWhere(test); | 131 E singleWhere(bool test(E element)) => iterable.singleWhere(test); |
| 132 | 132 |
| 133 E elementAt(int index) => iterable.elementAt(index); | 133 E elementAt(int index) => iterable.elementAt(index); |
| 134 |
| 135 String toString() => iterable.toString(); |
| 134 } | 136 } |
| 135 | 137 |
| 136 class DebugList<E> extends DebugIterable<E> implements List<E> { | 138 class DebugList<E> extends DebugIterable<E> implements List<E> { |
| 137 DebugCallback addCallback; | 139 DebugCallback addCallback; |
| 140 DebugCallback addAllCallback; |
| 138 | 141 |
| 139 DebugList(List<E> list, {this.addCallback}) : super(list); | 142 DebugList(List<E> list, {this.addCallback, this.addAllCallback}) |
| 143 : super(list); |
| 140 | 144 |
| 141 List<E> get list => iterable; | 145 List<E> get list => iterable; |
| 142 | 146 |
| 143 E operator [](int index) => list[index]; | 147 E operator [](int index) => list[index]; |
| 144 | 148 |
| 145 void operator []=(int index, E value) { | 149 void operator []=(int index, E value) { |
| 146 list[index] = value; | 150 list[index] = value; |
| 147 } | 151 } |
| 148 | 152 |
| 149 int get length => list.length; | 153 int get length => list.length; |
| 150 | 154 |
| 151 void set length(int newLength) { | 155 void set length(int newLength) { |
| 152 list.length = newLength; | 156 list.length = newLength; |
| 153 } | 157 } |
| 154 | 158 |
| 155 void add(E value) { | 159 void add(E value) { |
| 156 if (addCallback != null) { | 160 if (addCallback != null) { |
| 157 addCallback('add', value, null); | 161 addCallback('add', value, null); |
| 158 } | 162 } |
| 159 list.add(value); | 163 list.add(value); |
| 160 } | 164 } |
| 161 | 165 |
| 162 void addAll(Iterable<E> iterable) => list.addAll(iterable); | 166 void addAll(Iterable<E> iterable) { |
| 167 if (addAllCallback != null) { |
| 168 addAllCallback('addAll', iterable, null); |
| 169 } |
| 170 list.addAll(iterable); |
| 171 } |
| 163 | 172 |
| 164 Iterable<E> get reversed => list.reversed; | 173 Iterable<E> get reversed => list.reversed; |
| 165 | 174 |
| 166 void sort([int compare(E a, E b)]) => list.sort(compare); | 175 void sort([int compare(E a, E b)]) => list.sort(compare); |
| 167 | 176 |
| 168 void shuffle([random]) => list.shuffle(random); | 177 void shuffle([random]) => list.shuffle(random); |
| 169 | 178 |
| 170 int indexOf(E element, [int start = 0]) => list.indexOf(element, start); | 179 int indexOf(E element, [int start = 0]) => list.indexOf(element, start); |
| 171 | 180 |
| 172 int lastIndexOf(E element, [int start]) => list.lastIndexOf(element, start); | 181 int lastIndexOf(E element, [int start]) => list.lastIndexOf(element, start); |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 check(element, '$methodName: '); | 328 check(element, '$methodName: '); |
| 320 } | 329 } |
| 321 | 330 |
| 322 void check(var element, [String text = '']) { | 331 void check(var element, [String text = '']) { |
| 323 String elementType = '${element.runtimeType}'; | 332 String elementType = '${element.runtimeType}'; |
| 324 if (runtimeTypes.contains(elementType)) return; | 333 if (runtimeTypes.contains(elementType)) return; |
| 325 throw '$name: $text$elementType' | 334 throw '$name: $text$elementType' |
| 326 '${showObjects ? ' ($element)' : ''}'; | 335 '${showObjects ? ' ($element)' : ''}'; |
| 327 } | 336 } |
| 328 } | 337 } |
| OLD | NEW |