Différence entre l'inférence de type de la méthode et les paramètres de type de classe dans la correspondance de modèle

Pourquoi la correspondance de modèles fonctionne-t-elle différemment lorsque le paramètre de type provient d'une méthode englobante par opposition à une classe englobante? Par exemple, trait Base[T] case class Derived(v: Int) extends Base[Int] class Test[A] { def method(arg: Base[A]) = { arg match...