aboutsummaryrefslogtreecommitdiff
path: root/tests/run/generic/SearchResult.scala
diff options
context:
space:
mode:
authorodersky <odersky@gmail.com>2017-04-06 13:12:05 +0200
committerGitHub <noreply@github.com>2017-04-06 13:12:05 +0200
commit62c2a1e2d6265cf7f096e4c4e51e4e883bce1514 (patch)
tree5cd2f9018b4a5ed5fcd1ebe6a6aed392d3fd00b4 /tests/run/generic/SearchResult.scala
parent2556c83a04af1baf9dd69f6139e9ea61d39e7c6a (diff)
parent30d8d878118c537ff82c88ef7ade8780b390bfae (diff)
downloaddotty-62c2a1e2d6265cf7f096e4c4e51e4e883bce1514.tar.gz
dotty-62c2a1e2d6265cf7f096e4c4e51e4e883bce1514.tar.bz2
dotty-62c2a1e2d6265cf7f096e4c4e51e4e883bce1514.zip
Merge pull request #1958 from dotty-staging/add-enum
Add "enum" construct
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
+}