scala> class A(implicit a: Int);
defined class A

scala> class B()(implicit a: Int);
defined class B

scala> new A()(1)
res1: A = A@159d450

scala> new B()(1)
res2: B = B@171f735

scala> new A(1)
<console>:7: error: too many arguments for constructor A: ()(implicit a: Int)A
       new A(1)

Why does Scalac insert an empty parameter list before the implicit parameter list provided in the class declaration?

This seems to be a feature, not a bug, judging by the commentary in the scalac sources:

// convert (implicit ... ) to ()(implicit ... ) if its the only parameter section

I'm curious to know why this is done. I find it rather surprising.

Edit
Report