В 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, если они находятся в определении функции. Является ли это ошибкой компилятора или преднамеренным? Если последнее, почему?