给定一个带有无效尾随字符的表单(我在更改窗口时敲击了错误的键组合),Clojure 编译器会报出错误的行号错误。
给定一个类似这样的文件 foo.clj
(defn foo [x]
(print "hello world")
(+ x x))π
我们得到引用行 0 列 0 的错误信息
$ clj --init foo.clj
Syntax error compiling at (foo.clj:0:0).
Unable to resolve symbol: π in this context
在实际示例中,我在文件中的一级定义中有一个多余的 π
字符,位于第 142 行的两个 defn
表单之间。错误消息是
Exception: clojure.lang.Compiler$CompilerException: Syntax error compiling at (circle/model/test_build.clj:1:112).
#:clojure.error{:phase :compile-syntax-check, :line 1, :column 112, :source "circle/model/test_build.clj"}
at clojure.lang.Compiler.analyze (Compiler.java:6808)
包含多余字符的 defn
表单从第 112 行开始,我不确定为什么列是 112,而不是行。