В 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
Похоже, что недопустимо определять сопутствующий объект для класса case после определения класса case, если они находятся в определении функции. Это ошибка компилятора или намеренная? Если последнее, то почему?