2024年Clojure状态调查!

欢迎!请参阅关于页面获取更多该平台的信息。

0
规范

{{s/form}}可以在1. }中成功unfn

(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))))

; expected
; (clojure.spec.alpha/and (clojure.spec.alpha/and (clojure.core/fn [%] (clojure.core/>= % 42))))
`

这同样适用于任何嵌套规范中出现的1. }形式。

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

2 答案

0

评论由:sohta发表。

添加了一个补丁。

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