Kim*_*bel 17 macros scala scala-2.10
我在Scala中编写一个宏,但是当我调用它时,我收到一条错误消息"Double不接受参数".显然,宏构建AST的方式有问题.那我怎么能看到扩展的宏呢?有没有办法在运行时调用宏实现?
Eug*_*ako 20
提供-Ymacro-debug-lite
或-Ymacro-debug-verbose
选择编译器.
关闭我的头顶,印刷的AST的detalization被支配-Yshow-trees-compact
,-Yshow-trees-stringified
,-Xprint-types
,-uniqid
和-Yshow-symkinds
.您可以通过运行scala -X
和scala -Y
(或检查scala设置的源代码来查找其他宝石,网址为https://github.com/scala/scala/blob/2.10.x/src/compiler/scala/tools/nsc/settings/ScalaSettings.scala).
此外,尽管本质上是一个宏,但是reification有自己的跟踪机制,可以通过-Yreify-copypaste
和配置-Yreify-debug
.