File tree Expand file tree Collapse file tree 3 files changed +5
-11
lines changed
library/src/scala/collection Expand file tree Collapse file tree 3 files changed +5
-11
lines changed Original file line number Diff line number Diff line change @@ -26,10 +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 = {
29
+ def next (): A = try {
30
30
val r = self.apply(current)
31
31
current += 1
32
32
r
33
+ } catch {
34
+ case _ : IndexOutOfBoundsException => throw new NoSuchElementException (" last of empty iterator" )
33
35
}
34
36
}
35
37
Original file line number Diff line number Diff line change @@ -210,7 +210,7 @@ object ArrayBuffer extends StrictOptimizedSeqFactory[ArrayBuffer] {
210
210
211
211
final class ArrayBufferView [A ](val array : Array [AnyRef ], val length : Int ) extends AbstractIndexedSeqView [A ] {
212
212
@ throws[ArrayIndexOutOfBoundsException ]
213
- def apply (n : Int ) = array(n).asInstanceOf [A ]
213
+ def apply (n : Int ) = if (n < length) array(n).asInstanceOf [A ] else throw new IndexOutOfBoundsException (n.toString)
214
214
override protected [this ] def className = " ArrayBufferView"
215
215
}
216
216
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