blob: eb25afd66775945b5ce19dd2d9594dc16c4f452f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
object Test extends Application {
class A
class B extends A
def foo(x: A, y: B) = print(1)
val foo = new {
// def apply(x: B, y: A) = print(3)
def apply = (x: B, z: B) => print(4)
}
foo(new B, new B)
}
// This code prints 1. If we remove comment, then it will print 4.
// Moreover following code prints 3 (which is most strange thing):
object Test2 extends Application {
class A
class B extends A
def foo(x: A, y: B) = print(1)
val foo = new {
def apply(x: B, y: A) = print(3)
def apply = new {
def apply = (x: B, z: B) => print(4)
}
}
foo(new B, new B)
}
|