This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-06-15
Channels
- # ai (1)
- # announcements (1)
- # aws (4)
- # babashka (9)
- # biff (1)
- # calva (1)
- # clerk (15)
- # clj-kondo (24)
- # clojure (23)
- # clojure-austin (7)
- # clojure-europe (19)
- # clojure-nl (2)
- # clojure-norway (33)
- # clojurescript (43)
- # conjure (4)
- # data-science (2)
- # datahike (5)
- # datomic (14)
- # defnpodcast (27)
- # domino-clj (1)
- # events (1)
- # honeysql (13)
- # hyperfiddle (44)
- # introduce-yourself (1)
- # java (4)
- # jobs (1)
- # jobs-discuss (11)
- # lsp (3)
- # malli (14)
- # missionary (5)
- # off-topic (44)
- # pedestal (2)
- # podcasts-discuss (1)
- # releases (8)
- # remote-jobs (2)
- # shadow-cljs (3)
I've been getting clj-kondo warnings on manifold
functions since 0.4.0
, when using version 0.3.0
the problem disapears. Has anyone else come across this problem?
src/trank/execute.clj:43:4: warning: Unresolved var: d/error-deferred
src/trank/execute.clj:64:6: warning: Unresolved var: d/future
src/trank/execute.clj:107:30: warning: Unresolved var: d/catch
src/trank/execute.clj:140:10: warning: Unresolved var: d/success-deferred
@U04V15CAJ IIUC, library users have to import the distributed config, right? And only the ones exposed via /resources/
are importable by users. (Stuff I define under /.clj-kondo
is only for me by default, right?)
If so, I'm not sure how the bundled config is the issue, since the current one is https://github.com/clj-commons/manifold/blob/master/resources/clj-kondo.exports/manifold/manifold/config.edn, and doesn't involve those vars.
ok makes sense. I don't know why d/error-deferred is unresolved since it's just defined using normal defn right
I mean, don't get me wrong, Zach's old code is macro-heavy, and very kondo-unfriendly. It even temporarily switches namespaces in the middle of one file. So kondo errors don't surprise me; I see them all the time. But if that were the case, I'd expect the problem to appear in 0.3.0 as well.
@U55V0HZMJ you can just add to your config: {:linters {:unresolved-var {:exclude [the-offending.ns]}}}
The biggest change in 0.4.0 is the CompletableFuture support, but that should be purely additive. @U55V0HZMJ if you're willing to do a bisect with SHAs for intermediate commits, that would be pretty helpful
@U55V0HZMJ Alternatively...what editor/IDE are you using?
To be clear, if checking in the IDE, it might be good to double-check from the command-line. At least in Cursive, I sometimes see Cursive errors, and think they're kondo errors, or vice versa
I'm using IntelliJ with Cursive, but I use the command-line for this reporting (I have a git-commit hook)
to see those errors on the command line, be sure to lint the manifold dependency first, else you might not see the error
I do the following:
clj-kondo --lint "$(clojure -Spath)" --dependencies --parallel --copy-configs
clj-kondo --lint src test
@U55V0HZMJ Is there more code you could share?
Let me try to make a minimal example and see. I'm not sure what code to share really, it just a require with alias :thinking_face:
Does sound unlikely, but it might not hurt to get more eyes on the ns
Just checked the git history, and for error-deferred
, it hasn't changed since 0.1.7-alpha1, so it's gotta be something else triggering it.
sorry to have tagged you @U10EC98F5, should have checked myself first
Nah, it's ok.
Unfortunately, manifold is just not very linter-friendly.
Again thanks for your time and effort! It's not constantly reproducible for some reason 😕
Heh. Well, if that changes, let us know