从更大的代码片段中提取的复现版本
clj -Srepro -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.10.0-alpha6"}, org.clojure/test.check {:mvn/version "0.10.0-alpha3"}}}'
(require '[clojure.spec.alpha :as s])
(s/def ::m (s/keys :req [::coll]))
(s/def ::coll (s/cat :m (s/? ::m)))
(s/conform ::m {::coll []}) ; => #:user{:coll {}}
(s/exercise ::m) ; => StackOverflowError
与 CLJ-2002 不同,这里的 conform 运作良好,但生成递归无限进行。