评论者:alexmiller
我同意这在未经限定的情况下是一个好主意。
在hasheq中增加更多的分支会增加实际代价——添加这些集合检查会影响每一个hasheq。在运行完整的Clojure构建时,我看到以下一组具有>100次这种发生的类(请注意,其中恰好0个是Java集合——这种情况本身不存在于Clojure构建中)
clojure.lang.Var 107001502 java.lang.Class 2651389 java.lang.Character 2076322 java.util.UUID 435235 java.util.Date 430956 clojure.lang.Compiler$LocalBinding 116830 java.lang.Boolean 112361 java.util.regex.Pattern 325
我们将在每个hasheq的路径中添加更多的instanceof检查。这也很可能导致任何JVM内联失败。
Rich表示“对于非值型的hasheq/equiv,一切赌注都应该取消”,而Java集合显然属于“非值型”。