Подтвердить что ты не робот

Почему этот scala код сообщает об ошибке компиляции: рекурсивное значение x требует типа

Код scala прост:

case class X(id: Option[String] = None, username: Option[String])

object X {
  def create(x: X): X = {
    x.copy(id = Some("111"))
  }
}

class Test {

  def test() {
    val x = X.create(X(
      username = Some("Hello, world!")))

    val id = x.id.get  // !!! reports: recursive value x needs type
  }

}

Обратите внимание на строку:

 val id = x.id.get

Почему он сообщает recursive value x needs type?

Если я изменю имя переменной, как:

val dd = x.id.get

Все будет в порядке.

PS: scala версия: 2.9.1.final

4b9b3361

Ответ 1

Удаление аргумента по умолчанию для id в определении класса case X также устраняет проблему, которая предполагает, что это экземпляр SI-5091.