2012-02-05 8 views
17

Il codice Scala è semplice:Perchè questo codice Scala segnalazioni di errori di compilazione: valore ricorsiva x esigenze di tipo

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 
    } 

} 

Si prega di notare la linea:

val id = x.id.get 

Perché riferisce recursive value x needs type?

Se cambio il nome della variabile, come:

val dd = x.id.get 

sarà OK.

PS: versione scala è: 2.9.1.final

+0

Interessante ... l'ho appena twittato, in caso di ... http://bit.ly/zU52GP –

+0

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

+0

In realtà questo è un duplicato di [SI-5091] (https://issues.scala-lang.org/browse/SI-5091) ... dovresti aggiungere questo esempio a quel ticket. –

risposta

16

Rimozione argomento di default per id nella definizione del caso classe X risolve anche il problema che suggerisce che questo è un esempio di SI-5091.

Problemi correlati