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