Почему пробел в параметрах конструктора backtick нарушает компилятор?

Определенная комбинация пробелов и упорядочения вместе с обратными галочками в именах параметров, где имя с обратным символом имеет те же начальные символы, что и другой параметр, кажется, вводит компилятор в заблуждение, вызывая ошибки компиляции:

Декларация

case class A(`abc def`: List[Int], abc: String)

приводит к

[info] Compiling 7 Scala sources to ...
[error] (test:compileIncremental) scala.reflect.internal.Types$TypeError: type mismatch;
[error]  found   : List
[error]  required: String
[error] Total time: 2 s, completed Feb 10, 2016 11:09:51 AM

Эта проблема, по-видимому, зависит от порядка и типа параметров, а также от типа объявления, потому что все следующее компилируется просто отлично:

case class A(abc: String, `abc def`: List[Int])
case class B(`abc def`: String, abc: String)
case class C(`bbc def`: List[Int], abc: String)
def x(`abc def`: List[Int], abc: String) = 42

Это ошибка или как-то ожидается?

Scala 2.11.7

1 ответ

Решение
Другие вопросы по тегам