Closed
Description
This doesn't compile, as expected:
case class One[T](fst: T)
object Test {
def good[T](e: One[T]) = e match {
case One(_) =>
val t: T = e.fst
val nok: Nothing = t // error, as expected
}
}
But this does:
case class One[T](fst: T)
object Test {
def bad[T](e: One[T]) = e match {
case foo: One[a] =>
val t: T = e.fst
val nok: Nothing = t // should not compile
}
}