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

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

0 投票
编译器

包含相同常量且带引号和未带引号的集合/映射字面量在某些情况下会抛出重复键异常(正确的行为),而在其他情况下会默默地忽略重复项。

`user=> #{'1 1}

{1}

user=> #{'[] []}
IllegalArgumentException Duplicate key: [] clojure/lang/PersistentHashSet.createWithCheck (PersistentHashSet.java:56)
`

这是因为编译器假设具有在读取时具有不同元素的字面量将在运行时具有不同的元素。对于自我评估元素,(quote x) 等于 x 并不成立。

2 答案

0 投票

评论由:wagjo

附上测试补丁。

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