clj-kondo 2025-03-24

Hi, how are unused bindings and vars handled when they are definend or used in cljc files?

(ns foo)

(defn foo
  []
  (let [e 11]
    #?(:cljs e
       :clj 10)))
For example this makes a warning 'unused binding e'. Even with clj-kondo --lang cljs --lint ./src/foo.cljc Basically, we are trying to clear out all kondo warning and have a few of such cases.

unused bindings are treated per language. sometimes/often it's a red flag when you're not using a binding in one language even if it's used in another language

you can solve this warning by doing this:

(let [#?(:clj e :default _) 11]

we also dev functions and only use them in cljs

❓ 1

I have to try make a minimal repro. My theory of my issue was not correct