2024 年 Clojure 调查中分享您的看法!

欢迎!请参阅 关于 页面以获取更多有关如何使用本页面的信息。

0
Spec

我尝试使用一个由两个其他规格的联合组成的规格进行练习

(ns example
(:require [clojure.alpha.spec :as s]))
(s/def ::val1 int?)
(s/def ::foo (s/schema [::val1]))

(s/def ::val2 int?)
(s/def ::bar (s/schema [::val2]))
(s/def ::foobar (s/union ::foo ::bar))

(s/exercise (s/select ::foobar [::val1]))

但这引发了一个错误。

找不到方法::keyspecs* 的协议实现
#'clojure.alpha.spec.protocols/Schema 在 class
clojure.alpha.spec.impl$union_impl$reify__7091 中找到

选择应该适用于这种情况吗?我是否做错了什么?

我使用的是

org.clojure/alpha.spec {:git/url "https://github.com/clojure/spec-alpha2.git"
                             :sha "495e5ac3238be002b4de72d1c48479f6bec06bb3"}

1 答案

+1 投票

已被选择
 
最佳答案

这是一个错误,现在已在 master 中修复。

感谢快速的回复和修复。现在对我的工作有效 :)
...