blob: 82c176461c24050e7288b6150b6e6eb8f8a0bb18 (
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
|
object State {
var s: Int = 0
}
trait T(x: Int, val y: Int) {
def f = x
}
trait U extends T {
State.s += 1
override def f = super.f + y
}
trait U2(a: Any) extends T {
def d = a // okay
val v = a // okay
a // used to crash
}
import State._
class C(x: Int) extends U with T(x, x * x + s)
class C2(x: Int) extends T(x, x * x + s) with U
class D extends C(10) with T
class D2 extends C2(10) with T
object Test {
def main(args: Array[String]): Unit = {
assert(new D().f == 110)
assert(new D2().f == 111)
}
}
|