@@ -3,11 +3,12 @@ import Tree._
3
3
import List ._
4
4
import java .io ._
5
5
import Shapes ._
6
+ import SearchResult ._
6
7
7
8
object Test {
8
9
import Serialization ._
9
10
10
- private var lCount, tCount = 0
11
+ private var lCount, tCount, sCount = 0
11
12
12
13
// ------- Code that will eventually be produced by macros -------------
13
14
@@ -29,6 +30,11 @@ object Test {
29
30
implicit lazy val tsInt : Serializable [Tree [Int ]] = TreeSerializable [Int ]
30
31
implicit lazy val tsBoolean : Serializable [Tree [Boolean ]] = TreeSerializable [Boolean ]
31
32
33
+ implicit lazy val SearchResultSerializable : Serializable [SearchResult ] = {
34
+ sCount += 1
35
+ RecSerializable [SearchResult , SearchResult .Shape ]
36
+ }
37
+
32
38
// ------- Test code --------------------------------------------------------
33
39
34
40
/** Serialize data, then deserialize it back and check that it is the same. */
@@ -49,10 +55,18 @@ object Test {
49
55
val data2 =
50
56
If (IsZero (Pred (Succ (Zero ))), Succ (Succ (Zero )), Pred (Pred (Zero )))
51
57
58
+ val data3 = Cons (Color .Red , Cons (Color .Green , Cons (Color .Blue , Nil )))
59
+
60
+ val data4 = Ambiguous (Success (Color .Green ), Diverging )
61
+
52
62
def main (args : Array [String ]) = {
53
63
sds(data1)
54
64
assert(lCount == 1 , lCount)
55
65
sds(data2)
56
66
assert(tCount == 2 , tCount)
67
+ sds(data3)
68
+ assert(lCount == 2 , lCount)
69
+ sds(data4)
70
+ assert(sCount == 1 , sCount)
57
71
}
58
72
}
0 commit comments