Fix List.takeLast for lists without RandomAccess
This commit is contained in:
@@ -745,7 +745,7 @@ public fun <T> List<T>.takeLast(n: Int): List<T> {
|
||||
for (index in size - n .. size - 1)
|
||||
list.add(this[index])
|
||||
} else {
|
||||
for (item in listIterator(n))
|
||||
for (item in listIterator(size - n))
|
||||
list.add(item)
|
||||
}
|
||||
return list
|
||||
|
||||
@@ -579,6 +579,10 @@ class CollectionTest {
|
||||
assertEquals(coll, coll.takeLast(coll.size + 1))
|
||||
|
||||
assertFails { coll.takeLast(-1) }
|
||||
|
||||
val collWithoutRandomAccess = object : List<String> by coll {}
|
||||
assertEquals(listOf("abc"), collWithoutRandomAccess.takeLast(1))
|
||||
assertEquals(listOf("bar", "abc"), collWithoutRandomAccess.takeLast(2))
|
||||
}
|
||||
|
||||
@Test fun takeLastWhile() {
|
||||
|
||||
Reference in New Issue
Block a user