作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 Scala 中编写一个宏,但是当我调用它时,我收到一条错误消息,指出“Double 不接受参数”。显然,宏构建 AST 的方式有问题。那么如何才能看到扩展后的宏呢?有没有办法在运行时调用宏实现?
最佳答案
向编译器提供-Ymacro-debug-lite
或-Ymacro-debug-verbose
选项。
在我的脑海中,打印 AST 的详细化是由 -Yshow-trees-compact
、-Yshow-trees-stringified
、-Xprint 控制的-types
、-uniqid
和 -Yshow-symkinds
。您可以通过运行 scala -X
和 scala -Y
(或在 https://github.com/scala/scala/blob/2.10.x/src/compiler/scala/tools/nsc/settings/ScalaSettings.scala 检查 scala 设置的来源)来找到其他 gem。
此外,尽管本质上是一个宏,具体化具有自己的跟踪机制,可以通过 -Yreify-copypaste
和 -Yreify-debug
进行配置。
关于scala - 如何在 Scala 中打印扩展宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11677609/
我是一名优秀的程序员,十分优秀!