2012-02-05 11 views
17

El código Scala es simple:Por qué este código Scala informes de errores de compilación: necesidades valor recursiva x 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 
    } 

} 

Tenga en cuenta la línea:

val id = x.id.get 

Por qué se informa recursive value x needs type?

Si cambio el nombre de la variable, como:

val dd = x.id.get 

que estará bien.

PS: Versión Scala es: 2.9.1.final

+0

Interesante ... Acabo de twittear, en caso de ... http://bit.ly/zU52GP –

+0

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

+0

En realidad, es un duplicado de [SI-5091] (https://issues.scala-lang.org/browse/SI-5091) ... debe agregar este ejemplo a ese ticket. –

Respuesta

16

Extracción del argumento por defecto para id en la definición de la clase X caso también corrige el problema que sugiere que se trata de una instancia de SI-5091.

Cuestiones relacionadas