File tree Expand file tree Collapse file tree 3 files changed +8
-15
lines changed
library/src/scala/collection Expand file tree Collapse file tree 3 files changed +8
-15
lines changed Original file line number Diff line number Diff line change @@ -26,11 +26,12 @@ object IndexedSeqView {
26
26
private [this ] var current = 0
27
27
override def knownSize : Int = self.size - current
28
28
def hasNext = current < self.size
29
- def next (): A = {
30
- val r = self.apply(current)
31
- current += 1
32
- r
33
- }
29
+ def next (): A =
30
+ if (hasNext) {
31
+ val r = self.apply(current)
32
+ current += 1
33
+ r
34
+ } else Iterator .empty.next()
34
35
}
35
36
36
37
/** An `IndexedSeqOps` whose collection type and collection type constructor are unknown */
Original file line number Diff line number Diff line change @@ -209,7 +209,7 @@ object ArrayBuffer extends StrictOptimizedSeqFactory[ArrayBuffer] {
209
209
210
210
final class ArrayBufferView [A ](val array : Array [AnyRef ], val length : Int ) extends AbstractIndexedSeqView [A ] {
211
211
@ throws[ArrayIndexOutOfBoundsException ]
212
- def apply (n : Int ) = array(n).asInstanceOf [A ]
212
+ def apply (n : Int ) = if (n < length) array(n).asInstanceOf [A ] else throw new IndexOutOfBoundsException (n.toString)
213
213
override protected [this ] def className = " ArrayBufferView"
214
214
}
215
215
Original file line number Diff line number Diff line change @@ -247,15 +247,7 @@ sealed class PriorityQueue[A](implicit val ord: Ordering[A])
247
247
*
248
248
* @return an iterator over all the elements.
249
249
*/
250
- override def iterator : Iterator [A ] = new AbstractIterator [A ] {
251
- private [this ] var i = 1
252
- def hasNext : Boolean = i < resarr.p_size0
253
- def next (): A = {
254
- val n = resarr.p_array(i)
255
- i += 1
256
- toA(n)
257
- }
258
- }
250
+ override def iterator : Iterator [A ] = resarr.iterator.drop(1 )
259
251
260
252
/** Returns the reverse of this priority queue. The new priority queue has
261
253
* the same elements as the original, but the opposite ordering.
You can’t perform that action at this time.
0 commit comments