The class definition with compiling error:
class Foo(implicit x : Int) {
def this(s : String) = this(s.length)
}
and the class definition can pass compiling
class Foo(implicit x : Int) {
def this(s : String) = this()(s.length)
}
from my point view, the first definition is just correct. Since the auxiliary constructor explicitly called the primary constructor which expected a Integer as parameter, seems nothing wrong. And for the second class definition which pass compiling, actually I don't quite understand why it works.