// Copyright (c) 2011, 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. // Iterator for lists with fixed size. class _FixedSizeListIterator extends _VariableSizeListIterator { _FixedSizeListIterator(List list) : super(list), _length = list.length; bool hasNext() => _length > _pos; final int _length; // Cache list length for faster access. } // Iterator for lists with variable size. class _VariableSizeListIterator implements Iterator { _VariableSizeListIterator(List list) : _list = list, _pos = 0; bool hasNext() => _list.length > _pos; T next() { if (!hasNext()) { throw const NoMoreElementsException(); } return _list[_pos++]; } final List _list; int _pos; }