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

欢迎!请参阅 关于 页面以了解更多关于如何使用本站的信息。

0
错误
Clojure 1.10 的错误报告新阶段中,我们确定了两个不同的阶段 - :compile-syntax-check(由编译器发现的语法错误)和 :compilation(编译过程中发生的错误但不是语法错误)。

后者示例


user=> a/b
语法错误在 (REPL:0:0) 编译时。
没有名为 a 的命名空间
user=> (ex-data *e)
#:clojure.error{:phase :compile-syntax-check, :line 0, :column 0, :source "NO_SOURCE_PATH"}


这里语法没有问题,只是 a 不是一个已知的命名空间。

编译器在区分这两个方面时没有遵循任何模式。我们应该逐一使其一致,要么通过异常类型,要么明确地在 CompilerException 中指定阶段。

1 答案

0
参考文献:https://clojure.atlassian.net/browse/CLJ-2428(由 alexmiller 报告)
...