Scala 2.12.2 выдает массу бесполезных предупреждений: значение параметра в методе никогда не используется. Как избавиться от них?

Это вопрос, поэтому мне не нужно рыскать по всему Интернету, чтобы найти ответ, так как варианты scalac в настоящее время не публикуются.

Как отключить эти предупреждения, начиная с Scala 2.12.2, когда у меня есть глобальный "-Xlint"?


person 0__    schedule 14.05.2017    source источник
comment
Спасибо, некоторая информация должна была появиться в примечаниях к выпуску, но я не нашел подходящего места для примечаний по использованию. github.com/scala/scala/releases   -  person som-snytt    schedule 15.05.2017
comment
Не ответ на ваш вопрос, который, кажется, уже был предоставлен, но вы уверены, что это не законные предупреждения? И никак нельзя убрать неиспользуемые параметры из сигнатур методов?   -  person Peter Halverson    schedule 17.05.2017
comment
@halversonp они определенно могут быть бесполезными и непоправимыми: например. trait { def foo(implicit ec: ExecutionContext) = Future.successful(()) выдаст предупреждение о том, что ec не используется, даже если классы, реализующие трейт, используют ec   -  person dtech    schedule 02.08.2017


Ответы (1)


$ scalac -Ywarn-unused:help
Enable or disable specific `unused' warnings
  imports    Warn if an import selector is not referenced.
  patvars    Warn if a variable bound in a pattern is unused.
  privates   Warn if a private member is unused.
  locals     Warn if a local definition is unused.
  params     Warn if a value parameter is unused.
  implicits  Warn if an implicit parameter is unused.
Default: All choices are enabled by default.

So

-Ywarn-unused:-params,_

Но:

$ scalac -Xlint:help
Enable or disable specific warnings
  adapted-args               Warn if an argument list is modified to match the receiver.
  nullary-unit               Warn when nullary methods return Unit.
  inaccessible               Warn about inaccessible types in method signatures.
  nullary-override           Warn when non-nullary `def f()' overrides nullary `def f'.
  infer-any                  Warn when a type argument is inferred to be `Any`.
  missing-interpolator       A string literal appears to be missing an interpolator id.
  doc-detached               A Scaladoc comment appears to be detached from its element.
  private-shadow             A private field (or class parameter) shadows a superclass field.
  type-parameter-shadow      A local type parameter shadows a type already in scope.
  poly-implicit-overload     Parameterized overloaded implicit methods are not visible as view bounds.
  option-implicit            Option.apply used implicit view.
  delayedinit-select         Selecting member of DelayedInit.
  by-name-right-associative  By-name parameter of right associative operator.
  package-object-classes     Class or object defined in package object.
  unsound-match              Pattern match may not be typesafe.
  stars-align                Pattern sequence wildcard must align with sequence component.
  constant                   Evaluation of a constant arithmetic expression results in an error.
  unused                     Enable -Ywarn-unused:imports,privates,locals,implicits.

So

-Xlint:unused

Или также более хирургически:

-Xlint:-unused,_ -Ywarn-unused:imports

Там ПР для улучшения эргономики, так что ставить/снимать можно в произвольных комбинациях, но это заклинание для 2.12.2.

person som-snytt    schedule 14.05.2017
comment
Есть пиар по улучшению эргономики, ссылка? - person virtualeyes; 26.08.2017