Скалярная ошибка или недоразумение с моей стороны? - PullRequest
0 голосов
/ 08 июня 2018

Я установил флаг компилятора -Xfatal-warnings в моей сборке SBT и уверен, что этот код не компилируется:

package example

sealed trait Errors

object Errors {
  case class BadFirstName(name: String) extends Errors
  case class BadLastName(name: String) extends Errors
}

...

def handleError(errors: Errors): String = errors match {
  case BadFirstName(name) => s"$name is bad"
}

Я вижу ошибку [error] It would fail on the following input: BadLastName(_)

Но если ядобавьте охрану к BadFirstName совпадению, которое он компилирует без ошибок или предупреждений:

def handleError(errors: Errors): String = errors match {
  case BadFirstName(name) if name.startsWith("t") => s"$name is bad"
}
...
[info] Done compiling.

А затем взрывается во время выполнения с ужасным [error] scala.MatchError: BadLastName(...)

Это похоже на ошибку для меняно я хотел проверить, что я что-то пропустил?

1 Ответ

0 голосов
/ 08 июня 2018

Да, это ошибка, а именно SI-5365 .

...