Обратите внимание на следующий код
trait Example {
type O
def apply(o: O)
def f(o: O) = this.apply(o)
}
, который прекрасно компилируется в Scala.Я ожидаю, что я могу опустить apply
как обычно, написав def f(o: O) = this(o)
.Однако это приводит к захватывающему сообщению об ошибке
type mismatch; found : o.type (with underlying type Example.this.O)
required: _31.O where val _31: Example
possible cause: missing arguments for method or constructor
Может кто-нибудь объяснить мне, что происходит?