Allow dropping and taking a lot of elements in very long sequences
For example allow dropping and taking Int.MAX_VALUE elements from a sequence that is a result of another Int.MAX_VALUE dropping.
This commit is contained in:
@@ -421,8 +421,8 @@ internal class DropSequence<T>(
|
||||
require(count >= 0) { "count must be non-negative, but was $count." }
|
||||
}
|
||||
|
||||
override fun drop(n: Int): Sequence<T> = DropSequence(sequence, count + n)
|
||||
override fun take(n: Int): Sequence<T> = SubSequence(sequence, count, count + n)
|
||||
override fun drop(n: Int): Sequence<T> = (count + n).let { n1 -> if (n1 < 0) DropSequence(this, n) else DropSequence(sequence, n1) }
|
||||
override fun take(n: Int): Sequence<T> = (count + n).let { n1 -> if (n1 < 0) TakeSequence(this, n) else SubSequence(sequence, count, n1) }
|
||||
|
||||
override fun iterator(): Iterator<T> = object : Iterator<T> {
|
||||
val iterator = sequence.iterator()
|
||||
|
||||
Reference in New Issue
Block a user