@@ -42,20 +42,16 @@ trait LowPriorityEquiv {
42
42
}
43
43
44
44
object Equiv extends LowPriorityEquiv {
45
- def reference [T <: AnyRef ]: Equiv [T ] = new Equiv [T ] {
46
- def equiv (x : T , y : T ) = x eq y
45
+ def reference [T <: AnyRef ]: Equiv [T ] = { _ eq _ }
46
+ def universal [T ]: Equiv [T ] = { _ == _ }
47
+ def fromComparator [T ](cmp : Comparator [T ]): Equiv [T ] = {
48
+ (x, y) => cmp.compare(x, y) == 0
47
49
}
48
- def universal [T ]: Equiv [T ] = new Equiv [T ] {
49
- def equiv (x : T , y : T ) = x == y
50
- }
51
- def fromComparator [T ](cmp : Comparator [T ]): Equiv [T ] = new Equiv [T ] {
52
- def equiv (x : T , y : T ) = cmp.compare(x, y) == 0
53
- }
54
- def fromFunction [T ](cmp : (T , T ) => Boolean ): Equiv [T ] = new Equiv [T ] {
55
- def equiv (x : T , y : T ) = cmp(x, y)
50
+ def fromFunction [T ](cmp : (T , T ) => Boolean ): Equiv [T ] = {
51
+ (x, y) => cmp(x, y)
56
52
}
57
53
def by [T , S : Equiv ](f : T => S ): Equiv [T ] =
58
- fromFunction ((x, y) => implicitly[Equiv [S ]].equiv(f(x), f(y)))
54
+ ((x, y) => implicitly[Equiv [S ]].equiv(f(x), f(y)))
59
55
60
56
@ inline def apply [T : Equiv ]: Equiv [T ] = implicitly[Equiv [T ]]
61
57
}
0 commit comments