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

欢迎!请访问关于页面以了解此功能的一些更多信息。

0 祥票
编译器

{{(fn [a-b a_b] (fn [] a_b a-b))}}
抛出
{{编译器异常 java.lang.ClassFormatError: 字段名和签名重复}}

2 答案

0 祥票

评论者:bronsa

这是由于Clojure如何将-简单地转换为_导致的 - 触发类似错误的另一种方式是

user=> (deftype x [a_b a-b]) 语法错误(ClassFormatError)在编译 dectype* 时出错(REPL:1:1)。类文件compile__stub/user/x中存在重复的字段名"a_b"和签名"Ljava.lang.Object;"

修复此问题需要更改Clojure过去十年中使用的名称转换方案,这可能会产生一些严重的意外后果,不确定这是否可行

0 祥票
参考: https://clojure.atlassian.net/browse/CLJ-2518(由fmnoise报告)
...