Scala:伴随对象与案例类的定义顺序

Gre*_*idt 17 scala definition case-class

在Scala 2.9.1中,我得到以下行为:

class Foo {
   case class X()
   object X            // this compiles

   def bar() {
      object Y         // this compiles
      case class Y()

      case class Z()
      object Z         // won't compile (see below)
   }
}
Run Code Online (Sandbox Code Playgroud)

编译器抱怨Object Z:错误:Z已经被定义为(编译器生成的)案例类伴随对象Z.

在案例类定义之后,如果它们在函数定义中,则看起来不允许为案例类定义伴随对象.这是编译器错误还是故意的?如果是后者,为什么?

Mat*_*ell 13

这是一个已知的错误:SI-3772:随播和方法拥有的案例类.这部分是固定的,但OP的问题仍然存在.如果你想修复它,请投票.