Соответствие Scala this.type параметрам границ типа супертипа - PullRequest
2 голосов
/ 31 июля 2011

Я пытаюсь скомпилировать следующий код:

class MyClass {
  def foo(): this.type = Helper.bar(this)
}

class ChildClass extends MyClass

object Helper {
  def bar[A <: MyClass](cls: A): A = cls
}

Полученная ошибка компилятора:

 type arguments [MyClass.this.type] do not conform to method bar's type parameter bounds [A <: MyClass]

Могу ли я что-нибудь сделать для этого свойства компиляции с помощью сигнатур методов, представленных выше? Кажется, что MyClass.this.type должен быть validClass, и я не хочу приводить дважды при вызове Helper (один раз при входе и один раз при выходе).

1 Ответ

4 голосов
/ 31 июля 2011

Типы Singleton никогда не выводятся.Вам придется написать

Helper.bar[this.type](this)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...