欢迎!请查看关于 页面获取有关本功能的一些更多信息。
`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" 会造成混淆。
评论者:wagjo
已附上补丁