diff options
-rw-r--r-- | src/library/scala/collection/mutable/LinkedListLike.scala | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/library/scala/collection/mutable/LinkedListLike.scala b/src/library/scala/collection/mutable/LinkedListLike.scala index 6fb516d566..d7ad8cf367 100644 --- a/src/library/scala/collection/mutable/LinkedListLike.scala +++ b/src/library/scala/collection/mutable/LinkedListLike.scala @@ -37,7 +37,9 @@ trait LinkedListLike[A, This <: Seq[A] with LinkedListLike[A, This]] extends Seq override def isEmpty = next eq this - override def length: Int = if (isEmpty) 0 else next.length + 1 + override def length: Int = length0(repr, 0) + + @tailrec private def length0(elem: This, acc: Int): Int = if (elem.isEmpty) acc else length0(elem.next, acc + 1) override def head: A = elem |