diff options
Diffstat (limited to 'tests/run/generic/Color.scala')
-rw-r--r-- | tests/run/generic/Color.scala | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/tests/run/generic/Color.scala b/tests/run/generic/Color.scala index ed248295d..0a0f3f1e5 100644 --- a/tests/run/generic/Color.scala +++ b/tests/run/generic/Color.scala @@ -10,12 +10,16 @@ import Shapes._ */ sealed trait Color extends Enum -object Color extends EnumValues[Color](3) { +object Color { + + private val $values = new EnumValues[Color] + def valueOf: Int => Color = $values + def values = $values.values private def $new(tag: Int, name: String) = new Color { def enumTag = tag override def toString = name - registerEnumValue(this) + $values.register(this) } val Red: Color = $new(0, "Red") @@ -25,6 +29,6 @@ object Color extends EnumValues[Color](3) { implicit val ColorShape: Color `shaped` EnumValue[Color] = new (Color `shaped` EnumValue[Color]) { def toShape(x: Color) = EnumValue(x.enumTag) - def fromShape(x: EnumValue[Color]) = Color.value(x.tag) + def fromShape(x: EnumValue[Color]) = Color.valueOf(x.tag) } -}
\ No newline at end of file +} |