Определенная комбинация пробелов и упорядочения вместе с обратными кавычками в именах параметров, где имя с обратной кавычкой имеет те же начальные символы, что и другой параметр, кажется, вводит компилятор в заблуждение, вызывая ошибки компиляции:
Декларация
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
Это баг или как-то ожидаемо?
Скала 2.11.7