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

欢迎!有关如何进行操作,请参阅 关于 页面以获取更多信息。

0
core.logic

`
(deftest test-34-unify-with-metadata
(is (run* [q]

        (== q (quote ^:haz-meta-daytuhs (form form form))))
  '((^:haz-meta-daytuhs (form form form)))))

`

我不确定该测试的意图是什么,但用以下内容替换它会导致测试失败。

`
(deftest test-34-unify-with-metadata
(is (= (run* [q]

           (== q (quote ^:haz-meta-daytuhs (form form form))))
     '((^:haz-meta-daytuhs (form form form))))))

`

我认为正确的版本可能与以下类似。

3 个回答

0

评论由: dnolen 撰写

我相当确定元数据在形式中引起了异常,这就是这个测试的目的。

0

评论由: jafingerhut 撰写

鉴于该测试目前的形式,它是如下所示的

`
(is (run* [q] (expr))

'(expr2))

`

宏 'is' 的第二个参数是可选的,如果是存在的,则应该是一个字符串,不应是类似 '(expr2)' 的内容。如果 (run* (link: q) (expr)) 返回 true 而不抛出异常,则测试通过,并且 '(expr2)' 被完全忽略。这就是为什么测试看起来像被错误地写出来的。

0
参考: https://clojure.atlassian.net/browse/LOGIC-153 (由 jafingerhut 汇报)
...