Ну, не уверен, что это лучший способ, но решение, которое работает для меня, состоит в том, чтобы скомпилировать "пробный" класс, используя квазицитаты, используя контекст:
import c.universe._
val probe = c.typecheck (q "" "{class $$$$ Pr0bE $$$$; ()}" "")
Затем можно запросить владельца этого «зонда», который в моем случае является пакетом, и проследить за владельцами вплоть до «корня», составив из этого пути полный путь к классу аннотируемого и его имя.