У меня есть пакет foo.bar
, в котором определена черта Parent
и определена серия объектов Child1
, Child2
, Child3
.Я хотел бы получить List[Parent]
, содержащий все дочерние объекты, определенные в foo.bar
.Как я могу написать такой макрос?
Сейчас у меня есть следующее:
def myMacro(c: blackbox.Context): c.Expr[Set[RuleGroup]] = {
val parentSymbol = c.mirror.staticClass("foo.bar.Parent")
c.mirror.staticPackage("foo.bar").info.members
// get all objects
.filter { sym =>
// remove $ objects
sym.isModule && sym.asModule.moduleClass.asClass.baseClasses.contains(parentSymbol)
}.map { ??? /* retrieve? */ }
???
}