Open
Description
A case class apply method does not have default parameters generated, instead the constructor default parameters are reused, I believe that this is undocumented - causing scala/bug#12409
Compiler version
3.0.1
Minimized code
case class CaseClassDefault(value: Int = 1)
val foo = Scala3CaseClass.apply()
Output
val foo: CaseClassDefault = CaseClassDefault.apply(CaseClassDefault.`<init>$default$1`)
Expectation
val foo: CaseClassDefault = CaseClassDefault.apply(CaseClassDefault.`apply$default$1`)
Notes
extract from generated code:
final lazy module val CaseClassDefault: CaseClassDefault$ =
new CaseClassDefault$()
final module class CaseClassDefault$() extends AnyRef() {
this: CaseClassDefault.type =>
def apply(value: Int): CaseClassDefault = new CaseClassDefault(value)
def unapply(x$1: CaseClassDefault): CaseClassDefault = x$1
override def toString: String = "CaseClassDefault"
def $lessinit$greater$default$1: Int @uncheckedVariance = 1
}