Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: sdk/lib/_collection_dev/iterable.dart

Issue 12226099: Fix List.map.join with no separator. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | tests/corelib/iterable_join_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 part of dart._collection.dev; 5 part of dart._collection.dev;
6 6
7 typedef T _Transformation<S, T>(S value); 7 typedef T _Transformation<S, T>(S value);
8 8
9 class MappedIterable<S, T> extends Iterable<T> { 9 class MappedIterable<S, T> extends Iterable<T> {
10 final Iterable<S> _iterable; 10 final Iterable<S> _iterable;
(...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 272
273 String join([String separator]) { 273 String join([String separator]) {
274 int start = _startIndex; 274 int start = _startIndex;
275 int end = _endIndex; 275 int end = _endIndex;
276 if (start == end) return ""; 276 if (start == end) return "";
277 StringBuffer buffer = new StringBuffer("${_f(_list[start])}"); 277 StringBuffer buffer = new StringBuffer("${_f(_list[start])}");
278 if (_list.length != length) { 278 if (_list.length != length) {
279 throw new ConcurrentModificationError(_list); 279 throw new ConcurrentModificationError(_list);
280 } 280 }
281 for (int i = start + 1; i < end; i++) { 281 for (int i = start + 1; i < end; i++) {
282 buffer.add(separator); 282 if (separator != null && separator != "") {
283 buffer.add(separator);
284 }
283 buffer.add("${_f(_list[i])}"); 285 buffer.add("${_f(_list[i])}");
284 if (_list.length != length) { 286 if (_list.length != length) {
285 throw new ConcurrentModificationError(_list); 287 throw new ConcurrentModificationError(_list);
286 } 288 }
287 } 289 }
288 return buffer.toString(); 290 return buffer.toString();
289 } 291 }
290 292
291 Iterable<T> where(bool test(T element)) => super.where(test); 293 Iterable<T> where(bool test(T element)) => super.where(test);
292 294
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
674 676
675 Set toSet() => new Set<E>(); 677 Set toSet() => new Set<E>();
676 } 678 }
677 679
678 /** The always empty iterator. */ 680 /** The always empty iterator. */
679 class EmptyIterator<E> implements Iterator<E> { 681 class EmptyIterator<E> implements Iterator<E> {
680 const EmptyIterator(); 682 const EmptyIterator();
681 bool moveNext() => false; 683 bool moveNext() => false;
682 E get current => null; 684 E get current => null;
683 } 685 }
OLDNEW
« no previous file with comments | « no previous file | tests/corelib/iterable_join_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698