File tree Expand file tree Collapse file tree 3 files changed +7
-9
lines changed
Expand file tree Collapse file tree 3 files changed +7
-9
lines changed Original file line number Diff line number Diff line change 11import scala .reflect .ClassTag
2- import scala .tasty .FlagSet
32
43object Test {
54 def main (args : Array [String ]): Unit = {
Original file line number Diff line number Diff line change 11CaseClassImplementation
2- underlying rep: Z()
2+ underlying rep: Z
33test1 OK
44test2 OK
55
6- underlying rep: S(S(S(Z() )))
6+ underlying rep: S(S(S(Z)))
77test3 OK
8- Succ(S(S(Z() ))) = 3
8+ Succ(S(S(Z))) = 3
99test4 OK
10- Succ(S(S(Z() ))) = 3
10+ Succ(S(S(Z))) = 3
1111
1212IntImplementation
1313underlying rep: 0
Original file line number Diff line number Diff line change 11import scala .reflect .ClassTag
2- import scala .tasty .FlagSet
32
43object Test {
54 def main (args : Array [String ]): Unit = {
@@ -119,7 +118,7 @@ abstract class Numbers {
119118object CaseClassImplementation extends Numbers {
120119
121120 sealed trait N
122- final case class Z () extends N
121+ final object Z extends N { override def toString : String = " Z " }
123122 final case class S (n : N ) extends N
124123
125124 // === Nat ==========================================
@@ -138,12 +137,12 @@ object CaseClassImplementation extends Numbers {
138137
139138 // --- Zero ----------------------------------------
140139
141- type Zero = Z
140+ type Zero = Z . type
142141
143142 def zeroClassTag : ClassTag [Zero ] = implicitly
144143
145144 val Zero : ZeroExtractor = new ZeroExtractor {
146- def apply (): Zero = new Z ()
145+ def apply (): Zero = Z
147146 def unapply (zero : Zero ): Boolean = true // checked by class tag before calling the unapply
148147 }
149148
You can’t perform that action at this time.
0 commit comments