首页 > 解决方案 > 遇到死代码并出现 x 个致命警告

问题描述

我有一段代码:

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
  }
}

我已经"-Xfatal-warnings"在我的build.sbt.

当我编译我的项目时,它会抛出这个错误:

 dead code following this construct
[error]   implicit object NothingCreateFieldChanges extends CreateFieldChanges[Nothing] {

我尝试将 type 更改为CreateColumnChanges[Any],但不知何故,许多测试都失败了,这使我的问题过于复杂,可能是因为-New处于逆变位置。我也尝试将它scalacOptions "-Ywarn-dead-code"放入构建文件中,但它没有任何效果,我再次遇到同样的异常。我正在用 scala 编译2.12.10@silent注释也没有影响它。如何更改我的代码以避免此错误。

标签: scala

解决方案


最后这工作,

我将类型从更改NothingUnit


推荐阅读