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 уже определен как (сгенерированный компилятором) объект-компаньон класса case Z

Похоже, что определение сопутствующего объекта для класса case после определения класса case недопустимо, если они находятся в определении функции. Это ошибка компилятора или преднамеренная? Если последнее, то почему?

17
задан Gregor Scheidt 21 December 2011 в 13:37
поделиться