Skip to content

Commit 2ce9328

Browse files
committed
Add to test case
1 parent 2294e82 commit 2ce9328

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

tests/run/generic/SearchResult.scala

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import Shapes._
1111
*/
1212
sealed trait SearchResult extends Enum
1313

14-
object SearchResult extends EnumValues[SearchResult](2) {
14+
object SearchResult extends EnumValues[SearchResult](3) {
1515

1616
private def $new(tag: Int, name: String) = new SearchResult {
1717
def enumTag = tag
@@ -46,9 +46,10 @@ object SearchResult extends EnumValues[SearchResult](2) {
4646
}
4747
}
4848

49-
implicit def SearchResultShape:
50-
SearchResult `shaped` Sum[Success, Sum[Ambiguous, EnumValue[SearchResult]]] =
51-
new (SearchResult `shaped` Sum[Success, Sum[Ambiguous, EnumValue[SearchResult]]]) {
49+
type Shape = Sum[Success, Sum[Ambiguous, EnumValue[SearchResult]]]
50+
51+
implicit def SearchResultShape: SearchResult `unfolds` Shape =
52+
new (SearchResult `shaped` Shape) {
5253
def toShape(x: SearchResult) = x match {
5354
case x: Success => Fst(x)
5455
case x: Ambiguous => Snd(Fst(x))

tests/run/generic/Test.scala

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ import Tree._
33
import List._
44
import java.io._
55
import Shapes._
6+
import SearchResult._
67

78
object Test {
89
import Serialization._
910

10-
private var lCount, tCount = 0
11+
private var lCount, tCount, sCount = 0
1112

1213
// ------- Code that will eventually be produced by macros -------------
1314

@@ -29,6 +30,11 @@ object Test {
2930
implicit lazy val tsInt: Serializable[Tree[Int]] = TreeSerializable[Int]
3031
implicit lazy val tsBoolean: Serializable[Tree[Boolean]] = TreeSerializable[Boolean]
3132

33+
implicit lazy val SearchResultSerializable: Serializable[SearchResult] = {
34+
sCount += 1
35+
RecSerializable[SearchResult, SearchResult.Shape]
36+
}
37+
3238
// ------- Test code --------------------------------------------------------
3339

3440
/** Serialize data, then deserialize it back and check that it is the same. */
@@ -49,10 +55,18 @@ object Test {
4955
val data2 =
5056
If(IsZero(Pred(Succ(Zero))), Succ(Succ(Zero)), Pred(Pred(Zero)))
5157

58+
val data3 = Cons(Color.Red, Cons(Color.Green, Cons(Color.Blue, Nil)))
59+
60+
val data4 = Ambiguous(Success(Color.Green), Diverging)
61+
5262
def main(args: Array[String]) = {
5363
sds(data1)
5464
assert(lCount == 1, lCount)
5565
sds(data2)
5666
assert(tCount == 2, tCount)
67+
sds(data3)
68+
assert(lCount == 2, lCount)
69+
sds(data4)
70+
assert(sCount == 1, sCount)
5771
}
5872
}

0 commit comments

Comments
 (0)