@@ -73,55 +73,55 @@ object Pair {
73
73
74
74
// A typeclass
75
75
trait Eq [T ] {
76
- def equals (x : T , y : T ): Boolean
76
+ def eql (x : T , y : T ): Boolean
77
77
}
78
78
79
79
object Eq {
80
80
import scala .typelevel ._
81
81
import Deriving ._
82
82
83
- inline def tryEquals [T ](x : T , y : T ) = implicit match {
84
- case eq : Eq [T ] => eq.equals (x, y)
83
+ inline def tryEql [T ](x : T , y : T ) = implicit match {
84
+ case eq : Eq [T ] => eq.eql (x, y)
85
85
}
86
86
87
- inline def equalsElems [Elems <: Tuple ](xs : Array [Object ], ys : Array [Object ], n : Int ): Boolean =
87
+ inline def eqlElems [Elems <: Tuple ](xs : Array [Object ], ys : Array [Object ], n : Int ): Boolean =
88
88
inline erasedValue[Elems ] match {
89
89
case _ : (elem *: elems1) =>
90
- tryEquals [elem](xs(n).asInstanceOf , ys(n).asInstanceOf ) &&
91
- equalsElems [elems1](xs, ys, n + 1 )
90
+ tryEql [elem](xs(n).asInstanceOf , ys(n).asInstanceOf ) &&
91
+ eqlElems [elems1](xs, ys, n + 1 )
92
92
case _ : Unit =>
93
93
true
94
94
}
95
95
96
- inline def equalsCase [T , Elems <: Tuple ](mapper : GenericMapper [T ], x : T , y : T ) =
97
- equalsElems [Elems ](mapper.toGenericCase(x).elems, mapper.toGenericCase(y).elems, 0 )
96
+ inline def eqlCase [T , Elems <: Tuple ](mapper : GenericMapper [T ], x : T , y : T ) =
97
+ eqlElems [Elems ](mapper.toGenericCase(x).elems, mapper.toGenericCase(y).elems, 0 )
98
98
99
- inline def equalsCases [T , Alts <: Tuple ](mapper : GenericMapper [T ], x : T , y : T ): Boolean =
99
+ inline def eqlCases [T , Alts <: Tuple ](mapper : GenericMapper [T ], x : T , y : T ): Boolean =
100
100
inline erasedValue[Alts ] match {
101
101
case _ : (Shape .Case [alt, elems] *: alts1) =>
102
102
x match {
103
103
case x : `alt` =>
104
104
y match {
105
- case y : `alt` => equalsCase [T , elems](mapper, x, y)
105
+ case y : `alt` => eqlCase [T , elems](mapper, x, y)
106
106
case _ => false
107
107
}
108
- case _ => equalsCases [T , alts1](mapper, x, y)
108
+ case _ => eqlCases [T , alts1](mapper, x, y)
109
109
}
110
110
case _ : Unit =>
111
111
false
112
112
}
113
113
114
- inline def derived [T , S <: Shape ](implicit ev : HasShape [T , S ]): Eq [T ] = new {
115
- def equals (x : T , y : T ): Boolean = inline erasedValue[S ] match {
114
+ inline def derived [T , S <: Shape ](implicit ev : HasShape [T , S ]) < : Eq [T ] = new {
115
+ def eql (x : T , y : T ): Boolean = inline erasedValue[S ] match {
116
116
case _ : Shape .Cases [alts] =>
117
- equalsCases [T , alts](ev, x, y)
118
- case _ : Shape .Case [alt , elems] =>
119
- equalsCase [T , elems](ev, x, y)
117
+ eqlCases [T , alts](ev, x, y)
118
+ case _ : Shape .Case [_ , elems] =>
119
+ eqlCase [T , elems](ev, x, y)
120
120
}
121
121
}
122
122
123
123
implicit object IntEq extends Eq [Int ] {
124
- def equals (x : Int , y : Int ) = x == y
124
+ def eql (x : Int , y : Int ) = x == y
125
125
}
126
126
}
127
127
@@ -185,7 +185,7 @@ object Pickler {
185
185
186
186
inline def unpickleCases [T , Alts <: Tuple ](mapper : GenericMapper [T ], buf : mutable.ListBuffer [Int ], ordinal : Int , n : Int ): T =
187
187
inline erasedValue[Alts ] match {
188
- case _ : (Shape .Case [alt , elems] *: alts1) =>
188
+ case _ : (Shape .Case [_ , elems] *: alts1) =>
189
189
if (n == ordinal) unpickleCase[T , elems](mapper, buf, ordinal)
190
190
else unpickleCases[T , alts1](mapper, buf, ordinal, n + 1 )
191
191
case _ =>
@@ -196,13 +196,13 @@ object Pickler {
196
196
def pickle (buf : mutable.ListBuffer [Int ], x : T ): Unit = inline erasedValue[S ] match {
197
197
case _ : Shape .Cases [alts] =>
198
198
pickleCases[T , alts](ev, buf, x, 0 )
199
- case _ : Shape .Case [alt , elems] =>
199
+ case _ : Shape .Case [_ , elems] =>
200
200
pickleCase[T , elems](ev, buf, x)
201
201
}
202
202
def unpickle (buf : mutable.ListBuffer [Int ]): T = inline erasedValue[S ] match {
203
203
case _ : Shape .Cases [alts] =>
204
204
unpickleCases[T , alts](ev, buf, nextInt(buf), 0 )
205
- case _ : Shape .Case [alt , elems] =>
205
+ case _ : Shape .Case [_ , elems] =>
206
206
unpickleCase[T , elems](ev, buf, 0 )
207
207
}
208
208
}
@@ -219,18 +219,18 @@ object Test extends App {
219
219
val eq = implicitly[Eq [Lst [Int ]]]
220
220
val xs = Lst .Cons (11 , Lst .Cons (22 , Lst .Cons (33 , Lst .Nil )))
221
221
val ys = Lst .Cons (11 , Lst .Cons (22 , Lst .Nil ))
222
- assert(eq.equals (xs, xs))
223
- assert(! eq.equals (xs, ys))
224
- assert(! eq.equals (ys, xs))
225
- assert(eq.equals (ys, ys))
222
+ assert(eq.eql (xs, xs))
223
+ assert(! eq.eql (xs, ys))
224
+ assert(! eq.eql (ys, xs))
225
+ assert(eq.eql (ys, ys))
226
226
227
227
val eq2 = implicitly[Eq [Lst [Lst [Int ]]]]
228
228
val xss = Lst .Cons (xs, Lst .Cons (ys, Lst .Nil ))
229
229
val yss = Lst .Cons (xs, Lst .Nil )
230
- assert(eq2.equals (xss, xss))
231
- assert(! eq2.equals (xss, yss))
232
- assert(! eq2.equals (yss, xss))
233
- assert(eq2.equals (yss, yss))
230
+ assert(eq2.eql (xss, xss))
231
+ assert(! eq2.eql (xss, yss))
232
+ assert(! eq2.eql (yss, xss))
233
+ assert(eq2.eql (yss, yss))
234
234
235
235
val buf = new mutable.ListBuffer [Int ]
236
236
val pkl = implicitly[Pickler [Lst [Int ]]]
@@ -239,28 +239,28 @@ object Test extends App {
239
239
val xs1 = pkl.unpickle(buf)
240
240
println(xs1)
241
241
assert(xs1 == xs)
242
- assert(eq.equals (xs1, xs))
242
+ assert(eq.eql (xs1, xs))
243
243
244
244
val pkl2 = implicitly[Pickler [Lst [Lst [Int ]]]]
245
245
pkl2.pickle(buf, xss)
246
246
println(buf)
247
247
val xss1 = pkl2.unpickle(buf)
248
248
println(xss1)
249
249
assert(xss == xss1)
250
- assert(eq2.equals (xss, xss1))
250
+ assert(eq2.eql (xss, xss1))
251
251
252
252
val p1 = Pair (1 , 2 )
253
253
val p2 = Pair (1 , 2 )
254
254
val p3 = Pair (2 , 1 )
255
255
val eqp = implicitly[Eq [Pair [Int ]]]
256
- assert(eqp.equals (p1, p2))
257
- assert(! eqp.equals (p2, p3))
256
+ assert(eqp.eql (p1, p2))
257
+ assert(! eqp.eql (p2, p3))
258
258
259
259
val pklp = implicitly[Pickler [Pair [Int ]]]
260
260
pklp.pickle(buf, p1)
261
261
println(buf)
262
262
val p1a = pklp.unpickle(buf)
263
263
println(p1a)
264
264
assert(p1 == p1a)
265
- assert(eqp.equals (p1, p1a))
265
+ assert(eqp.eql (p1, p1a))
266
266
}
0 commit comments