| OLD | NEW |
| (Empty) |
| 1 part of dart.core; | |
| 2 @SupportJsExtensionMethods() abstract class Iterable<E> {const Iterable(); | |
| 3 factory Iterable.generate(int count, [E generator(int index)]) { | |
| 4 if (count <= 0) return new EmptyIterable<E>(); | |
| 5 return new _GeneratorIterable<E>(count, generator); | |
| 6 } | |
| 7 Iterator<E> get iterator; | |
| 8 Iterable map(f(E element)); | |
| 9 Iterable<E> where(bool test(E element)); | |
| 10 Iterable expand(Iterable f(E element)); | |
| 11 bool contains(Object element); | |
| 12 void forEach(void f(E element)); | |
| 13 E reduce(E combine(E value, E element)); | |
| 14 dynamic fold(var initialValue, dynamic combine(var previousValue, E element)); | |
| 15 bool every(bool test(E element)); | |
| 16 String join([String separator = ""]) { | |
| 17 StringBuffer buffer = new StringBuffer(); | |
| 18 buffer.writeAll(this, separator); | |
| 19 return buffer.toString(); | |
| 20 } | |
| 21 bool any(bool test(E element)); | |
| 22 List<E> toList({ | |
| 23 bool growable : true} | |
| 24 ); | |
| 25 Set<E> toSet(); | |
| 26 int get length; | |
| 27 bool get isEmpty; | |
| 28 bool get isNotEmpty; | |
| 29 Iterable<E> take(int count); | |
| 30 Iterable<E> takeWhile(bool test(E value)); | |
| 31 Iterable<E> skip(int count); | |
| 32 Iterable<E> skipWhile(bool test(E value)); | |
| 33 E get first; | |
| 34 E get last; | |
| 35 E get single; | |
| 36 E firstWhere(bool test(E element), { | |
| 37 E orElse()} | |
| 38 ); | |
| 39 E lastWhere(bool test(E element), { | |
| 40 E orElse()} | |
| 41 ); | |
| 42 E singleWhere(bool test(E element)); | |
| 43 E elementAt(int index); | |
| 44 } | |
| 45 typedef E _Generator<E>(int index); | |
| 46 class _GeneratorIterable<E> extends IterableBase<E> implements EfficientLength
{final int _start; | |
| 47 final int _end; | |
| 48 final _Generator<E> _generator; | |
| 49 _GeneratorIterable(this._end, E generator(int n)) : _start = 0, _generator = ((
__x7) => DEVC$RT.cast(__x7, dynamic, DEVC$RT.type((_Generator<E> _) { | |
| 50 } | |
| 51 ), "CompositeCast", """line 320, column 22 of dart:core/iterable.dart: """, __x7
is _Generator<E>, false))((generator != null) ? generator : _id); | |
| 52 _GeneratorIterable.slice(this._start, this._end, this._generator); | |
| 53 Iterator<E> get iterator => new _GeneratorIterator<E>(_start, _end, _generator)
; | |
| 54 int get length => _end - _start; | |
| 55 Iterable<E> skip(int count) { | |
| 56 RangeError.checkNotNegative(count, "count"); | |
| 57 if (count == 0) return this; | |
| 58 int newStart = _start + count; | |
| 59 if (newStart >= _end) return new EmptyIterable<E>(); | |
| 60 return new _GeneratorIterable<E>.slice(newStart, _end, _generator); | |
| 61 } | |
| 62 Iterable<E> take(int count) { | |
| 63 RangeError.checkNotNegative(count, "count"); | |
| 64 if (count == 0) return new EmptyIterable<E>(); | |
| 65 int newEnd = _start + count; | |
| 66 if (newEnd >= _end) return this; | |
| 67 return new _GeneratorIterable<E>.slice(_start, newEnd, _generator); | |
| 68 } | |
| 69 static int _id(int n) => n; | |
| 70 } | |
| 71 class _GeneratorIterator<E> implements Iterator<E> {final int _end; | |
| 72 final _Generator<E> _generator; | |
| 73 int _index; | |
| 74 E _current; | |
| 75 _GeneratorIterator(this._index, this._end, this._generator); | |
| 76 bool moveNext() { | |
| 77 if (_index < _end) { | |
| 78 _current = _generator(_index); | |
| 79 _index++; | |
| 80 return true; | |
| 81 } | |
| 82 else { | |
| 83 _current = null; | |
| 84 return false; | |
| 85 } | |
| 86 } | |
| 87 E get current => _current; | |
| 88 } | |
| 89 abstract class BidirectionalIterator<E> implements Iterator<E> {bool movePrevio
us(); | |
| 90 } | |
| OLD | NEW |