by shigemk2

当面は技術的なことしか書かない

patmatでunreachable codeなやつ

Gitterでやりとりがあったので。こういうコードです。

sealed abstract class E
object E {
  trait L extends E
  case object SNil extends L
  case class Cons(car: E, cdr: E) extends L

  def foo(e: L): Int = e match {
    case SNil => 1
    case Cons(_, SNil) => 2 // unreachable code
    case Cons(_, _) => 2
  }
}

2.12.0-M3だと出ない警告なので、ちょっと調べてます。