aboutsummaryrefslogtreecommitdiff
path: root/tests/run/generic/SearchResult.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-02-08 21:17:36 +1100
committerMartin Odersky <odersky@gmail.com>2017-04-04 13:28:44 +0200
commit69fd9dc80e78feb35ee601a9aaac813eef331e6a (patch)
tree84245f5e76f173a782b0f56ca0af5cf73ce2eec8 /tests/run/generic/SearchResult.scala
parent5c53f532b96f256f0b84b4408e2e59836c13212a (diff)
downloaddotty-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.scala16
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
+}