У меня есть аннотация макроса, которую я использую для добавления класса неявного типа в метод-компаньон.
@MyMacro case class MyClass[T](a: String, b: Int, t: T)
Большую часть времени он работает, как ожидалось, но он ломается, когда я использую обозначение ограничения типа:
@MyMacro case class MyClass[T: TypeClass](a: String, b: Int, t: T)
// private[this] not allowed for case class parameters
Эта ошибка была описана на SO , а - как ошибка .
Дело в том, что макросы (v1) больше не поддерживаются, поэтому я не могу ожидать, что это будет исправлено.
Итак, что я хотел знать: могу ли я исправить это самостоятельно в макросе? Это изменение сделано в AST таким образом, чтобы я мог как-то отменить его? Я хотел бы попробовать восстановить его внутри макроса, вместо того, чтобы заставлять всех пользователей переписывать свой код в ...(implicit tc: TypeClass[T])
.