Scala: возможно ли аннотировать поле конструктора класса с помощью макроаннотации? (макро рай)

Maarten спросил: 11 марта 2019 в 07:42 в: scala

Я пытаюсь комментировать значения конструктора класса с помощью макроаннотаций. Предположим, что макроаннотация с именем @identity реализована и используется следующим образом в определении класса класса A:

class A(@identity val foo: String, // causes error
        val bar: String) {
@identity val foobar: String = "" // doesn't cause error
}

Когда просто аннотируем foobar все компилируется просто отлично. Однако при аннотировании foo я получаю следующую ошибку во время компиляции:

класс верхнего уровня без компаньона может разворачиваться только в одноименный класс или в блок, состоящий из одноименные компаньоны

Может ли кто-нибудь рассказать об этой ошибке и почему она возникает?

0 ответов