| Index: test/dart_codegen/expect/_internal/iterable.dart
|
| diff --git a/test/dart_codegen/expect/_internal/iterable.dart b/test/dart_codegen/expect/_internal/iterable.dart
|
| deleted file mode 100644
|
| index 335bad7bc9ac020642e739ca03c55658021f61ce..0000000000000000000000000000000000000000
|
| --- a/test/dart_codegen/expect/_internal/iterable.dart
|
| +++ /dev/null
|
| @@ -1,962 +0,0 @@
|
| -part of dart._internal;
|
| - abstract class EfficientLength {int get length;
|
| -}
|
| - abstract class ListIterable<E> extends IterableBase<E> implements EfficientLength {int get length;
|
| - E elementAt(int i);
|
| - const ListIterable();
|
| - Iterator<E> get iterator => new ListIterator<E>(this);
|
| - void forEach(void action(E element)) {
|
| -int length = this.length;
|
| - for (int i = 0; i < length; i++) {
|
| - action(elementAt(i));
|
| - if (length != this.length) {
|
| - throw new ConcurrentModificationError(this);
|
| - }
|
| - }
|
| -}
|
| - bool get isEmpty => length == 0;
|
| - E get first {
|
| -if (length == 0) throw IterableElementError.noElement();
|
| - return elementAt(0);
|
| -}
|
| - E get last {
|
| -if (length == 0) throw IterableElementError.noElement();
|
| - return elementAt(length - 1);
|
| -}
|
| - E get single {
|
| -if (length == 0) throw IterableElementError.noElement();
|
| - if (length > 1) throw IterableElementError.tooMany();
|
| - return elementAt(0);
|
| -}
|
| - bool contains(Object element) {
|
| -int length = this.length;
|
| - for (int i = 0; i < length; i++) {
|
| - if (elementAt(i) == element) return true;
|
| - if (length != this.length) {
|
| - throw new ConcurrentModificationError(this);
|
| - }
|
| - }
|
| - return false;
|
| -}
|
| - bool every(bool test(E element)) {
|
| -int length = this.length;
|
| - for (int i = 0; i < length; i++) {
|
| - if (!test(elementAt(i))) return false;
|
| - if (length != this.length) {
|
| - throw new ConcurrentModificationError(this);
|
| - }
|
| - }
|
| - return true;
|
| -}
|
| - bool any(bool test(E element)) {
|
| -int length = this.length;
|
| - for (int i = 0; i < length; i++) {
|
| - if (test(elementAt(i))) return true;
|
| - if (length != this.length) {
|
| - throw new ConcurrentModificationError(this);
|
| - }
|
| - }
|
| - return false;
|
| -}
|
| - E firstWhere(bool test(E element), {
|
| -E orElse()}
|
| -) {
|
| -int length = this.length;
|
| - for (int i = 0; i < length; i++) {
|
| - E element = elementAt(i);
|
| - if (test(element)) return element;
|
| - if (length != this.length) {
|
| - throw new ConcurrentModificationError(this);
|
| - }
|
| - }
|
| - if (orElse != null) return orElse();
|
| - throw IterableElementError.noElement();
|
| -}
|
| - E lastWhere(bool test(E element), {
|
| -E orElse()}
|
| -) {
|
| -int length = this.length;
|
| - for (int i = length - 1; i >= 0; i--) {
|
| - E element = elementAt(i);
|
| - if (test(element)) return element;
|
| - if (length != this.length) {
|
| - throw new ConcurrentModificationError(this);
|
| - }
|
| - }
|
| - if (orElse != null) return orElse();
|
| - throw IterableElementError.noElement();
|
| -}
|
| - E singleWhere(bool test(E element)) {
|
| -int length = this.length;
|
| - E match = null;
|
| - bool matchFound = false;
|
| - for (int i = 0; i < length; i++) {
|
| - E element = elementAt(i);
|
| - if (test(element)) {
|
| - if (matchFound) {
|
| - throw IterableElementError.tooMany();
|
| - }
|
| - matchFound = true;
|
| - match = element;
|
| - }
|
| - if (length != this.length) {
|
| - throw new ConcurrentModificationError(this);
|
| - }
|
| - }
|
| - if (matchFound) return match;
|
| - throw IterableElementError.noElement();
|
| -}
|
| - String join([String separator = ""]) {
|
| -int length = this.length;
|
| - if (!separator.isEmpty) {
|
| - if (length == 0) return "";
|
| - String first = "${elementAt(0)}";
|
| - if (length != this.length) {
|
| - throw new ConcurrentModificationError(this);
|
| - }
|
| - StringBuffer buffer = new StringBuffer(first);
|
| - for (int i = 1; i < length; i++) {
|
| - buffer.write(separator);
|
| - buffer.write(elementAt(i));
|
| - if (length != this.length) {
|
| - throw new ConcurrentModificationError(this);
|
| - }
|
| - }
|
| - return buffer.toString();
|
| - }
|
| - else {
|
| - StringBuffer buffer = new StringBuffer();
|
| - for (int i = 0; i < length; i++) {
|
| - buffer.write(elementAt(i));
|
| - if (length != this.length) {
|
| - throw new ConcurrentModificationError(this);
|
| - }
|
| - }
|
| - return buffer.toString();
|
| - }
|
| -}
|
| - Iterable<E> where(bool test(E element)) => super.where(test);
|
| - Iterable map(f(E element)) => new MappedListIterable(this, f);
|
| - E reduce(E combine(var value, E element)) {
|
| -int length = this.length;
|
| - if (length == 0) throw IterableElementError.noElement();
|
| - E value = elementAt(0);
|
| - for (int i = 1; i < length; i++) {
|
| - value = combine(value, elementAt(i));
|
| - if (length != this.length) {
|
| - throw new ConcurrentModificationError(this);
|
| - }
|
| - }
|
| - return value;
|
| -}
|
| - fold(var initialValue, combine(var previousValue, E element)) {
|
| -var value = initialValue;
|
| - int length = this.length;
|
| - for (int i = 0; i < length; i++) {
|
| - value = combine(value, elementAt(i));
|
| - if (length != this.length) {
|
| - throw new ConcurrentModificationError(this);
|
| - }
|
| - }
|
| - return value;
|
| -}
|
| - Iterable<E> skip(int count) => new SubListIterable<E>(this, count, null);
|
| - Iterable<E> skipWhile(bool test(E element)) => super.skipWhile(test);
|
| - Iterable<E> take(int count) => new SubListIterable<E>(this, 0, count);
|
| - Iterable<E> takeWhile(bool test(E element)) => super.takeWhile(test);
|
| - List<E> toList({
|
| -bool growable : true}
|
| -) {
|
| -List<E> result;
|
| - if (growable) {
|
| - result = new List<E>()..length = length;
|
| - }
|
| - else {
|
| - result = new List<E>(length);
|
| - }
|
| - for (int i = 0; i < length; i++) {
|
| - result[i] = elementAt(i);
|
| - }
|
| - return result;
|
| -}
|
| - Set<E> toSet() {
|
| -Set<E> result = new Set<E>();
|
| - for (int i = 0; i < length; i++) {
|
| - result.add(elementAt(i));
|
| - }
|
| - return result;
|
| -}
|
| -}
|
| - class SubListIterable<E> extends ListIterable<E> {final Iterable<E> _iterable;
|
| - final int _start;
|
| - final int _endOrLength;
|
| - SubListIterable(this._iterable, this._start, this._endOrLength) {
|
| -RangeError.checkNotNegative(_start, "start");
|
| - if (_endOrLength != null) {
|
| -RangeError.checkNotNegative(_endOrLength, "end");
|
| - if (_start > _endOrLength) {
|
| - throw new RangeError.range(_start, 0, _endOrLength, "start");
|
| - }
|
| -}
|
| -}
|
| - int get _endIndex {
|
| -int length = _iterable.length;
|
| - if (_endOrLength == null || _endOrLength > length) return length;
|
| - return _endOrLength;
|
| -}
|
| - int get _startIndex {
|
| -int length = _iterable.length;
|
| - if (_start > length) return length;
|
| - return _start;
|
| -}
|
| - int get length {
|
| -int length = _iterable.length;
|
| - if (_start >= length) return 0;
|
| - if (_endOrLength == null || _endOrLength >= length) {
|
| -return length - _start;
|
| -}
|
| - return _endOrLength - _start;
|
| -}
|
| - E elementAt(int index) {
|
| -int realIndex = _startIndex + index;
|
| - if (index < 0 || realIndex >= _endIndex) {
|
| -throw new RangeError.index(index, this, "index");
|
| -}
|
| - return _iterable.elementAt(realIndex);
|
| -}
|
| - Iterable<E> skip(int count) {
|
| -RangeError.checkNotNegative(count, "count");
|
| - int newStart = _start + count;
|
| - if (_endOrLength != null && newStart >= _endOrLength) {
|
| -return new EmptyIterable<E>();
|
| -}
|
| - return new SubListIterable<E>(_iterable, newStart, _endOrLength);
|
| -}
|
| - Iterable<E> take(int count) {
|
| -RangeError.checkNotNegative(count, "count");
|
| - if (_endOrLength == null) {
|
| -return new SubListIterable<E>(_iterable, _start, _start + count);
|
| -}
|
| - else {
|
| -int newEnd = _start + count;
|
| - if (_endOrLength < newEnd) return this;
|
| - return new SubListIterable<E>(_iterable, _start, newEnd);
|
| -}
|
| -}
|
| - List<E> toList({
|
| -bool growable : true}
|
| -) {
|
| -int start = _start;
|
| - int end = _iterable.length;
|
| - if (_endOrLength != null && _endOrLength < end) end = _endOrLength;
|
| - int length = end - start;
|
| - if (length < 0) length = 0;
|
| - List result = growable ? (new List<E>()..length = length) : new List<E>(length);
|
| - for (int i = 0; i < length; i++) {
|
| -result[i] = _iterable.elementAt(start + i);
|
| - if (_iterable.length < end) throw new ConcurrentModificationError(this);
|
| -}
|
| - return DEVC$RT.cast(result, DEVC$RT.type((List<dynamic> _) {
|
| -}
|
| -), DEVC$RT.type((List<E> _) {
|
| -}
|
| -), "CompositeCast", """line 310, column 12 of dart:_internal/iterable.dart: """, result is List<E>, false);
|
| -}
|
| -}
|
| - class ListIterator<E> implements Iterator<E> {final Iterable<E> _iterable;
|
| - final int _length;
|
| - int _index;
|
| - E _current;
|
| - ListIterator(Iterable<E> iterable) : _iterable = iterable, _length = iterable.length, _index = 0;
|
| - E get current => _current;
|
| - bool moveNext() {
|
| -int length = _iterable.length;
|
| - if (_length != length) {
|
| -throw new ConcurrentModificationError(_iterable);
|
| -}
|
| - if (_index >= length) {
|
| -_current = null;
|
| - return false;
|
| -}
|
| - _current = _iterable.elementAt(_index);
|
| - _index++;
|
| - return true;
|
| -}
|
| -}
|
| - typedef T _Transformation<S, T>(S value);
|
| - class MappedIterable<S, T> extends IterableBase<T> {final Iterable<S> _iterable;
|
| - final _Transformation<S, T> _f;
|
| - factory MappedIterable(Iterable iterable, T function(S value)) {
|
| -if (iterable is EfficientLength) {
|
| -return new EfficientLengthMappedIterable<S, T>(iterable, function);
|
| -}
|
| - return new MappedIterable<S, T>._(DEVC$RT.cast(iterable, DEVC$RT.type((Iterable<dynamic> _) {
|
| -}
|
| -), DEVC$RT.type((Iterable<S> _) {
|
| -}
|
| -), "CompositeCast", """line 357, column 39 of dart:_internal/iterable.dart: """, iterable is Iterable<S>, false), function);
|
| -}
|
| - MappedIterable._(this._iterable, T this._f(S element));
|
| - Iterator<T> get iterator => new MappedIterator<S, T>(_iterable.iterator, _f);
|
| - int get length => _iterable.length;
|
| - bool get isEmpty => _iterable.isEmpty;
|
| - T get first => _f(_iterable.first);
|
| - T get last => _f(_iterable.last);
|
| - T get single => _f(_iterable.single);
|
| - T elementAt(int index) => _f(_iterable.elementAt(index));
|
| -}
|
| - class EfficientLengthMappedIterable<S, T> extends MappedIterable<S, T> implements EfficientLength {EfficientLengthMappedIterable(Iterable iterable, T function(S value)) : super._(DEVC$RT.cast(iterable, DEVC$RT.type((Iterable<dynamic> _) {
|
| -}
|
| -), DEVC$RT.type((Iterable<S> _) {
|
| -}
|
| -), "CompositeCast", """line 378, column 17 of dart:_internal/iterable.dart: """, iterable is Iterable<S>, false), function);
|
| -}
|
| - class MappedIterator<S, T> extends Iterator<T> {T _current;
|
| - final Iterator<S> _iterator;
|
| - final _Transformation<S, T> _f;
|
| - MappedIterator(this._iterator, T this._f(S element));
|
| - bool moveNext() {
|
| -if (_iterator.moveNext()) {
|
| -_current = _f(_iterator.current);
|
| - return true;
|
| -}
|
| - _current = null;
|
| - return false;
|
| -}
|
| - T get current => _current;
|
| -}
|
| - class MappedListIterable<S, T> extends ListIterable<T> implements EfficientLength {final Iterable<S> _source;
|
| - final _Transformation<S, T> _f;
|
| - MappedListIterable(this._source, T this._f(S value));
|
| - int get length => _source.length;
|
| - T elementAt(int index) => _f(_source.elementAt(index));
|
| -}
|
| - typedef bool _ElementPredicate<E>(E element);
|
| - class WhereIterable<E> extends IterableBase<E> {final Iterable<E> _iterable;
|
| - final _ElementPredicate<E> _f;
|
| - WhereIterable(this._iterable, bool this._f(E element));
|
| - Iterator<E> get iterator => new WhereIterator<E>(_iterable.iterator, _f);
|
| -}
|
| - class WhereIterator<E> extends Iterator<E> {final Iterator<E> _iterator;
|
| - final _ElementPredicate<E> _f;
|
| - WhereIterator(this._iterator, bool this._f(E element));
|
| - bool moveNext() {
|
| -while (_iterator.moveNext()) {
|
| -if (_f(_iterator.current)) {
|
| -return true;
|
| -}
|
| -}
|
| - return false;
|
| -}
|
| - E get current => _iterator.current;
|
| -}
|
| - typedef Iterable<T> _ExpandFunction<S, T>(S sourceElement);
|
| - class ExpandIterable<S, T> extends IterableBase<T> {final Iterable<S> _iterable;
|
| - final _ExpandFunction _f;
|
| - ExpandIterable(this._iterable, Iterable<T> this._f(S element));
|
| - Iterator<T> get iterator => new ExpandIterator<S, T>(_iterable.iterator, DEVC$RT.cast(_f, null, DEVC$RT.type((__CastType0<S, T> _) {
|
| -}
|
| -), "CompositeCast", """line 454, column 76 of dart:_internal/iterable.dart: """, _f is __CastType0<S, T>, false));
|
| -}
|
| - class ExpandIterator<S, T> implements Iterator<T> {final Iterator<S> _iterator;
|
| - final _ExpandFunction _f;
|
| - Iterator<T> _currentExpansion = const EmptyIterator<T>();
|
| - T _current;
|
| - ExpandIterator(this._iterator, Iterable<T> this._f(S element));
|
| - void _nextExpansion() {
|
| -}
|
| - T get current => _current;
|
| - bool moveNext() {
|
| -if (_currentExpansion == null) return false;
|
| - while (!_currentExpansion.moveNext()) {
|
| -_current = null;
|
| - if (_iterator.moveNext()) {
|
| -_currentExpansion = null;
|
| - _currentExpansion = ((__x2) => DEVC$RT.cast(__x2, DEVC$RT.type((Iterator<dynamic> _) {
|
| -}
|
| -), DEVC$RT.type((Iterator<T> _) {
|
| -}
|
| -), "CompositeCast", """line 481, column 29 of dart:_internal/iterable.dart: """, __x2 is Iterator<T>, false))(_f(_iterator.current).iterator);
|
| -}
|
| - else {
|
| -return false;
|
| -}
|
| -}
|
| - _current = _currentExpansion.current;
|
| - return true;
|
| -}
|
| -}
|
| - class TakeIterable<E> extends IterableBase<E> {final Iterable<E> _iterable;
|
| - final int _takeCount;
|
| - factory TakeIterable(Iterable<E> iterable, int takeCount) {
|
| -if (takeCount is! int || takeCount < 0) {
|
| -throw new ArgumentError(takeCount);
|
| -}
|
| - if (iterable is EfficientLength) {
|
| -return new EfficientLengthTakeIterable<E>(iterable, takeCount);
|
| -}
|
| - return new TakeIterable<E>._(iterable, takeCount);
|
| -}
|
| - TakeIterable._(this._iterable, this._takeCount);
|
| - Iterator<E> get iterator {
|
| -return new TakeIterator<E>(_iterable.iterator, _takeCount);
|
| -}
|
| -}
|
| - class EfficientLengthTakeIterable<E> extends TakeIterable<E> implements EfficientLength {EfficientLengthTakeIterable(Iterable<E> iterable, int takeCount) : super._(iterable, takeCount);
|
| - int get length {
|
| -int iterableLength = _iterable.length;
|
| - if (iterableLength > _takeCount) return _takeCount;
|
| - return iterableLength;
|
| -}
|
| -}
|
| - class TakeIterator<E> extends Iterator<E> {final Iterator<E> _iterator;
|
| - int _remaining;
|
| - TakeIterator(this._iterator, this._remaining) {
|
| -assert (_remaining is int && _remaining >= 0);}
|
| - bool moveNext() {
|
| -_remaining--;
|
| - if (_remaining >= 0) {
|
| -return _iterator.moveNext();
|
| -}
|
| - _remaining = -1;
|
| - return false;
|
| -}
|
| - E get current {
|
| -if (_remaining < 0) return null;
|
| - return _iterator.current;
|
| -}
|
| -}
|
| - class TakeWhileIterable<E> extends IterableBase<E> {final Iterable<E> _iterable;
|
| - final _ElementPredicate _f;
|
| - TakeWhileIterable(this._iterable, bool this._f(E element));
|
| - Iterator<E> get iterator {
|
| -return new TakeWhileIterator<E>(_iterable.iterator, DEVC$RT.cast(_f, null, DEVC$RT.type((__CastType3<E> _) {
|
| -}
|
| -), "CompositeCast", """line 555, column 57 of dart:_internal/iterable.dart: """, _f is __CastType3<E>, false));
|
| -}
|
| -}
|
| - class TakeWhileIterator<E> extends Iterator<E> {final Iterator<E> _iterator;
|
| - final _ElementPredicate _f;
|
| - bool _isFinished = false;
|
| - TakeWhileIterator(this._iterator, bool this._f(E element));
|
| - bool moveNext() {
|
| -if (_isFinished) return false;
|
| - if (!_iterator.moveNext() || !_f(_iterator.current)) {
|
| -_isFinished = true;
|
| - return false;
|
| -}
|
| - return true;
|
| -}
|
| - E get current {
|
| -if (_isFinished) return null;
|
| - return _iterator.current;
|
| -}
|
| -}
|
| - class SkipIterable<E> extends IterableBase<E> {final Iterable<E> _iterable;
|
| - final int _skipCount;
|
| - factory SkipIterable(Iterable<E> iterable, int count) {
|
| -if (iterable is EfficientLength) {
|
| -return new EfficientLengthSkipIterable<E>(iterable, count);
|
| -}
|
| - return new SkipIterable<E>._(iterable, count);
|
| -}
|
| - SkipIterable._(this._iterable, this._skipCount) {
|
| -if (_skipCount is! int) {
|
| -throw new ArgumentError.value(_skipCount, "count is not an integer");
|
| -}
|
| - RangeError.checkNotNegative(_skipCount, "count");
|
| -}
|
| - Iterable<E> skip(int count) {
|
| -if (_skipCount is! int) {
|
| -throw new ArgumentError.value(_skipCount, "count is not an integer");
|
| -}
|
| - RangeError.checkNotNegative(_skipCount, "count");
|
| - return new SkipIterable<E>._(_iterable, _skipCount + count);
|
| -}
|
| - Iterator<E> get iterator {
|
| -return new SkipIterator<E>(_iterable.iterator, _skipCount);
|
| -}
|
| -}
|
| - class EfficientLengthSkipIterable<E> extends SkipIterable<E> implements EfficientLength {EfficientLengthSkipIterable(Iterable<E> iterable, int skipCount) : super._(iterable, skipCount);
|
| - int get length {
|
| -int length = _iterable.length - _skipCount;
|
| - if (length >= 0) return length;
|
| - return 0;
|
| -}
|
| -}
|
| - class SkipIterator<E> extends Iterator<E> {final Iterator<E> _iterator;
|
| - int _skipCount;
|
| - SkipIterator(this._iterator, this._skipCount) {
|
| -assert (_skipCount is int && _skipCount >= 0);}
|
| - bool moveNext() {
|
| -for (int i = 0; i < _skipCount; i++) _iterator.moveNext();
|
| - _skipCount = 0;
|
| - return _iterator.moveNext();
|
| -}
|
| - E get current => _iterator.current;
|
| -}
|
| - class SkipWhileIterable<E> extends IterableBase<E> {final Iterable<E> _iterable;
|
| - final _ElementPredicate _f;
|
| - SkipWhileIterable(this._iterable, bool this._f(E element));
|
| - Iterator<E> get iterator {
|
| -return new SkipWhileIterator<E>(_iterable.iterator, DEVC$RT.cast(_f, null, DEVC$RT.type((__CastType5<E> _) {
|
| -}
|
| -), "CompositeCast", """line 648, column 57 of dart:_internal/iterable.dart: """, _f is __CastType5<E>, false));
|
| -}
|
| -}
|
| - class SkipWhileIterator<E> extends Iterator<E> {final Iterator<E> _iterator;
|
| - final _ElementPredicate _f;
|
| - bool _hasSkipped = false;
|
| - SkipWhileIterator(this._iterator, bool this._f(E element));
|
| - bool moveNext() {
|
| -if (!_hasSkipped) {
|
| -_hasSkipped = true;
|
| - while (_iterator.moveNext()) {
|
| -if (!_f(_iterator.current)) return true;
|
| -}
|
| -}
|
| - return _iterator.moveNext();
|
| -}
|
| - E get current => _iterator.current;
|
| -}
|
| - class EmptyIterable<E> extends IterableBase<E> implements EfficientLength {const EmptyIterable();
|
| - Iterator<E> get iterator => const EmptyIterator<E>();
|
| - void forEach(void action(E element)) {
|
| -}
|
| - bool get isEmpty => true;
|
| - int get length => 0;
|
| - E get first {
|
| -throw IterableElementError.noElement();
|
| -}
|
| - E get last {
|
| -throw IterableElementError.noElement();
|
| -}
|
| - E get single {
|
| -throw IterableElementError.noElement();
|
| -}
|
| - E elementAt(int index) {
|
| -throw new RangeError.range(index, 0, 0, "index");
|
| -}
|
| - bool contains(Object element) => false;
|
| - bool every(bool test(E element)) => true;
|
| - bool any(bool test(E element)) => false;
|
| - E firstWhere(bool test(E element), {
|
| -E orElse()}
|
| -) {
|
| -if (orElse != null) return orElse();
|
| - throw IterableElementError.noElement();
|
| -}
|
| - E lastWhere(bool test(E element), {
|
| -E orElse()}
|
| -) {
|
| -if (orElse != null) return orElse();
|
| - throw IterableElementError.noElement();
|
| -}
|
| - E singleWhere(bool test(E element), {
|
| -E orElse()}
|
| -) {
|
| -if (orElse != null) return orElse();
|
| - throw IterableElementError.noElement();
|
| -}
|
| - String join([String separator = ""]) => "";
|
| - Iterable<E> where(bool test(E element)) => this;
|
| - Iterable map(f(E element)) => const EmptyIterable();
|
| - E reduce(E combine(E value, E element)) {
|
| -throw IterableElementError.noElement();
|
| -}
|
| - fold(var initialValue, combine(var previousValue, E element)) {
|
| -return initialValue;
|
| -}
|
| - Iterable<E> skip(int count) {
|
| -RangeError.checkNotNegative(count, "count");
|
| - return this;
|
| -}
|
| - Iterable<E> skipWhile(bool test(E element)) => this;
|
| - Iterable<E> take(int count) {
|
| -RangeError.checkNotNegative(count, "count");
|
| - return this;
|
| -}
|
| - Iterable<E> takeWhile(bool test(E element)) => this;
|
| - List<E> toList({
|
| -bool growable : true}
|
| -) => growable ? <E> [] : new List<E>(0);
|
| - Set<E> toSet() => new Set<E>();
|
| -}
|
| - class EmptyIterator<E> implements Iterator<E> {const EmptyIterator();
|
| - bool moveNext() => false;
|
| - E get current => null;
|
| -}
|
| - abstract class BidirectionalIterator<T> implements Iterator<T> {bool movePrevious();
|
| -}
|
| - class IterableMixinWorkaround<T> {static bool contains(Iterable iterable, var element) {
|
| -for (final e in iterable) {
|
| -if (e == element) return true;
|
| -}
|
| - return false;
|
| -}
|
| - static void forEach(Iterable iterable, void f(o)) {
|
| -for (final e in iterable) {
|
| -f(e);
|
| -}
|
| -}
|
| - static bool any(Iterable iterable, bool f(o)) {
|
| -for (final e in iterable) {
|
| -if (f(e)) return true;
|
| -}
|
| - return false;
|
| -}
|
| - static bool every(Iterable iterable, bool f(o)) {
|
| -for (final e in iterable) {
|
| -if (!f(e)) return false;
|
| -}
|
| - return true;
|
| -}
|
| - static dynamic reduce(Iterable iterable, dynamic combine(previousValue, element)) {
|
| -Iterator iterator = iterable.iterator;
|
| - if (!iterator.moveNext()) throw IterableElementError.noElement();
|
| - var value = iterator.current;
|
| - while (iterator.moveNext()) {
|
| -value = combine(value, iterator.current);
|
| -}
|
| - return value;
|
| -}
|
| - static dynamic fold(Iterable iterable, dynamic initialValue, dynamic combine(dynamic previousValue, element)) {
|
| -for (final element in iterable) {
|
| -initialValue = combine(initialValue, element);
|
| -}
|
| - return initialValue;
|
| -}
|
| - static void removeWhereList(List list, bool test(var element)) {
|
| -List retained = [];
|
| - int length = list.length;
|
| - for (int i = 0; i < length; i++) {
|
| -var element = list[i];
|
| - if (!test(element)) {
|
| -retained.add(element);
|
| -}
|
| - if (length != list.length) {
|
| -throw new ConcurrentModificationError(list);
|
| -}
|
| -}
|
| - if (retained.length == length) return; list.length = retained.length;
|
| - for (int i = 0; i < retained.length; i++) {
|
| -list[i] = retained[i];
|
| -}
|
| -}
|
| - static bool isEmpty(Iterable iterable) {
|
| -return !iterable.iterator.moveNext();
|
| -}
|
| - static dynamic first(Iterable iterable) {
|
| -Iterator it = iterable.iterator;
|
| - if (!it.moveNext()) {
|
| -throw IterableElementError.noElement();
|
| -}
|
| - return it.current;
|
| -}
|
| - static dynamic last(Iterable iterable) {
|
| -Iterator it = iterable.iterator;
|
| - if (!it.moveNext()) {
|
| -throw IterableElementError.noElement();
|
| -}
|
| - dynamic result;
|
| - do {
|
| -result = it.current;
|
| -}
|
| - while (it.moveNext()); return result;
|
| -}
|
| - static dynamic single(Iterable iterable) {
|
| -Iterator it = iterable.iterator;
|
| - if (!it.moveNext()) throw IterableElementError.noElement();
|
| - dynamic result = it.current;
|
| - if (it.moveNext()) throw IterableElementError.tooMany();
|
| - return result;
|
| -}
|
| - static dynamic firstWhere(Iterable iterable, bool test(dynamic value), dynamic orElse()) {
|
| -for (dynamic element in iterable) {
|
| -if (test(element)) return element;
|
| -}
|
| - if (orElse != null) return orElse();
|
| - throw IterableElementError.noElement();
|
| -}
|
| - static dynamic lastWhere(Iterable iterable, bool test(dynamic value), dynamic orElse()) {
|
| -dynamic result = null;
|
| - bool foundMatching = false;
|
| - for (dynamic element in iterable) {
|
| -if (test(element)) {
|
| -result = element;
|
| - foundMatching = true;
|
| -}
|
| -}
|
| - if (foundMatching) return result;
|
| - if (orElse != null) return orElse();
|
| - throw IterableElementError.noElement();
|
| -}
|
| - static dynamic lastWhereList(List list, bool test(dynamic value), dynamic orElse()) {
|
| -for (int i = list.length - 1; i >= 0; i--) {
|
| -dynamic element = list[i];
|
| - if (test(element)) return element;
|
| -}
|
| - if (orElse != null) return orElse();
|
| - throw IterableElementError.noElement();
|
| -}
|
| - static dynamic singleWhere(Iterable iterable, bool test(dynamic value)) {
|
| -dynamic result = null;
|
| - bool foundMatching = false;
|
| - for (dynamic element in iterable) {
|
| -if (test(element)) {
|
| -if (foundMatching) {
|
| -throw IterableElementError.tooMany();
|
| -}
|
| - result = element;
|
| - foundMatching = true;
|
| -}
|
| -}
|
| - if (foundMatching) return result;
|
| - throw IterableElementError.noElement();
|
| -}
|
| - static elementAt(Iterable iterable, int index) {
|
| -if (index is! int) throw new ArgumentError.notNull("index");
|
| - RangeError.checkNotNegative(index, "index");
|
| - int elementIndex = 0;
|
| - for (var element in iterable) {
|
| -if (index == elementIndex) return element;
|
| - elementIndex++;
|
| -}
|
| - throw new RangeError.index(index, iterable, "index", null, elementIndex);
|
| -}
|
| - static String join(Iterable iterable, [String separator]) {
|
| -StringBuffer buffer = new StringBuffer();
|
| - buffer.writeAll(iterable, separator);
|
| - return buffer.toString();
|
| -}
|
| - static String joinList(List list, [String separator]) {
|
| -if (list.isEmpty) return "";
|
| - if (list.length == 1) return "${list[0]}";
|
| - StringBuffer buffer = new StringBuffer();
|
| - if (separator.isEmpty) {
|
| -for (int i = 0; i < list.length; i++) {
|
| -buffer.write(list[i]);
|
| -}
|
| -}
|
| - else {
|
| -buffer.write(list[0]);
|
| - for (int i = 1; i < list.length; i++) {
|
| -buffer.write(separator);
|
| - buffer.write(list[i]);
|
| -}
|
| -}
|
| - return buffer.toString();
|
| -}
|
| - Iterable<T> where(Iterable iterable, bool f(var element)) {
|
| -return new WhereIterable<T>(DEVC$RT.cast(iterable, DEVC$RT.type((Iterable<dynamic> _) {
|
| -}
|
| -), DEVC$RT.type((Iterable<T> _) {
|
| -}
|
| -), "CompositeCast", """line 961, column 33 of dart:_internal/iterable.dart: """, iterable is Iterable<T>, false), DEVC$RT.cast(f, null, DEVC$RT.type((__CastType7<T> _) {
|
| -}
|
| -), "CompositeCast", """line 961, column 43 of dart:_internal/iterable.dart: """, f is __CastType7<T>, false));
|
| -}
|
| - static Iterable map(Iterable iterable, f(var element)) {
|
| -return new MappedIterable(iterable, f);
|
| -}
|
| - static Iterable mapList(List list, f(var element)) {
|
| -return new MappedListIterable(list, f);
|
| -}
|
| - static Iterable expand(Iterable iterable, Iterable f(var element)) {
|
| -return new ExpandIterable(iterable, f);
|
| -}
|
| - Iterable<T> takeList(List list, int n) {
|
| -return new SubListIterable<T>(DEVC$RT.cast(list, DEVC$RT.type((List<dynamic> _) {
|
| -}
|
| -), DEVC$RT.type((Iterable<T> _) {
|
| -}
|
| -), "CompositeCast", """line 978, column 35 of dart:_internal/iterable.dart: """, list is Iterable<T>, false), 0, n);
|
| -}
|
| - Iterable<T> takeWhile(Iterable iterable, bool test(var value)) {
|
| -return new TakeWhileIterable<T>(DEVC$RT.cast(iterable, DEVC$RT.type((Iterable<dynamic> _) {
|
| -}
|
| -), DEVC$RT.type((Iterable<T> _) {
|
| -}
|
| -), "CompositeCast", """line 983, column 37 of dart:_internal/iterable.dart: """, iterable is Iterable<T>, false), DEVC$RT.cast(test, null, DEVC$RT.type((__CastType7<T> _) {
|
| -}
|
| -), "CompositeCast", """line 983, column 47 of dart:_internal/iterable.dart: """, test is __CastType7<T>, false));
|
| -}
|
| - Iterable<T> skipList(List list, int n) {
|
| -return new SubListIterable<T>(DEVC$RT.cast(list, DEVC$RT.type((List<dynamic> _) {
|
| -}
|
| -), DEVC$RT.type((Iterable<T> _) {
|
| -}
|
| -), "CompositeCast", """line 988, column 35 of dart:_internal/iterable.dart: """, list is Iterable<T>, false), n, null);
|
| -}
|
| - Iterable<T> skipWhile(Iterable iterable, bool test(var value)) {
|
| -return new SkipWhileIterable<T>(DEVC$RT.cast(iterable, DEVC$RT.type((Iterable<dynamic> _) {
|
| -}
|
| -), DEVC$RT.type((Iterable<T> _) {
|
| -}
|
| -), "CompositeCast", """line 993, column 37 of dart:_internal/iterable.dart: """, iterable is Iterable<T>, false), DEVC$RT.cast(test, null, DEVC$RT.type((__CastType7<T> _) {
|
| -}
|
| -), "CompositeCast", """line 993, column 47 of dart:_internal/iterable.dart: """, test is __CastType7<T>, false));
|
| -}
|
| - Iterable<T> reversedList(List list) {
|
| -return new ReversedListIterable<T>(DEVC$RT.cast(list, DEVC$RT.type((List<dynamic> _) {
|
| -}
|
| -), DEVC$RT.type((Iterable<T> _) {
|
| -}
|
| -), "CompositeCast", """line 997, column 40 of dart:_internal/iterable.dart: """, list is Iterable<T>, false));
|
| -}
|
| - static void sortList(List list, int compare(a, b)) {
|
| -if (compare == null) compare = Comparable.compare;
|
| - Sort.sort(list, compare);
|
| -}
|
| - static void shuffleList(List list, Random random) {
|
| -if (random == null) random = new Random();
|
| - int length = list.length;
|
| - while (length > 1) {
|
| -int pos = random.nextInt(length);
|
| - length -= 1;
|
| - var tmp = list[length];
|
| - list[length] = list[pos];
|
| - list[pos] = tmp;
|
| -}
|
| -}
|
| - static int indexOfList(List list, var element, int start) {
|
| -return Lists.indexOf(list, element, start, list.length);
|
| -}
|
| - static int lastIndexOfList(List list, var element, int start) {
|
| -if (start == null) start = list.length - 1;
|
| - return Lists.lastIndexOf(list, element, start);
|
| -}
|
| - static void _rangeCheck(List list, int start, int end) {
|
| -RangeError.checkValidRange(start, end, list.length);
|
| -}
|
| - Iterable<T> getRangeList(List list, int start, int end) {
|
| -_rangeCheck(list, start, end);
|
| - return new SubListIterable<T>(DEVC$RT.cast(list, DEVC$RT.type((List<dynamic> _) {
|
| -}
|
| -), DEVC$RT.type((Iterable<T> _) {
|
| -}
|
| -), "CompositeCast", """line 1033, column 35 of dart:_internal/iterable.dart: """, list is Iterable<T>, false), start, end);
|
| -}
|
| - static void setRangeList(List list, int start, int end, Iterable from, int skipCount) {
|
| -_rangeCheck(list, start, end);
|
| - int length = end - start;
|
| - if (length == 0) return; if (skipCount < 0) throw new ArgumentError(skipCount);
|
| - List otherList;
|
| - int otherStart;
|
| - if (from is List) {
|
| -otherList = from;
|
| - otherStart = skipCount;
|
| -}
|
| - else {
|
| -otherList = from.skip(skipCount).toList(growable: false);
|
| - otherStart = 0;
|
| -}
|
| - if (otherStart + length > otherList.length) {
|
| -throw IterableElementError.tooFew();
|
| -}
|
| - Lists.copy(otherList, otherStart, list, start, length);
|
| -}
|
| - static void replaceRangeList(List list, int start, int end, Iterable iterable) {
|
| -_rangeCheck(list, start, end);
|
| - if (iterable is! EfficientLength) {
|
| -iterable = iterable.toList();
|
| -}
|
| - int removeLength = end - start;
|
| - int insertLength = iterable.length;
|
| - if (removeLength >= insertLength) {
|
| -int delta = removeLength - insertLength;
|
| - int insertEnd = start + insertLength;
|
| - int newEnd = list.length - delta;
|
| - list.setRange(start, insertEnd, iterable);
|
| - if (delta != 0) {
|
| -list.setRange(insertEnd, newEnd, list, end);
|
| - list.length = newEnd;
|
| -}
|
| -}
|
| - else {
|
| -int delta = insertLength - removeLength;
|
| - int newLength = list.length + delta;
|
| - int insertEnd = start + insertLength;
|
| - list.length = newLength;
|
| - list.setRange(insertEnd, newLength, list, end);
|
| - list.setRange(start, insertEnd, iterable);
|
| -}
|
| -}
|
| - static void fillRangeList(List list, int start, int end, fillValue) {
|
| -_rangeCheck(list, start, end);
|
| - for (int i = start; i < end; i++) {
|
| -list[i] = fillValue;
|
| -}
|
| -}
|
| - static void insertAllList(List list, int index, Iterable iterable) {
|
| -RangeError.checkValueInInterval(index, 0, list.length, "index");
|
| - if (iterable is! EfficientLength) {
|
| -iterable = iterable.toList(growable: false);
|
| -}
|
| - int insertionLength = iterable.length;
|
| - list.length += insertionLength;
|
| - list.setRange(index + insertionLength, list.length, list, index);
|
| - for (var element in iterable) {
|
| -list[index++] = element;
|
| -}
|
| -}
|
| - static void setAllList(List list, int index, Iterable iterable) {
|
| -RangeError.checkValueInInterval(index, 0, list.length, "index");
|
| - for (var element in iterable) {
|
| -list[index++] = element;
|
| -}
|
| -}
|
| - Map<int, T> asMapList(List l) {
|
| -return new ListMapView<T>(DEVC$RT.cast(l, DEVC$RT.type((List<dynamic> _) {
|
| -}
|
| -), DEVC$RT.type((List<T> _) {
|
| -}
|
| -), "CompositeCast", """line 1115, column 31 of dart:_internal/iterable.dart: """, l is List<T>, false));
|
| -}
|
| - static bool setContainsAll(Set set, Iterable other) {
|
| -for (var element in other) {
|
| -if (!set.contains(element)) return false;
|
| -}
|
| - return true;
|
| -}
|
| - static Set setIntersection(Set set, Set other, Set result) {
|
| -Set smaller;
|
| - Set larger;
|
| - if (set.length < other.length) {
|
| -smaller = set;
|
| - larger = other;
|
| -}
|
| - else {
|
| -smaller = other;
|
| - larger = set;
|
| -}
|
| - for (var element in smaller) {
|
| -if (larger.contains(element)) {
|
| -result.add(element);
|
| -}
|
| -}
|
| - return result;
|
| -}
|
| - static Set setUnion(Set set, Set other, Set result) {
|
| -result.addAll(set);
|
| - result.addAll(other);
|
| - return result;
|
| -}
|
| - static Set setDifference(Set set, Set other, Set result) {
|
| -for (var element in set) {
|
| -if (!other.contains(element)) {
|
| -result.add(element);
|
| -}
|
| -}
|
| - return result;
|
| -}
|
| -}
|
| - abstract class IterableElementError {static StateError noElement() => new StateError("No element");
|
| - static StateError tooMany() => new StateError("Too many elements");
|
| - static StateError tooFew() => new StateError("Too few elements");
|
| -}
|
| - typedef Iterable<T> __CastType0<S, T>(S __u1);
|
| - typedef bool __CastType3<E>(E __u4);
|
| - typedef bool __CastType5<E>(E __u6);
|
| - typedef bool __CastType7<T>(T __u8);
|
| - typedef bool __CastType9(dynamic __u10);
|
|
|