加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在Scala中打印展开的宏?

发布时间:2020-12-16 09:18:58 所属栏目:安全 来源:网络整理
导读:我在 Scala中编写一个宏,但是当我打电话给我时,会收到一条错误消息,指出“Double不参与”.很明显,宏构建AST是有问题的.那么如何才能看到扩展的宏?有没有办法在运行时调用宏实现? 解决方法 向编译器提供-Ymacro-debug-lite或-Ymacro-debug-verbose选项. 在
我在 Scala中编写一个宏,但是当我打电话给我时,会收到一条错误消息,指出“Double不参与”.很明显,宏构建AST是有问题的.那么如何才能看到扩展的宏?有没有办法在运行时调用宏实现?

解决方法

向编译器提供-Ymacro-debug-lite或-Ymacro-debug-verbose选项.

在我的头顶上,打印的AST的标记由-Yshow-trees-compact,-Yshow-trees-stringsified,-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设置的来源)找到其他宝石.

此外,尽管本质上是一个宏,但是reification有自己的跟踪机制,可以通过-Yreify-copypaste和-Yreify-debug进行配置.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读