Cuando trato de omitir puntos de invocaciones de métodos, como en este programa de ejemplo:¿Qué significa "método recursivo <method name> necesita tipo" en Scala?
object Test extends Application {
val baz = new Baz
var foo = baz bar
println(foo)
}
class Baz {
def bar = "bar"
}
recibo errores extraños. El primero es error: recursive method foo needs type: println foo
y el otro es error: type mismatch; found: Unit, required: Int, println(foo)
. El primer error se soluciona de alguna manera extraña si especifico que el tipo de foo
debe ser String. El segundo no desaparecerá antes de poner un punto entre baz
y bar
. ¿Cuál es la causa de esto? ¿Por qué Scala piensa que baz bar
es un método recursivo?
Similar: http://stackoverflow.com/questions/2246212/why-does-scalas-semicolon-inference-fail-here – missingfaktor