| OLD | NEW | 
|---|
| 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 /** | 5 /** | 
| 6  * This class is the public interface of a set. A set is a collection | 6  * This class is the public interface of a set. A set is a collection | 
| 7  * without duplicates. | 7  * without duplicates. | 
| 8  */ | 8  */ | 
| 9 abstract class Set<E> extends Collection<E> { | 9 abstract class Set<E> extends Collection<E> { | 
| 10   factory Set() => new _HashSetImpl<E>(); | 10   factory Set() => new _HashSetImpl<E>(); | 
| (...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 202 | 202 | 
| 203   // TODO(4504458): Replace set_ with set. | 203   // TODO(4504458): Replace set_ with set. | 
| 204   _HashSetIterator(_HashSetImpl<E> set_) | 204   _HashSetIterator(_HashSetImpl<E> set_) | 
| 205     : _nextValidIndex = -1, | 205     : _nextValidIndex = -1, | 
| 206       _entries = set_._backingMap._keys { | 206       _entries = set_._backingMap._keys { | 
| 207     _advance(); | 207     _advance(); | 
| 208   } | 208   } | 
| 209 | 209 | 
| 210   bool get hasNext { | 210   bool get hasNext { | 
| 211     if (_nextValidIndex >= _entries.length) return false; | 211     if (_nextValidIndex >= _entries.length) return false; | 
| 212     if (_entries[_nextValidIndex] == _HashMapImpl._DELETED_KEY) { | 212     if (identical(_entries[_nextValidIndex], _HashMapImpl._DELETED_KEY)) { | 
| 213       // This happens in case the set was modified in the meantime. | 213       // This happens in case the set was modified in the meantime. | 
| 214       // A modification on the set may make this iterator misbehave, | 214       // A modification on the set may make this iterator misbehave, | 
| 215       // but we should never return the sentinel. | 215       // but we should never return the sentinel. | 
| 216       _advance(); | 216       _advance(); | 
| 217     } | 217     } | 
| 218     return _nextValidIndex < _entries.length; | 218     return _nextValidIndex < _entries.length; | 
| 219   } | 219   } | 
| 220 | 220 | 
| 221   E next() { | 221   E next() { | 
| 222     if (!hasNext) { | 222     if (!hasNext) { | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
| 238   } | 238   } | 
| 239 | 239 | 
| 240   // The entries in the set. May contain null or the sentinel value. | 240   // The entries in the set. May contain null or the sentinel value. | 
| 241   List<E> _entries; | 241   List<E> _entries; | 
| 242 | 242 | 
| 243   // The next valid index in [_entries] or the length of [entries_]. | 243   // The next valid index in [_entries] or the length of [entries_]. | 
| 244   // If it is the length of [_entries], calling [hasNext] on the | 244   // If it is the length of [_entries], calling [hasNext] on the | 
| 245   // iterator will return false. | 245   // iterator will return false. | 
| 246   int _nextValidIndex; | 246   int _nextValidIndex; | 
| 247 } | 247 } | 
| OLD | NEW | 
|---|