scala实际上压制编译器警告

问题描述 投票:1回答:1

我怎么能真正抑制编译器警告:

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

Suppress "discarded non-Unit value" warning的建议不适用,因为问题发生在我自己的代码之外。

edit

编译器选项是:

"-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",

scala warnings compiler-warnings scalac
1个回答
3
投票

你应该从你调用Unit的块中明确地返回kryo.register。如果没有阻塞,请将其包装成一个:

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

About warning suppression in general

不幸的是,Scala没有内置的抑制系统。人们have been asking for this但实现起来并非无足轻重。目前有两种选择:

  1. 完全禁用警告
  2. 使用编译器插件:silencer
© www.soinside.com 2019 - 2024. All rights reserved.