blob: 671096293432d53ec5aa7c0b8689770dcdb6d0da (
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
trait C {}
trait D {}
trait E {}
object test {
def c: C = c;
def d: D = d;
def e: E = e;
}
import test._;
trait S extends o.I {
type Y = D;
def bar: E = foo(c,d);
}
abstract class O() {
type X;
abstract trait I {
type Y;
def foo(x: X, y: Y): E = e;
}
val i:I { type Y = E } = null;
val j:I { type Y = X } = null;
}
object o extends O() {
type X = C;
def main = {
val s: S = null;
import s._;
foo(c,d);
o.i.foo(c,e);
o.j.foo(c,c);
bar
}
}
class Main() {
val s: S = null;
import s._;
foo(c,d);
o.i.foo(c,e);
o.j.foo(c,c);
bar;
}
|