aboutsummaryrefslogblamecommitdiff
path: root/tests/patmat/t9672.scala
blob: fe068f3d5e78565b6cfe54b9cf3047f31a901cd6 (plain) (tree)



























                                                                  
trait Hierarchy {
  sealed trait Expr
}
trait If {
  this: Hierarchy =>
  case class If(cond: Expr, yes: Expr, no: Expr) extends Expr
}
trait Word {
  this: Hierarchy =>
  case class Word(name: String) extends Expr
}
trait IntExpr {
  this: Hierarchy =>
  case class IntExpr(value : Int) extends Expr
}

object SimpleExpr extends Hierarchy with If with Word with IntExpr
//object OtherExpr extends Hierarchy with If with IntExpr

object Demo extends App {
  import SimpleExpr._
  def func(expr: Expr) = expr match {
    case If(cond, yes, no) => cond
    case Word(name) => name
    // compiler should emit warning "missing case statement"
    // emits the wrong warning "unreachable code"
  }
}