следующий код должен проверять afaik, но это не так. Я бы предпочел не давать имена типам аргументов, так как они могут меняться в арности и типе.
trait Foobar[K] {
def method: K => Double
}
class Test extends Foobar[(String, Int, Boolean)] {
override def method: (String, Int, Boolean) => Double = (_, _, _) => 3.0
// This also fails
// override def method: (String, Int, Boolean) => Double = { case (_, _, _) => 3.0 }
}
Ошибка:
переопределение метода метода в признаке Foobar типа = > ((String, Int, Boolean) => Double; метод метода имеет несовместимый метод def override типа: (String, Int, Boolean) => Double = (, , _) => 3,0