aboutsummaryrefslogtreecommitdiff
path: root/tests/run/generic/SearchResult.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run/generic/SearchResult.scala')
-rw-r--r--tests/run/generic/SearchResult.scala17
1 files changed, 11 insertions, 6 deletions
diff --git a/tests/run/generic/SearchResult.scala b/tests/run/generic/SearchResult.scala
index 1c86d1b4f..d4380a072 100644
--- a/tests/run/generic/SearchResult.scala
+++ b/tests/run/generic/SearchResult.scala
@@ -11,12 +11,17 @@ import Shapes._
*/
sealed trait SearchResult extends Enum
-object SearchResult extends EnumValues[SearchResult](3) {
+object SearchResult extends {
+
+ private val $values = new runtime.EnumValues[SearchResult]
+ def valueOf = $values.fromInt
+ def withName = $values.fromName
+ def values = $values.values
private def $new(tag: Int, name: String) = new SearchResult {
def enumTag = tag
override def toString = name
- registerEnumValue(this)
+ $values.register(this)
}
abstract case class Success(result: Color) extends SearchResult {
@@ -31,8 +36,8 @@ object SearchResult extends EnumValues[SearchResult](3) {
}
}
- val Diverging = $new(1, "Diverging")
- val NoMatch = $new(2, "NoMatch")
+ val Diverging: SearchResult = $new(1, "Diverging")
+ val NoMatch: SearchResult = $new(2, "NoMatch")
abstract case class Ambiguous(alt1: SearchResult, alt2: SearchResult) extends SearchResult {
def enumTag = 3
@@ -58,7 +63,7 @@ object SearchResult extends EnumValues[SearchResult](3) {
def fromShape(x: Sum[Success, Sum[Ambiguous, EnumValue[SearchResult]]]): SearchResult = x match {
case Fst(s) => s
case Snd(Fst(a)) => a
- case Snd(Snd(ev)) => value(ev.tag)
+ case Snd(Snd(ev)) => valueOf(ev.tag)
}
}
-} \ No newline at end of file
+}