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

欢迎!请参阅关于页面以了解更多关于此页面如何工作的信息。

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](https://clojure.atlassian.net/browse/CLJ-1180)(由bronsa报告)
...