blob: 6d2e56cf39633f3caa220fc46f85ce8d3977368c (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package scala.runtime
import scala.collection.immutable.Seq
import scala.collection.mutable.ResizableArray
class EnumValues[E <: Enum] extends ResizableArray[E] {
private var valuesCache: List[E] = Nil
def register(v: E) = {
ensureSize(v.enumTag + 1)
size0 = size0 max (v.enumTag + 1)
array(v.enumTag) = v
valuesCache = null
}
def values: Seq[E] = {
if (valuesCache == null) valuesCache = array.filter(_ != null).toList.asInstanceOf[scala.List[E]]
valuesCache
}
}
|