在方法上展开宏注释时查找封闭类中的字段类型

时间:2016-06-19 22:25:58

标签: scala scala-macros scala-macro-paradise

我有一个处理日志记录的宏注释,并希望同时处理SLF4J和Log4j2日志记录。不幸的是,这需要找到import wave harp=wave.open('/Users/williamweiss2/Desktop/Test 2/harp.wav','r') print("Frame rate of Harp sample is",harp.getframerate()) print(harp) #I thought that opening the file would automatically make an array. 字段的类型。当注释在其他问题的类上时,我知道如何做到这一点。但是,当注释在方法上时,我还没有想到这种情况。这就是我尝试过的:

logger

这个编译(尽管val loggerType = { val classImpl = (if (annottees.head.isInstanceOf[DefDefApi]) c.enclosingClass else c).asInstanceOf[ImplDef].impl classImpl.body.collectFirst { case vd: ValDef if vd.name == TermName("logger") => c.typecheck(vd.duplicate).symbol.info }.getOrElse { // TODO look at parents c.abort(c.enclosingPosition, "Logger type not found") } } 已弃用),但使用此注释编译类会产生enclosingClass。对整个封闭类进行类型检查也不起作用。

有什么办法吗?

0 个答案:

没有答案