2024 年 Clojure 状态调查! 中分享你的想法。

欢迎!请参阅 关于 页面以获取更多关于如何工作的信息。

+1 赞同
编译器

user=> ((fn (link: do) do) 1)
nil

user=> ((fn (link: do) (do do)) 1)
1

user=> ((fn (link: ) do))
nil

user=> ((fn (link: ) do do))
CompilerException java.lang.RuntimeException: 无法解析符号:do 在此上下文中,编译:(NO_SOURCE_PATH:0:0)

2 个回答

0 赞同

评论由:bronsa 提供

此补丁创建了一个 DoExpr 类,并将 DoExpr.Parser 设置为 DO 特殊形式的解析器。

DoExpr.Parser 仅仅是删除了 'do' 符号,并将解析任务委托给 BodyExpr,之前 BodyExpr 已经错误地这样做。

0 赞同
参考: https://clojure.atlassian.net/browse/CLJ-1216(由 bronsa 报告)
...