@@ -6,46 +6,16 @@ import scala.collection.Seq
6
6
7
7
/** unimplemented implicit for TypeTag */
8
8
object DottyPredef {
9
+
9
10
/** A fall-back implicit to compare values of any types.
10
11
* The compiler will restrict implicit instances of `eqAny`. An instance
11
12
* `eqAny[T, U]` is _valid_ if `T <: U` or `U <: T` or both `T` and `U` are
12
13
* Eq-free. A type `S` is Eq-free if there is no implicit instance of `Eq[S, S]`.
13
14
* An implicit search will fail instead of returning an invalid `eqAny` instance.
15
+ * The method is here instead of the `Eq` object so that it can be disabled.
14
16
*/
15
17
implicit def eqAny [L , R ]: Eq [L , R ] = Eq
16
18
17
- implicit def eqNumber : Eq [Number , Number ] = Eq
18
- implicit def eqString : Eq [String , String ] = Eq
19
- implicit def eqBoolean : Eq [Boolean , Boolean ] = Eq
20
- implicit def eqByte : Eq [Byte , Byte ] = Eq
21
- implicit def eqShort : Eq [Short , Short ] = Eq
22
- implicit def eqChar : Eq [Char , Char ] = Eq
23
- implicit def eqInt : Eq [Int , Int ] = Eq
24
- implicit def eqLong : Eq [Long , Long ] = Eq
25
- implicit def eqFloat : Eq [Float , Float ] = Eq
26
- implicit def eqDouble : Eq [Double , Double ] = Eq
27
- implicit def eqUnit : Eq [Unit , Unit ] = Eq
28
-
29
- // true asymmetry, modeling the (somewhat problematic) nature of equals on Proxies
30
- implicit def eqProxy : Eq [Proxy , Any ] = Eq
31
-
32
- implicit def eqSeq [T , U ](implicit eq : Eq [T , U ]): Eq [Seq [T ], Seq [U ]] = Eq
33
-
34
- implicit def eqByteNum : Eq [Byte , Number ] = Eq
35
- implicit def eqNumByte : Eq [Number , Byte ] = Eq
36
- implicit def eqCharNum : Eq [Char , Number ] = Eq
37
- implicit def eqNumChar : Eq [Number , Char ] = Eq
38
- implicit def eqShortNum : Eq [Short , Number ] = Eq
39
- implicit def eqNumShort : Eq [Number , Short ] = Eq
40
- implicit def eqIntNum : Eq [Int , Number ] = Eq
41
- implicit def eqNumInt : Eq [Number , Int ] = Eq
42
- implicit def eqLongNum : Eq [Long , Number ] = Eq
43
- implicit def eqNumLong : Eq [Number , Long ] = Eq
44
- implicit def eqFloatNum : Eq [Float , Number ] = Eq
45
- implicit def eqNumFloat : Eq [Number , Float ] = Eq
46
- implicit def eqDoubleNum : Eq [Double , Number ] = Eq
47
- implicit def eqNumDouble : Eq [Number , Double ] = Eq
48
-
49
19
/** A class for implicit values that can serve as implicit conversions
50
20
* The implicit resolution algorithm will act as if there existed
51
21
* the additional implicit definition:
0 commit comments