Почему Scala не объединяет лямбда этого типа с базовым типом?

trait A {
  type T
  def test(t: T): Unit
}

case class B[S <: A](a: S, t : S#T) {
  def test() = a.test(t) // Error: type mismatch;
    // found   : B.this.t.type (with underlying type S#T)
    // required: B.this.a.T
}

Я ошибаюсь, ожидая, что выше скомпилировать? Можно ли исправить мой код?

Ответы на вопрос(3)

Ваш ответ на вопрос