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)
}
}
コンパイラは次のように不平を言いObject Z
ます: エラー: Z は既に (コンパイラによって生成された) ケース クラス コンパニオン オブジェクト Z として定義されています
関数定義内にある場合、ケース クラス定義の後にケース クラスのコンパニオン オブジェクトを定義することは許可されていないようです。これはコンパイラのバグですか、それとも意図的なものですか? 後者の場合、なぜですか?