blob: 09463ce697a6ef193670e62636a0df5c13e7e8ce (
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
|
trait T {
def crashy(ma: Any) {
// okay
val f1 = (u: Unit) => ma
foo(f1)()
foo((u: Unit) => ma)
foo(0, (u: Any) => ma) apply ()
// crash due to side effects on the owner of the symbol in the
// qualifier or arguments of the application during an abandoned
// names/defaults transform. The code type checks because of
// auto-tupling which promotes an empty parameter list to `(): Unit`
foo((u: Any) => ma)()
{{(u: Any) => ma}; this}.foo(0)()
foo({def foo = ma; 0})()
{def foo = ma; this}.foo(0)()
}
def foo(f: Any): Any => Any
}
|