Я только что обновляюсь с Scala 2.10.x до 2.11.2, и я получаю следующее предупреждение со следующим кодом:
override def validateKey(key: String): Either[InvalidKeyError, Unit] =
keys.contains(key) match {
case true => Right()
case false => Left(InvalidKeyError(context, key))
}
Адаптация списка аргументов путем вставки() устарела: это вряд ли будет тем, что вы хотите. подпись: Right.apply [A, B] (b: B): scala.util.Right [A, B] данные аргументы: после адаптации: Right ((): Unit)
Я могу решить это, изменив "истинный" оператор case:
case true => Right(()) //() is a shortcut to a Unit instance
Является ли это правильным способом устранения этого предупреждения?
Изменить: возможно, ответ "почему мы должны это делать сейчас" будет подходящим, мое беглое исследование, похоже, указывает на то, что Scala вставка "Единицы", когда он считает, что ему нужно вызвать другие проблемы