欢迎!请参阅关于页面以获取更多有关该功能的详细信息。
`user> some?
`
user> (.hashCode map) 72400056user> (.hashCode str)ClassCastException clojure.core$str 无法转换为 java.lang.String /eval39172 (form-init3428514420830954023.clj:5793)user> (.hashCode (fn [])) 1715179801user> (.hashCode some?)ClassCastException clojure.core$someQMARK 无法转换为 java.lang.Boolean /eval39178 (form-init3428514420830954023.clj:5797)user> (.hashCode #'some?) 1955712430user> (.hashCode @#'some?) 1726569843 `
评论者:bronsa
这种情况发生是因为 some? 和 str 在 Var 上有类型提示,表示其调用的返回类型,但编译器认为这些类型提示也适用于 Var 对象本身。
some?
str
简单修复方法是将这些类型提示从 Var (旧式) 移动到 argvec (新式)
评论者:gshayban
同意 nicola 的建议-更改类型提示。这是 CLJ-140 的副本,其中 :tag 会在 var 被调用时与表达式上下文造成混淆
评论由:wagjo发表
贴上了补丁