Обратите внимание на следующий код
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
Кто-нибудь может мне объяснить, что происходит?