clj-kondo 2026-02-26

I noticed that I no longer get the :warn-on-reflection warning when I do interop without toggling the warning var. Am I doing something wrong or what might be the issue?

clj-kondo v2026.01.19

> clj-kondo --config '{:linters {:warn-on-reflection {:level :warning}}}' --lint - <<< '(ns foo (:import [java.util Date])) (Date. 1)'
linting took 8ms, errors: 0, warnings: 0

... what is warn-only-on-interop ? EDIT: ah, it always warns, even if there is not Java interop

Interesting. It seems that calling a Java constructor is not considered interop?

echo '(ns foo (:import [java.util Date])) (def bar [])  (Date. bar)' | clj-kondo --config '{:linters {:warn-on-reflection {:level :warning}}}' --repro  --debug  --lint - 
[clj-kondo] Linting file: <stdin>
linting took 6ms, errors: 0, warnings: 0

echo '(ns foo (:import [java.util Date])) (def bar [])  (Date/from bar)' | clj-kondo --config '{:linters {:warn-on-reflection {:level :warning}}}' --repro  --debug  --lint -
[clj-kondo] Linting file: <stdin>
<stdin>:1:51: warning: Var *warn-on-reflection* is not set in this namespace.
linting took 3ms, errors: 0, warnings: 1

interesting, seems like a gap in the implementation. issue welcome

Meander config

it would be most optimal if someone contributed a configuration to meander

Yes, unfortunately, they aren’t really active with that repository

I'm open to receive a PR in clj-kondo.configs too

Thank you!