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

欢迎!有关如何操作的更多信息,请参阅关于页面。

0
Spec

{{s/form}} 成功取消 1. } 一次)

(s/form (s/and #(>= % 42))) ;=> (clojure.spec.alpha/and (clojure.core/fn [%] (clojure.core/>= % 42)))

但在

`
(s/form (s/and (s/and #(>= % 42))))
;=> (clojure.spec.alpha/and (clojure.spec.alpha/and (fn* [p1__1503#] (clojure.core/>= p1__1503# 42))))

; 实际预期
; (clojure.spec.alpha/and (clojure.spec.alpha/and (clojure.core/fn [%] (clojure.core/>= % 42))))
`

对于嵌套 spec 中出现的任何 1. } 形式也是同样的情况。

原因:{{clojure.spec.alpha/res}} 在它直接应用于一个 表达式时才调用 {{unfn}}。因此,如果一个 } 表达式出现在一个嵌套 spec 表达式中,{{c.s.a/res}} 将不执行任何操作并保持原样。

2 个答案

0

评论者:sohta

添加了一个补丁。

0
参考资料:https://clojure.atlassian.net/browse/CLJ-2227(由 sohta 报告)
...