clojure.test/are substitutes via clojure.template

are let-bound its template vars, so a var inside quote never substituted:
(are [x] (special-symbol? 'x) if def) tested the literal symbol x twice.
Rebuild are on clojure.template/do-template (postwalk substitution), the
same architecture as upstream, with the same arg-count check.

This un-aborts every suite namespace whose are rows need substitution:
cts baseline moves 5302->5614 pass, 236->192 errors, 88->84 baselined
namespaces. The newly-reachable assertions also surface real divergences
now baselined and filed (edn reader strictness, Boolean ctor).
This commit is contained in:
Yogthos 2026-07-02 05:57:57 -04:00
parent 53a8aac2d0
commit 86e36e8bee
4 changed files with 61 additions and 21 deletions

View file

@ -7,7 +7,7 @@ clojure.core-test.ancestors 9 0
clojure.core-test.atom 14 0
clojure.core-test.bigint 6 0
clojure.core-test.bit-set 1 0
clojure.core-test.boolean-qmark 0 1
clojure.core-test.boolean-qmark 0 3
clojure.core-test.byte 7 5
clojure.core-test.char 1 0
clojure.core-test.compare 1 0
@ -26,8 +26,6 @@ clojure.core-test.eval 0 3
clojure.core-test.even-qmark 1 0
clojure.core-test.float 4 4
clojure.core-test.get 0 1
clojure.core-test.gt 0 2
clojure.core-test.gt-eq 0 2
clojure.core-test.ifn-qmark 2 0
clojure.core-test.inc 1 0
clojure.core-test.int 4 5
@ -36,8 +34,6 @@ clojure.core-test.intern 2 0
clojure.core-test.keys 0 4
clojure.core-test.lazy-seq 3 0
clojure.core-test.long 2 5
clojure.core-test.lt 0 2
clojure.core-test.lt-eq 0 2
clojure.core-test.max 3 1
clojure.core-test.min 3 1
clojure.core-test.minus 2 0
@ -56,23 +52,23 @@ clojure.core-test.plus 11 0
clojure.core-test.plus-squote 11 0
clojure.core-test.pop 0 1
clojure.core-test.pos-int-qmark 1 0
clojure.core-test.quot 12 31
clojure.core-test.quot 12 23
clojure.core-test.rand-nth 0 1
clojure.core-test.rational-qmark 3 0
clojure.core-test.rationalize 10 0
clojure.core-test.realized-qmark 3 0
clojure.core-test.reduce 0 1
clojure.core-test.rem 12 30
clojure.core-test.rem 12 22
clojure.core-test.remove-watch 0 1
clojure.core-test.run-bang 1 0
clojure.core-test.select-keys 2 0
clojure.core-test.seqable-qmark 1 0
clojure.core-test.short 7 5
clojure.core-test.shuffle 1 0
clojure.core-test.slash 2 48
clojure.core-test.slash 2 22
clojure.core-test.some-fn 3 0
clojure.core-test.sort-by 2 0
clojure.core-test.special-symbol-qmark 20 0
clojure.core-test.special-symbol-qmark 4 0
clojure.core-test.star 22 0
clojure.core-test.star-squote 19 0
clojure.core-test.transient 23 0
@ -82,7 +78,7 @@ clojure.core-test.vals 0 3
clojure.core-test.vec 1 0
clojure.core-test.when-let 1 0
clojure.core-test.with-precision 17 0
clojure.edn-test.read-string 0 1
clojure.edn-test.read-string 46 5
clojure.string-test.capitalize 0 4
clojure.string-test.ends-with-qmark 1 4
clojure.string-test.escape 1 0