请参与 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 报告)
...