Scala2.10.0-M4では
object X
def f(e: Either[Int, X.type]) = e match {
case Left(i) => i
case Right(X) => 0
}
与える:
warning: match may not be exhaustive.
It would fail on the following input: Right(<not X>)
これは正しいです?確かに、試合は実際には徹底的です。
(その間、Scala2.9.Xに戻ると
error: pattern type is incompatible with expected type;
found : object X
required: X.type
case Right(X) => 0
これはおそらくバグでした。)