@@ -103,8 +103,8 @@ trait Iterator[+A] extends IterableOnce[A] with IterableOnceOps[A, Iterator, Ite
103
103
* @note Reuse: $consumesAndProducesIterator
104
104
*/
105
105
def buffered : BufferedIterator [A ] = new AbstractIterator [A ] with BufferedIterator [A ] {
106
- private var hd : A = _
107
- private var hdDefined : Boolean = false
106
+ private [ this ] var hd : A = _
107
+ private [ this ] var hdDefined : Boolean = false
108
108
109
109
def head : A = {
110
110
if (! hdDefined) {
@@ -308,13 +308,13 @@ trait Iterator[+A] extends IterableOnce[A] with IterableOnceOps[A, Iterator, Ite
308
308
def scanLeft [B ](z : B )(op : (B , A ) => B ): Iterator [B ] = new AbstractIterator [B ] {
309
309
// We use an intermediate iterator that iterates through the first element `z`
310
310
// and then that will be modified to iterate through the collection
311
- private var current : Iterator [B ] =
311
+ private [ this ] var current : Iterator [B ] =
312
312
new AbstractIterator [B ] {
313
313
def hasNext : Boolean = true
314
314
def next (): B = {
315
315
// Here we change our self-reference to a new iterator that iterates through `self`
316
316
current = new AbstractIterator [B ] {
317
- private var acc = z
317
+ private [ this ] var acc = z
318
318
def next (): B = {
319
319
acc = op(acc, self.next())
320
320
acc
@@ -381,8 +381,8 @@ trait Iterator[+A] extends IterableOnce[A] with IterableOnceOps[A, Iterator, Ite
381
381
def filterNot (p : A => Boolean ): Iterator [A ] = filterImpl(p, isFlipped = true )
382
382
383
383
private [collection] def filterImpl (p : A => Boolean , isFlipped : Boolean ): Iterator [A ] = new AbstractIterator [A ] {
384
- private var hd : A = _
385
- private var hdDefined : Boolean = false
384
+ private [ this ] var hd : A = _
385
+ private [ this ] var hdDefined : Boolean = false
386
386
387
387
def hasNext : Boolean = hdDefined || {
388
388
do {
@@ -457,9 +457,9 @@ trait Iterator[+A] extends IterableOnce[A] with IterableOnceOps[A, Iterator, Ite
457
457
*/
458
458
def distinctBy [B ](f : A => B ): Iterator [A ] = new AbstractIterator [A ] {
459
459
460
- private val traversedValues = mutable.HashSet .empty[B ]
461
- private var nextElementDefined : Boolean = false
462
- private var nextElement : A = _
460
+ private [ this ] val traversedValues = mutable.HashSet .empty[B ]
461
+ private [ this ] var nextElementDefined : Boolean = false
462
+ private [ this ] var nextElement : A = _
463
463
464
464
def hasNext : Boolean = {
465
465
@ tailrec
@@ -496,7 +496,7 @@ trait Iterator[+A] extends IterableOnce[A] with IterableOnceOps[A, Iterator, Ite
496
496
}
497
497
498
498
def flatMap [B ](f : A => IterableOnce [B ]): Iterator [B ] = new AbstractIterator [B ] {
499
- private var myCurrent : Iterator [B ] = Iterator .empty
499
+ private [ this ] var myCurrent : Iterator [B ] = Iterator .empty
500
500
private def current = {
501
501
while (! myCurrent.hasNext && self.hasNext)
502
502
myCurrent = f(self.next()).iterator
@@ -514,7 +514,7 @@ trait Iterator[+A] extends IterableOnce[A] with IterableOnceOps[A, Iterator, Ite
514
514
@ `inline` final def ++ [B >: A ](xs : => IterableOnce [B ]): Iterator [B ] = concat(xs)
515
515
516
516
def take (n : Int ): Iterator [A ] = new AbstractIterator [A ] {
517
- private var i = 0
517
+ private [ this ] var i = 0
518
518
def hasNext = self.hasNext && i < n
519
519
def next () =
520
520
if (hasNext) {
@@ -525,9 +525,9 @@ trait Iterator[+A] extends IterableOnce[A] with IterableOnceOps[A, Iterator, Ite
525
525
}
526
526
527
527
def takeWhile (p : A => Boolean ): Iterator [A ] = new AbstractIterator [A ] {
528
- private var hd : A = _
529
- private var hdDefined : Boolean = false
530
- private var tail : Iterator [A ] = self
528
+ private [ this ] var hd : A = _
529
+ private [ this ] var hdDefined : Boolean = false
530
+ private [ this ] var tail : Iterator [A ] = self
531
531
532
532
def hasNext = hdDefined || tail.hasNext && {
533
533
hd = tail.next()
@@ -779,8 +779,8 @@ trait Iterator[+A] extends IterableOnce[A] with IterableOnceOps[A, Iterator, Ite
779
779
*/
780
780
def patch [B >: A ](from : Int , patchElems : Iterator [B ], replaced : Int ): Iterator [B ] =
781
781
new AbstractIterator [B ] {
782
- private var origElems = self
783
- private var i = if (from > 0 ) from else 0 // Counts down, switch to patch on 0, -1 means use patch first
782
+ private [ this ] var origElems = self
783
+ private [ this ] var i = if (from > 0 ) from else 0 // Counts down, switch to patch on 0, -1 means use patch first
784
784
def hasNext : Boolean = {
785
785
if (i == 0 ) {
786
786
origElems = origElems drop replaced
@@ -841,7 +841,7 @@ object Iterator extends IterableFactory[Iterator] {
841
841
@ `inline` final def empty [T ]: Iterator [T ] = _empty
842
842
843
843
def single [A ](a : A ): Iterator [A ] = new AbstractIterator [A ] {
844
- private var consumed : Boolean = false
844
+ private [ this ] var consumed : Boolean = false
845
845
def hasNext = ! consumed
846
846
def next () = if (consumed) empty.next() else { consumed = true ; a }
847
847
}
@@ -864,7 +864,7 @@ object Iterator extends IterableFactory[Iterator] {
864
864
* @return An iterator that produces the results of `n` evaluations of `elem`.
865
865
*/
866
866
override def fill [A ](len : Int )(elem : => A ): Iterator [A ] = new AbstractIterator [A ] {
867
- private var i = 0
867
+ private [ this ] var i = 0
868
868
def hasNext : Boolean = i < len
869
869
def next (): A =
870
870
if (hasNext) { i += 1 ; elem }
@@ -878,7 +878,7 @@ object Iterator extends IterableFactory[Iterator] {
878
878
* @return An iterator that produces the values `f(0), ..., f(n -1)`.
879
879
*/
880
880
override def tabulate [A ](end : Int )(f : Int => A ): Iterator [A ] = new AbstractIterator [A ] {
881
- private var i = 0
881
+ private [ this ] var i = 0
882
882
def hasNext : Boolean = i < end
883
883
def next (): A =
884
884
if (hasNext) { val result = f(i); i += 1 ; result }
@@ -899,7 +899,7 @@ object Iterator extends IterableFactory[Iterator] {
899
899
* @return the iterator producing the infinite sequence of values `start, start + 1 * step, start + 2 * step, ...`
900
900
*/
901
901
def from (start : Int , step : Int ): Iterator [Int ] = new AbstractIterator [Int ] {
902
- private var i = start
902
+ private [ this ] var i = start
903
903
def hasNext : Boolean = true
904
904
def next (): Int = { val result = i; i += step; result }
905
905
}
@@ -921,8 +921,8 @@ object Iterator extends IterableFactory[Iterator] {
921
921
*/
922
922
def range (start : Int , end : Int , step : Int ): Iterator [Int ] = new AbstractIterator [Int ] {
923
923
if (step == 0 ) throw new IllegalArgumentException (" zero step" )
924
- private var i = start
925
- private var hasOverflowed = false
924
+ private [ this ] var i = start
925
+ private [ this ] var hasOverflowed = false
926
926
def hasNext : Boolean = {
927
927
(step <= 0 || i < end) && (step >= 0 || i > end) && ! hasOverflowed
928
928
}
@@ -1045,8 +1045,8 @@ object Iterator extends IterableFactory[Iterator] {
1045
1045
* Lazily skip to start on first evaluation. Avoids daisy-chained iterators due to slicing.
1046
1046
*/
1047
1047
private [scala] final class SliceIterator [A ](val underlying : Iterator [A ], start : Int , limit : Int ) extends AbstractIterator [A ] {
1048
- private var remaining = limit
1049
- private var dropping = start
1048
+ private [ this ] var remaining = limit
1049
+ private [ this ] var dropping = start
1050
1050
@ inline private def unbounded = remaining < 0
1051
1051
private def skip (): Unit =
1052
1052
while (dropping > 0 ) {
0 commit comments