joker

borkdude 2019-08-29T18:23:01.001100Z

would it be correct to say that joker uses static analysis on source code for linting? and it doesn't do any macroexpansion while linting, or does it do that?

jcburley 2019-08-29T22:18:19.001300Z

I don’t know for sure, as I don’t (yet) use it for linting, but I think it is indeed only a static-analysis tool, and that it lints macro definitions but does not expand them. So (cond 1) is caught as an error (not an even number of arguments), but this is not, although it’d fail at runtime just the same:

(defmacro cond-macro
  [& args]
  `(cond ~@args))

(cond-macro 1)

👍 1
Candid 2019-08-30T04:08:01.001900Z

joker only does macroexpansion for built-in macros when linting

borkdude 2019-08-30T06:08:09.002200Z

Thanks