blob: d63923b5e627cc6c052ed166da18c4839660eb6c (
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
|
import scala._;
package scalac.util {
trait A {
type X1;
type X2;
val x1: X1;
val x2: X2;
}
trait B extends A {
type Y;
val y1, y2: Y;
type X1 = Y;
type X2 = Y;
val x1 = y1;
val x2 = y2;
def f(x: Y, xs: B): Unit = {}
def g() = f(y1, this);
}
object test {
val b: B { type Y = Int } = new B {
type Y = Int;
val y1, y2 = 1;
}
val a: A { type X1 = Int; type X2 = Int } = b;
val a1 = new A {
type X1 = Int;
type X2 = String;
val x1 = 1;
val x2 = "hello"
}
val b1 = new B {
type Y = Any;
val y1 = 1;
val y2 = "hello";
}
}
}
|