clj-kondo

agorgl 2026-02-19T10:41:12.386309Z

I think I have found another possible bug. When working with meander in a project, the following snippet:

(meander/match
    ;; input
    {:foo nil}

    ;; pattern
    {:foo (meander/or (meander/and nil ?bar)
                      {:bar ?bar})}

    ;; expression
    :aaa)
gives the warnings:
1. Unresolved var: meander/or [unresolved-var]
2. Unresolved var: meander/and [unresolved-var]
even though the I have required [meander.epsilon :as meander] I suppose this happens because meander/match is a macro?

borkdude 2026-02-19T10:42:40.572519Z

It depends on how meander defines or

agorgl 2026-02-19T10:43:10.964309Z

it uses a defsyntax macro

borkdude 2026-02-19T10:43:42.265389Z

this needs configuration

borkdude 2026-02-19T10:44:09.652709Z

preferably this configuration would be submitted to meander so everybody could profit from it

agorgl 2026-02-19T10:44:34.199599Z

ah so macros do not work automagically with clj-kondo?

borkdude 2026-02-19T10:44:58.773779Z

no, clj-kondo does't run your code so it always needs some configuration around macros

borkdude 2026-02-19T10:45:20.021759Z

you can choose to just turn off linting inside meander though, as a quick option

agorgl 2026-02-19T10:45:25.654329Z

I see

agorgl 2026-02-19T10:46:00.033609Z

thank you as always borkdude, you are the fastest responder I have ever known