When porting 1.13 destructuring to SCI + babashka, I found a regression with the test corpus.
$ clojure -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.13.0-alpha5"}
com.exoscale/lingo {:mvn/version "1.0.5"}}}' \
-M -e "(require 'exoscale.lingo)"
Syntax error compiling at (exoscale/lingo/highlight.cljc:124:18).
Unable to resolve symbol: pred in this context
This runs on 1.12.
The reason is a "bad" :or which depends on a destructured value in :keys. Clj-kondo flags this already for some time (I believe years). I think it's worth noting that it used to run, but it's perhaps undefined behavior that's not supposed to work.
A minimal repro:
clojure -Sdeps '{:deps {org.clojure/clojure {:mvn/version "1.13.0-alpha5"}}}' \
-M -e '(prn (let [{:keys [a b] :or {b (str "default-for-" a)}} {:a "x"}] b))'
cc @alexmiller@richhickey@mpenet (author of the lib)Those things were never valid and now that's more obvious (so not a regression imo). I've filed an issue with the cats library too where I found another case like this.