Scala фактически подавляет предупреждения компилятора

Как я могу на самом деле подавить предупреждение компилятора для:

discarded non-Unit value
[warn]     kryo.register(classOf[Foo])

Предложение " Подавить" предупреждение "отброшенное значение, не относящееся к единице" не применяется, поскольку проблема возникает за пределами моего собственного кода.

редактировать

Опции компилятора:

"-target:jvm-1.8",
  "-encoding",
  "UTF-8",
  "-feature",
  "-unchecked",
  "-deprecation",
  "-Xfuture",
  "-Xlint:missing-interpolator",
  "-Yno-adapted-args",
  "-Ywarn-dead-code",
  "-Ywarn-numeric-widen",
  "-Ywarn-value-discard",
  "-Ywarn-dead-code",
  "-Ywarn-unused"

который предупредит "-Ywarn-value-discard",

1 ответ

Решение

Вы должны просто вернуться Unit явно из блока, куда вы звоните kryo.register, Если блока нет, оберните его одним:

{
  kryo.register(classOf[Foo])
  kryo.register(classOf[Bar])
  () // I know what I'm doing
}

О подавлении предупреждений в целом

К сожалению, у Scala нет встроенной системы подавления. Люди просят об этом, но это не тривиально. На данный момент есть два варианта:

  1. Отключить предупреждение полностью
  2. Используйте плагин компилятора: silencer
Другие вопросы по тегам