Closed
Description
Minimized code
➜ snips ~/scala3-3.0.0-M1/bin/scala
Starting scala3 REPL...
scala> class C { private[C] def f = 42 }
// defined class C
scala> class D extends C { override def f = 17 }
// defined class D
scala> D().f
val res0: Int = 17
scala>
Output in Scala 2
Welcome to Scala 2.13.3 (OpenJDK 64-Bit Server VM, Java 11.0.7).
Type in expressions for evaluation. Or try :help.
scala> class C { private[C] def f = 42 }
class C
scala> class D extends C { override def f = 17 }
^
error: method f overrides nothing
scala>
Expectation
Although qualified private is dicey, we expect qualified private to immediately enclosing class to be exactly the same as private to immediately enclosing class, private tout court.
This is extracted from scala/bug#2568.
An alternative coping mechanism might be a warning and Scalafix for "redundant qualified private".
This gibes with removing private[this]
; possibly private[C]
where C is the immediately enclosing class should be disallowed.