Scala: Implicit parameter resolution precedence

后端 未结 3 882
后悔当初
后悔当初 2020-11-30 08:46

Suppose we have implicit parameter lookup concerning only local scopes:

trait CanFoo[A] {
  def foos(x: A): String
}

object Def {
  implicit object ImportIn         


        
3条回答
  •  广开言路
    2020-11-30 09:42

    Could someone explain how it's considered more specific using "the rules of static overloading resolution (§6.26.3)"?

    There's no method overload, so 6.26.3 is utterly irrelevant here.

    Overload refers to multiple methods with the same name but different parameters being defined on the same class. For example, method f in the example 6.26.1 is overloaded:

    class A extends B {}
    def f(x: B, y: B) = . . .
    def f(x: A, y: B) = . . .
    val a: A
    val b: B
    

    Implicit parameter resolution precedence is a completely different rule, and one which has a question and answer already on Stack Overflow.

提交回复
热议问题