aboutsummaryrefslogblamecommitdiff
path: root/tests/run/traitParams.scala
blob: 82c176461c24050e7288b6150b6e6eb8f8a0bb18 (plain) (tree)
1
2
3
4
5
6
7
8
9



                




                             
              

                              





                            


                                               
 

                              

             
                                         
                            

                             

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