В следующем примере я не могу скрыть update
от публичного разоблачения:
trait Order {
sealed trait EntryOption {
private[Order] def update(e: EntryOption): Unit
}
private case object EmptyEntry extends EntryOption {
def update(e: EntryOption) = ()
}
trait Entry extends EntryOption
def test(a: Entry, b: EntryOption): Unit = a.update(b)
}
Не удается скомпилировать с "error: object creation impossible, since method $line12$$read$Order$^date in trait EntryOption of type (e: Order.this.EntryOption)Unit is not defined
"- что бы это ни было (ошибка компилятора?). Я безуспешно пытался сделать следующее:
- Также сделать
update
в EmptyEntry
private[Order]
- Сделать это
protected
- метод прерываний test
Цель состоит в том, чтобы EntryOption
update
был недоступен извне Order
.
РЕДАКТИРОВАТЬ
Если я предварительноизменить trait Order
на object Order
он компилируется, что указывает на потенциальную ошибку компилятора?