Skip to content

Commit f0cddee

Browse files
committed
Add clear method to Lst.Buffer
Plus some polishings
1 parent 185d10c commit f0cddee

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

tests/run/lst/Lst.scala

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ import printing.{Printer, Texts}
55
import Texts.Text
66
import collection.mutable.{ListBuffer, StringBuilder}
77

8-
// List Lst
9-
// 0 0 0
10-
// 1 1 0
11-
// 2 2 1
12-
// 3 3 1
13-
// 4 4 1
8+
9+
/** A lightweight class for lists, optimized for short and medium lengths.
10+
* A list is represented at runtime as
11+
*
12+
* If it is empty: the value `Lst.Empty`
13+
* If it contains one element: the element itself
14+
* If it contains more elements: an Array[AnyRef] containing the elements
15+
*/
1416
class Lst[+T <: AnyRef](val elems: AnyRef) extends AnyVal {
1517
import Lst._
1618

@@ -418,8 +420,7 @@ object Lst {
418420
new Lst(elems)
419421
}
420422

421-
val eqFn = (x: AnyRef, y: AnyRef) => x `eq` y
422-
val equalsFn = (x: AnyRef, y: AnyRef) => x `equals` y
423+
private val eqFn = (x: AnyRef, y: AnyRef) => x `eq` y
423424

424425
class Buffer[T <: AnyRef] {
425426
private var len = 0
@@ -469,6 +470,9 @@ object Lst {
469470
if (len == 0) Empty
470471
else if (len == 1) new Lst(elem)
471472
else _fromArray(elems, 0, len)
473+
474+
def clear() =
475+
len = 0
472476
}
473477

474478
private def _fromArray[T <: AnyRef](elems: Arr, start: Int, end: Int): Lst[T] = {

0 commit comments

Comments
 (0)