core-async

2026-06-19T02:28:05.191009Z

Are there any tricks if you hit method too large?

Alex Miller (Clojure team) 2026-06-19T02:37:19.486399Z

Smaller methods?

Alex Miller (Clojure team) 2026-06-19T02:37:45.554699Z

I've never seen this with core.async. Are you also using core.match or anything?

2026-06-19T04:18:48.419219Z

I am kind of doing my own macros over top, so I have something like: (defmacro big-inline-await [ch] `(let [ch# ~ch] (loop [x# ch#] (if (some-channel? x#) (recur (alt! cancellation-chan ([v#] v#) x# ([v#] v#) :priority true)) x#)))) (go (big-inline-await (go (big-inline-await (go (big-inline-await (go (+ 1 2 3))))))))

2026-06-19T04:20:06.834079Z

And to be fair, even with my macro, maybe it's a bit of a stretch, it's because I have a test that tries to quadruple nest the macro in itself to make sure it still works and that's the only one that hits the method too large.