aboutsummaryrefslogblamecommitdiff
path: root/tests/run/traits-initialization.scala
blob: fdddc8f444681ea2463e447486674cdb67cd9218 (plain) (tree)
1
2
3
4
5
6
7
8
9





              
         
           
          





                   
                   



                            
                              
           
                   



                            






                                     

                                            

                             
                                                                   

           
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'
}