aboutsummaryrefslogtreecommitdiff
path: root/tests/run/traits-initialization.scala
blob: fdddc8f444681ea2463e447486674cdb67cd9218 (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
object store {
  var str = ""
}

import store._

trait A {
 str += "a"
 val i = 2
 val s = str += 'A'
 str += '1'
}

trait B extends A {
 str += 'b'
 override val i = 3
 override val s = str += 'B'
 str += '2'
}

class D(sup: Unit) extends A {
 str += 'd'
 override val i = 4
 override val s = str += 'D'
 str += '3'
}

class E(sup: Unit) extends A with B {
 str += 'd'
 override val i = 5
 override val s = str += 'E'
 str += '3'
}


object Test extends D({str += "Z"}) with B {
 // should only have 2 fields
 str += 'E'
 def main(args: Array[String]) = assert(str == "ZaA1dD3bB2E4", str)
 str += '4'
}