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

欢迎!请查看 关于 页面以了解更多关于该方式的信息。

0 投票
规范

函数 clojure.spec.test.alpha/check 静默忽略无法“检查”的符号。对我来说这似乎是反直觉的,因为我预计在调用 check 时如果符号没有规范(例如拼写错误),它将失败。

check 的定义如下

`
(defn check
([] (check (checkable-syms)))
([sym-or-syms] (check sym-or-syms nil))
([sym-or-syms opts]

(->> (collectionize sym-or-syms)
     (filter (checkable-syms opts))
     (pmap
      #(check-1 (sym->check-map %) opts)))))

`

在我看来,(filter (checkable-syms opts)) 可能应该去到无参数变体。

3 答案

0 投票

评论人:[email protected]

附加 clj-2472-1.patch。它保留了向后兼容性,这使其稍微复杂一些。

0 投票

评论人:[email protected]

对补丁的微小更改(使用 'when' 而非 'if')。解决方案的思路是引入一个新选项::assert-checkable,它断言提供的符号是可检查的。

0 投票
...