Skip to content

Commit d88a280

Browse files
committed
Fix problem with IndexedView.iterator.length
1 parent 8db8c11 commit d88a280

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

src/strawman/collections/CollectionStrawMan6.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -886,11 +886,11 @@ object CollectionStrawMan6 extends LowPriority {
886886
}
887887

888888
/** View defined in terms of indexing a range */
889-
trait IndexedView[+A] extends View[A] with ArrayLike[A] {
889+
trait IndexedView[+A] extends View[A] with ArrayLike[A] { self =>
890890

891891
def iterator: Iterator[A] = new Iterator[A] {
892892
private var current = 0
893-
def hasNext = current < length
893+
def hasNext = current < self.length
894894
def next: A = {
895895
val r = apply(current)
896896
current += 1
@@ -908,7 +908,7 @@ object CollectionStrawMan6 extends LowPriority {
908908

909909
class Take[A](underlying: IndexedView[A], n: Int)
910910
extends View.Take(underlying, n) with IndexedView[A] {
911-
override def iterator = super.iterator
911+
override def iterator = super.iterator // needed to avoid "conflicting overrides" error
912912
def length = underlying.length min normN
913913
def apply(i: Int) = underlying.apply(i)
914914
}

tests/run/colltest6/CollectionStrawMan6_1.scala

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
package colltest6
21
package strawman.collections
32

43
import Predef.{augmentString => _, wrapString => _, _}
@@ -887,11 +886,11 @@ object CollectionStrawMan6 extends LowPriority {
887886
}
888887

889888
/** View defined in terms of indexing a range */
890-
trait IndexedView[+A] extends View[A] with ArrayLike[A] {
889+
trait IndexedView[+A] extends View[A] with ArrayLike[A] { self =>
891890

892891
def iterator: Iterator[A] = new Iterator[A] {
893892
private var current = 0
894-
def hasNext = current < length
893+
def hasNext = current < self.length
895894
def next: A = {
896895
val r = apply(current)
897896
current += 1
@@ -909,7 +908,7 @@ object CollectionStrawMan6 extends LowPriority {
909908

910909
class Take[A](underlying: IndexedView[A], n: Int)
911910
extends View.Take(underlying, n) with IndexedView[A] {
912-
override def iterator = super.iterator
911+
override def iterator = super.iterator // needed to avoid "conflicting overrides" error
913912
def length = underlying.length min normN
914913
def apply(i: Int) = underlying.apply(i)
915914
}

0 commit comments

Comments
 (0)