summaryrefslogblamecommitdiff
path: root/test/files/neg/t2796.scala
blob: fa2f2358b947095f3be1d4c5b8116c55fbe5040b (plain) (tree)
1
2
3
4
5
6
7
8
9
10









                                            
                                            

           













                                                                                           
trait Base {
  val abstractVal: String
  final val useAbstractVal = abstractVal
}

trait T1 extends {
  val abstractVal = "T1.abstractVal" // warn
} with Base

trait T2 extends {
  type X = Int                       // warn
} with Base

class C1 extends {
  val abstractVal = "C1.abstractVal" // okay
} with Base

object Test {
  def main(args: Array[String]) {
    assert(new C1 ().useAbstractVal == "C1.abstractVal")
    // This currently fails. a more ambitious approach to this ticket would add $earlyinit$
    // to traits and call it from the right places in the right order.
    //
    // For now, we'll just issue a warning.
    assert(new T1 {}.useAbstractVal == "T1.abstractVal")
  }
}