diff options
author | Martin Odersky <odersky@gmail.com> | 2017-02-08 21:17:36 +1100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2017-04-04 13:28:44 +0200 |
commit | 69fd9dc80e78feb35ee601a9aaac813eef331e6a (patch) | |
tree | 84245f5e76f173a782b0f56ca0af5cf73ce2eec8 /tests/run/generic/SearchResult.scala | |
parent | 5c53f532b96f256f0b84b4408e2e59836c13212a (diff) | |
download | dotty-69fd9dc80e78feb35ee601a9aaac813eef331e6a.tar.gz dotty-69fd9dc80e78feb35ee601a9aaac813eef331e6a.tar.bz2 dotty-69fd9dc80e78feb35ee601a9aaac813eef331e6a.zip |
Adapt generic tests to model modified enum values scheme
Diffstat (limited to 'tests/run/generic/SearchResult.scala')
-rw-r--r-- | tests/run/generic/SearchResult.scala | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/tests/run/generic/SearchResult.scala b/tests/run/generic/SearchResult.scala index 1c86d1b4f..9a747fc48 100644 --- a/tests/run/generic/SearchResult.scala +++ b/tests/run/generic/SearchResult.scala @@ -11,12 +11,16 @@ import Shapes._ */ sealed trait SearchResult extends Enum -object SearchResult extends EnumValues[SearchResult](3) { +object SearchResult extends { + + private val $values = new EnumValues[SearchResult] + def valueOf: Int => SearchResult = $values + 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 +35,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 +62,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 +} |