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

欢迎!请查看关于页面以获取更多关于此网站如何运行的详细信息。

0
编译器

{{(fn [a-b a_b] (fn [] a_b a-b))}}
抛出
{{CompilerException java.lang.ClassFormatError: Duplicate field name&signature}}

2 个答案

0

评论者:bronsa

这是由于 Clojure 如何将 - 简单地转换为 _ 而引起的 —— 触发类似错误的另一种方法是

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

解决这个问题需要改变 Clojure 过去 10 年使用的名称更改方案,这可能会导致一些严重的意外后果,不确定这是否可行

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