A rather weird behavior coming from the Scala REPL.
Although the following compiles without a problem:
class CompanionObjectTest {
private val x
This is indeed a little weird. To work around this problem, you should enter paste mode first with :paste, then define your class and your companion object and exit paste mode with CTRL-D. Here is a sample REPL session:
Welcome to Scala version 2.9.0.1 (OpenJDK Server VM, Java 1.6.0_22).
Type in expressions to have them evaluated.
Type :help for more information.
scala> :paste
// Entering paste mode (ctrl-D to finish)
class A { private val x = 0 }
object A { def foo = (new A).x }
// Exiting paste mode, now interpreting.
defined class A
defined module A
scala>