@@ -7,10 +7,43 @@ object Test extends App {
7
7
}
8
8
}
9
9
10
- val c = new C (Array (1 , 2 ,3 ))
10
+ def test1 () = {
11
+ val c = new C (Array (1 , 2 ,3 ))
11
12
12
- assert(c `equals` new C (Array (1 , 2 , 3 )))
13
- assert(c == (new C (Array (1 , 2 , 3 )): Any ))
14
- assert(c == new C (Array (1 , 2 , 3 )))
13
+ assert(c `equals` new C (Array (1 , 2 , 3 )))
14
+ assert(c == (new C (Array (1 , 2 , 3 )): Any ))
15
+ assert(c == new C (Array (1 , 2 , 3 )))
16
+
17
+ assert(new C (Array (1 , 2 , 3 )) == c)
18
+ assert((new C (Array (1 , 2 , 3 )): Any ) == c)
19
+ assert(new C (Array (1 , 2 , 3 )) == c)
20
+ }
21
+
22
+ trait Eql extends Any {
23
+ def deep : Any
24
+ override def equals (that : Any ) = that match {
25
+ case that : D => deep == that.s.deep
26
+ case _ => false
27
+ }
28
+ }
29
+
30
+ class D (val s : Array [Int ]) extends AnyVal with Eql {
31
+ def deep = s.deep
32
+ }
33
+
34
+ def test2 () = {
35
+ val c = new D (Array (1 , 2 ,3 ))
36
+
37
+ assert(c `equals` new D (Array (1 , 2 , 3 )))
38
+ assert(c == (new D (Array (1 , 2 , 3 )): Any ))
39
+ assert(c == new D (Array (1 , 2 , 3 )))
40
+
41
+ assert(new D (Array (1 , 2 , 3 )) == c)
42
+ assert((new D (Array (1 , 2 , 3 )): Any ) == c)
43
+ assert(new D (Array (1 , 2 , 3 )) == c)
44
+ }
45
+
46
+ test1()
47
+ test2()
15
48
16
49
}
0 commit comments