2012-02-05 5 views
17

Scalaのコードは単純です入力します。それはrecursive value x needs typeを報告するのはなぜは、なぜ、このScalaのコードはコンパイルエラーを報告します。再帰的な値xのニーズが

val id = x.id.get 

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 
    } 

} 

はラインに注意してください?それはOKになります

val dd = x.id.get 

:として私は、変数名を変更した場合

PS:Scalaのバージョンは次のとおりです。ケースクラスXの定義にidのデフォルト引数を削除2.9.1.final

+0

興味深い...私はちょうどそれをつぶやいた... http://bit.ly/zU52GP –

+0

投稿:https://issues.scala-lang.org/browse/SI-5434 – Freewind

+0

実際には[SI-5091](https://issues.scala-lang.org/browse/SI-5091)の複製です...この例をそのチケットに追加してください。 –

答えて

16

も、これはSI-5091のインスタンスであることを示唆している問題を修正します。

関連する問題