Scala 上遇到x个致命警告的死代码
我有一段代码:Scala 上遇到x个致命警告的死代码,scala,Scala,我有一段代码: case class ColumnChange private(field: String, old: Option[JsValue], `new`: Option[JsValue]) @typeclass trait CreateColumnChanges[-New] { def fieldChanges(newValue: New): Vector[ColumnChange] } trait LowLevelFieldChangesImplicits { impo
case class ColumnChange private(field: String, old: Option[JsValue], `new`: Option[JsValue])
@typeclass
trait CreateColumnChanges[-New] {
def fieldChanges(newValue: New): Vector[ColumnChange]
}
trait LowLevelFieldChangesImplicits {
import com.github.ghik.silencer.silent
@silent
implicit object NothingColumnChanges extends CreateColumnChanges[Nothing] {
override def columnChanges(newValue: Nothing): Vector[ColumnChange] = Vector.empty
}
}
我已在我的build.sbt
中启用了“-Xfatal warnings”
当我编译项目时,会抛出以下错误:
dead code following this construct
[error] implicit object NothingCreateFieldChanges extends CreateFieldChanges[Nothing] {
我尝试将类型更改为CreateColumnChanges[Any]
,但不知何故,许多测试都失败了,这使我的问题变得过于复杂,可能是因为-New
处于相反的位置。我试着把这个scalacOptions“-Ywarn dead code”
也放在构建文件中,但它没有任何效果,我再次得到同样的异常。我是用scala2.12.10
编译的。而且@silent
注释对它没有影响。如何更改代码以避免此错误。最终,这一点起了作用
我将类型从无
更改为单元
,最后这一切都成功了
我将类型从
Nothing
更改为Unit
我没有在代码段中看到隐式对象NothingCreateFieldChanges扩展CreateFieldChanges[Nothing]
,隐式对象NoColumnChanges扩展CreateColumnChanges[Nothing]
在2.12.10中编译时没有给我任何警告。我在代码段中没有看到隐式对象NothingCreateFieldChanges扩展CreateFieldChanges[Nothing]
,而隐式对象NoColumnChanges扩展CreateColumnChanges[Nothing]
在2.12.10中编译时没有给我任何警告。