Почему этот код 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

Почему он сообщает рекурсивному значению x нужен тип ?

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

val dd = x.id.get

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

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

17
задан Freewind 5 February 2012 в 10:07
поделиться