14
Perché è possibile sovrascrivere un metodo di parentesi vuote con un object
?Sovrascrittura di un metodo con un oggetto
trait A {
def meth = {}
def meth_p() = {}
}
class B extends A {
object meth_p
} // compiles
override del metodo senza parentesi non compila:
class B1 extends A {
object meth
} // does not compile
nemmeno una delle seguenti combinazioni di lavoro (senza override
modificatore):
class BX extends A {
// of course, each declaration should get its own class
def meth = {}
def meth_p() = {}
def meth() = {}
def meth_p = {}
val meth = {}
val meth_p = {}
// ...
}
È questo il comportamento documentato e utile ? Ho appena incontrato un insetto molto sottile a causa di questa forzatura accidentale.
Sì, questo sembra ancora più un bug. – Debilski
https://issues.scala-lang.org/browse/SI-5429 – soc