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