File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Original file line number Diff line number Diff line change
1
+ class Outer {
2
+
3
+ case class Inner ()
4
+
5
+ val inner : Inner = new Inner
6
+
7
+ def checkInstance (o : Outer ) =
8
+ o.inner.isInstanceOf [this .Inner ]
9
+
10
+ def checkPattern1 (i : Any ) =
11
+ i match {
12
+ case _ : Inner => true
13
+ case _ => false
14
+ }
15
+
16
+ def checkPattern2 (i : Any ) =
17
+ i match {
18
+ case Inner () => true
19
+ case _ => false
20
+ }
21
+
22
+ def checkEquals (o : Outer ) =
23
+ o.inner == inner
24
+ }
25
+
26
+ object Test {
27
+
28
+ def main (args : Array [String ]) = {
29
+ val o1 = new Outer
30
+ val o2 = new Outer
31
+ assert(o1.checkInstance(o2)) // ok
32
+ assert(! o1.checkPattern1(o2.inner)) // ok under scalac, fails for dotc-compiled code
33
+ assert(! o1.checkPattern2(o2.inner)) // ok under scalac, fails for dotc-compiled code
34
+ assert(! o1.checkEquals(o2)) // ok under scalac, fails for dotc-compiled code
35
+ }
36
+ }
37
+
You can’t perform that action at this time.
0 commit comments