Ответ 1
Здесь обсуждается: http://www.scala-lang.org/node/3594
Идея заключалась в том, чтобы избежать ошибки программиста в запутывании локального блока "обвисшего" с шаблоном объекта/класса/признака.
object test {
object a
{
val x = 1
}
object b
{ // oops, extra newline disassociates this block with the object b
val x = 1
}
}
test.a.x
//test.b.x // doesn't compile
Если программист действительно хочет, чтобы этот блок был автономным, locally
можно было бы использовать:
object test {
object a
{
val x = 1
}
object b
locally {
val x = 1
}
}
Этот поток также предложил, чтобы первый код выдавал предупреждение об устаревании. Это еще не добавлено.