Clojure 2024 调查问卷 中分享您的想法!

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

0
协议
已关闭

defprotocol 无法解析标签类名,这会导致当声明协议使用作为标签的导入类未在其使用的命名空间中导入时抛出异常。

user=> (import 'clojure.lang.ISeq) clojure.lang.ISeq user=> (defprotocol p (^ISeq f [_])) p user=> (ns x) nil x=> (defn x [y] (let [z (user/f y)] (inc z))) 编译器异常 java.lang.IllegalArgumentException: 无法解析类名:ISeq,编译:(NO_SOURCE_PATH:4:33)

补丁: clj-1180-2.patch

审核者: Alex Miller
- 我对本补丁的唯一犹豫是公开 tagToClass 并从 core_deftype 中访问它 - 这意味着调用编译器的 API 需要永远保持打开状态。

附带注释关闭: 已在 1.11.0-beta1 中发布

3 个答案

0

评论者:alexmiller

类似于 CLJ-1232。

0

评论者:alexmiller

补丁更新了当前主分支,保留了归属权。

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