There is a bug open about this (only mentioning .copy, but .apply should likely be treated alike).
The bug comments mention “… the principled thing is to give the synthetic copy method the same access modifiers as the primary constructor. This isn’t a source compatible change, however, so …”
The reason this deserves to get attention, is that it can cut out some confusion from Scala. As you can see in the little scouting I did about this, it’s been brought up multiple times, under multiple Scala versions (2.9, 2.10, 2.11, 2.12).
The path of least surprise would mean that a case class applies the same access to its generated methods (.apply, .copy), as its constructor has.
How can I promote this for 2.13 or 2.14?