I bumped clj-kondo to v2025.12.23, and for the first time in a while, it found a few things in rewrite-clj! ๐๐งต
An https://github.com/clj-commons/rewrite-clj/blob/6f49cd56c517cb9bc682923fbb0afa7e0caa03eb/src/rewrite_clj/node.cljc#L82 (:refer-clojure :exclude [string coerce])
A good warning about unquote syntax not syntax-quoted https://github.com/clj-commons/rewrite-clj/blob/6f49cd56c517cb9bc682923fbb0afa7e0caa03eb/test/rewrite_clj/parser_test.cljc#L140-L144, (I think the warning is generally great, but will ignore it here).
And finally, it found what I think might be a false positive https://github.com/clj-commons/rewrite-clj/blob/6f49cd56c517cb9bc682923fbb0afa7e0caa03eb/src/rewrite_clj/node/coercer.cljc#L139-L142. It found that string is an unresolved var. But I think, for cljs, in this context, it is valid: https://cljs.github.io/api/cljs.core/extend-type. Lemme know what you think.
hmm, it surprises me that this is a new thing since the last release. let me test that
$ clj -M:clj-kondo/dev --lint - --filename foo.cljc <<< "(defprotocol IDude) (extend-type #?(:cljs string :clj String) IDude)"
linting took 41ms, errors: 0, warnings: 0
but string is also the name of a namespace in your code... let me test that.hmm, yeah that's it. something has changed around using namespaces as values in CLJS in clj-kondo which probably causes this. I'll make an issue.
$ clj -M:clj-kondo/dev --lint - --filename foo.cljs <<< "(ns foo (:require [clojure.string :as string])) (defprotocol IDude) (extend-type string IDude)"
foo.cljs:1:82: warning: Unresolved var: stringCool, thanks!