Closed
Description
Opening this issue, as suggested by Martin, to provide a place to discuss the individual warts brought up in the blog post Warts of the Scala Programming Language and the possibility of mitigating/fixing them in Dotty (and perhaps later in Scala 2.x). These are based on Scala 2.x behavior, which I understand Dotty follows closely, apologies in advance if it has already been fixed
This doesn't work:
@ class Foo(i: Int)
defined class Foo
@ new Foo(1)
res50: Foo = $sess.cmd49$Foo@7230510
@ class Bar(implicit i: Int)
defined class Bar
@ new Bar(1)
cmd52.sc:1: no arguments allowed for nullary constructor Bar: ()(implicit i: Int)$sess.cmd51.Bar
val res52 = new Bar(1)
^
Compilation Failed
But this does:
@ new Bar()(1)
res52: Bar = $sess.cmd51$Bar@467de021
This one straddles the line between "Wart" and "Bug", but definitely should
be fixed so that a class defined with one argument list doesn't magically
sprout two.