Perché il codice seguente genera in un errore di compilazione:Perché impliciti che sono definiti in una caratteristica separata dopo che l'utilizzo ha generato un errore di compilazione?
class MyImplicit
class FooTest extends ImplicitProvider {
def getImplicit(implicit i: MyImplicit) = i
getImplicit
}
trait ImplicitProvider {
implicit val myImplicit = new MyImplicit
}
L'errore di compilazione è:
could not find implicit value for parameter i: MyImplicit getImplicit
Se mi muovo l'ImplicitProvider tratto di sopra della classe FooTest tutto funziona bene.
Compilare con scala 2.11.7 e sbt 0.13.9.
È questo comportamento previsto o un bug?
E qual è il motivo di tale comportamento (funzionalità)? Ho letto qualcosa del tipo "In questo modo, evitiamo gli errori di riferimento ciclici". che non capisco subito .. –