Skip to content

Commit 49b6967

Browse files
committed
ListBuffer Predecessor
1 parent e361894 commit 49b6967

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

library/src/scala/collection/mutable/ListBuffer.scala

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ class ListBuffer[A]
5151
private[this] var aliased = false
5252
private[this] var len = 0
5353

54-
private type Predecessor[A0] = ::[A0] /*| Null*/
54+
private type Predecessor = ::[A] /*| Null*/
5555

5656
def iterator: Iterator[A] = new MutationTracker.CheckedIterator(first.iterator, mutationCount)
5757

@@ -187,7 +187,7 @@ class ListBuffer[A]
187187
}
188188

189189
// returns the `::` at `i - 1` (such that its `next` at position `i` can be mutated), or `null` if `i == 0`.
190-
private def locate(i: Int): Predecessor[A] =
190+
private def locate(i: Int): Predecessor =
191191
if (i == 0) null
192192
else if (i == len) last0
193193
else {
@@ -197,10 +197,10 @@ class ListBuffer[A]
197197
p = p.tail
198198
j -= 1
199199
}
200-
p.asInstanceOf[Predecessor[A]]
200+
p.asInstanceOf[Predecessor]
201201
}
202202

203-
private def getNext(p: Predecessor[A]): List[A] =
203+
private def getNext(p: Predecessor): List[A] =
204204
if (p == null) first else p.next
205205

206206
def update(idx: Int, elem: A): Unit = {
@@ -241,7 +241,7 @@ class ListBuffer[A]
241241
}
242242

243243
// `fresh` must be a `ListBuffer` that only we have access to
244-
private def insertAfter(prev: Predecessor[A], fresh: ListBuffer[A]): Unit = {
244+
private def insertAfter(prev: Predecessor, fresh: ListBuffer[A]): Unit = {
245245
if (!fresh.isEmpty) {
246246
val follow = getNext(prev)
247247
if (prev eq null) first = fresh.first else prev.next = fresh.first
@@ -289,7 +289,7 @@ class ListBuffer[A]
289289
throw new IllegalArgumentException("removing negative number of elements: " + count)
290290
}
291291

292-
private def removeAfter(prev: Predecessor[A], n: Int) = {
292+
private def removeAfter(prev: Predecessor, n: Int) = {
293293
@tailrec def ahead(p: List[A], n: Int): List[A] =
294294
if (n == 0) p else ahead(p.tail, n - 1)
295295
val nx = ahead(getNext(prev), n)
@@ -346,7 +346,7 @@ class ListBuffer[A]
346346
*/
347347
def filterInPlace(p: A => Boolean): this.type = {
348348
ensureUnaliased()
349-
var prev: Predecessor[A] = null
349+
var prev: Predecessor = null
350350
var cur: List[A] = first
351351
while (!cur.isEmpty) {
352352
val follow = cur.tail
@@ -355,7 +355,7 @@ class ListBuffer[A]
355355
else prev.next = follow
356356
len -= 1
357357
} else {
358-
prev = cur.asInstanceOf[Predecessor[A]]
358+
prev = cur.asInstanceOf[Predecessor]
359359
}
360360
cur = follow
361361
}

0 commit comments

Comments
 (0)