Подавить неиспользуемые предупреждения в определенной области - PullRequest
0 голосов
/ 19 февраля 2020

В Scala (2.12) при написании черты я добавил реализацию по умолчанию, которая может быть переопределена некоторыми подклассами. Поскольку во всей моей реализации state требуется почти везде, он неявный , так что мне не нужно передавать его каждый раз, когда это требуется.

Учитывая следующий фрагмент кода, компилятор жалуется, что неявный параметр state из SomeTrait.defaultMethod остается неиспользованным и выдает ошибку. Есть ли возможность подавить ошибки такого рода в этой конкретной области? Я определенно хочу сохранить неиспользуемые ошибки глобально.

trait SomeTrait {

  def defaultMethod(implicit state: State) : Unit = {
     // default implemenation does nothing
  }
}

class Subclass extends SomeTrait{

 override def deafultMethod(implicit state: State) : Unit = {
    state.addInformation()
 }
}

Кроме того, я хотел бы сохранить неявное состояние. Теоретически, можно добавить в метод фальшивое использование, но это не чистое решение.

1 Ответ

2 голосов
/ 19 февраля 2020

Scala 2.13 введено @unused аннотация

Эта аннотация полезна для подавления предупреждений при -Xlint. ( # 7623 )

Вот несколько примеров

// scalac: -Xfatal-warnings -Ywarn-unused

import annotation.unused

class X {
  def f(@unused x: Int) = 42       // no warn

  def control(x: Int) = 42         // warn to verify control

  private class C                  // warn
  @unused private class D          // no warn

  private val Some(y) = Option(42) // warn
  @unused private val Some(z) = Option(42) // no warn

  @unused("not updated") private var i = 42       // no warn
  def g = i

  @unused("not read") private var j = 42       // no warn
  def update() = j = 17
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...