我刚刚遇到了一个令人讨厌的错误,基本上是
sealed trait T extends Product with Serializable
case object O extends T
val mistake = List("foo", "bar", O /* forgot O.toString */)
因此,scala继续为此列表推断List[java.io.Serializable]
,因为String
不是scala.Serializable
,而是java.io.Serializable
,而T是scala.Serializable
java.io.Serializable
。我通常依靠WartRemover来捕捉这些错误,但在这种情况下它并没有。显然它只是抱怨推断scala.Serializable
。有没有理由不让疣警告java.io.Serializable
?