clojure-emacs / cider-nrepl

A collection of nREPL middleware to enhance Clojure editors with common functionality like definition lookup, code completion, etc.
https://docs.cider.mx/cider-nrepl
687 stars 176 forks source link

requiring string namespace breaks compliment #688

Closed gdanov closed 3 years ago

gdanov commented 3 years ago

I have the following import ["@js-joda/locale_en-us"] that causes each and every auto-complete attempt while editing the file to throw the exception below

ava.lang.AssertionError: Assert failed: (symbol? ns) at cider.nrepl.inlined_deps.suitable.v0v3v5.suitable.compliment.sources.cljs.analysis$ns_meta.invokeStatic(analysis.cljc:257) at cider.nrepl.inlined_deps.suitable.v0v3v5.suitable.compliment.sources.cljs.analysis$ns_meta.invoke(analysis.cljc:257) at cider.nrepl.inlined_deps.suitable.v0v3v5.suitable.compliment.sources.cljs$ns_candidates$iter__42886__42890$fn__42891.invoke(cljs.cljc:82) at clojure.lang.LazySeq.sval(LazySeq.java:42) at clojure.lang.LazySeq.seq(LazySeq.java:51) at clojure.lang.RT.seq(RT.java:535) at clojure.core$seq__5402.invokeStatic(core.clj:137) at clojure.core$concat$cat__5495$fn__5496.invoke(core.clj:734) at clojure.lang.LazySeq.sval(LazySeq.java:42) at clojure.lang.LazySeq.seq(LazySeq.java:51) at clojure.lang.Cons.next(Cons.java:39) at clojure.lang.RT.next(RT.java:713) at clojure.core$next__5386.invokeStatic(core.clj:64) at clojure.core.protocols$fn__8159.invokeStatic(protocols.clj:169) at clojure.core.protocols$fn__8159.invoke(protocols.clj:124) at clojure.core.protocols$fn__8114$G__8109__8123.invoke(protocols.clj:19) at clojure.core.protocols$seq_reduce.invokeStatic(protocols.clj:31) at clojure.core.protocols$fn__8146.invokeStatic(protocols.clj:75) at clojure.core.protocols$fn__8146.invoke(protocols.clj:75) at clojure.core.protocols$fn__8088$G__8083__8101.invoke(protocols.clj:13) at clojure.core$reduce.invokeStatic(core.clj:6828) at clojure.core$group_by.invokeStatic(core.clj:7146) at clojure.core$group_by.invoke(core.clj:7146) at cider.nrepl.inlined_deps.suitable.v0v3v5.suitable.compliment.sources.cljs$distinct_candidates.invokeStatic(cljs.cljc:259) at cider.nrepl.inlined_deps.suitable.v0v3v5.suitable.compliment.sources.cljs$distinct_candidates.invoke(cljs.cljc:255) at cider.nrepl.inlined_deps.suitable.v0v3v5.suitable.compliment.sources.cljs$candidates.invokeStatic(cljs.cljc:295) at cider.nrepl.inlined_deps.suitable.v0v3v5.suitable.compliment.sources.cljs$candidates.invoke(cljs.cljc:285) at clojure.lang.Var.invoke(Var.java:393) at cider.nrepl.inlined_deps.compliment.v0v3v11.compliment.core$completions$fn__42687.invoke(core.clj:82) at clojure.core$map$fn__5866.invoke(core.clj:2755) at clojure.lang.LazySeq.sval(LazySeq.java:42) at clojure.lang.LazySeq.seq(LazySeq.java:51) at clojure.lang.RT.seq(RT.java:535) at clojure.core$seq__5402.invokeStatic(core.clj:137) at clojure.core$apply.invokeStatic(core.clj:660) at clojure.core$mapcat.invokeStatic(core.clj:2783) at clojure.core$mapcat.doInvoke(core.clj:2783) at clojure.lang.RestFn.invoke(RestFn.java:423) at cider.nrepl.inlined_deps.compliment.v0v3v11.compliment.core$completions.invokeStatic(core.clj:81) at cider.nrepl.inlined_deps.compliment.v0v3v11.compliment.core$completions.invoke(core.clj:54) at cider.nrepl.middleware.complete$complete.invokeStatic(complete.clj:38) at cider.nrepl.middleware.complete$complete.invoke(complete.clj:29) at cider.nrepl.middleware.complete$complete_reply.invokeStatic(complete.clj:52) at cider.nrepl.middleware.complete$complete_reply.invoke(complete.clj:51) at cider.nrepl.middleware.util.error_handling$eval38396$fn__38397.invoke(error_handling.clj:160) at clojure.lang.MultiFn.invoke(MultiFn.java:234) at cider.nrepl.middleware.complete$handle_complete.invokeStatic(complete.clj:64) at cider.nrepl.middleware.complete$handle_complete.invoke(complete.clj:63) at clojure.lang.Var.invoke(Var.java:388) at cider.nrepl$wrap_complete$fn__2311.invoke(nrepl.clj:139) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_spec$fn__2411.invoke(nrepl.clj:401) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_xref$fn__2469.invoke(nrepl.clj:496) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_macroexpand$fn__2363.invoke(nrepl.clj:272) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_resource$fn__2403.invoke(nrepl.clj:391) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_classpath$fn__2303.invoke(nrepl.clj:133) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_refresh$fn__2395.invoke(nrepl.clj:365) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_version$fn__2461.invoke(nrepl.clj:486) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_test$fn__2427.invoke(nrepl.clj:427) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at nrepl.middleware.dynamic_loader$wrap_dynamic_loader$fn__1218.invoke(dynamic_loader.clj:97) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at nrepl.middleware.completion$wrap_completion$fn__1482.invoke(completion.clj:50) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_trace$fn__2435.invoke(nrepl.clj:449) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at nrepl.middleware.interruptible_eval$interruptible_eval$fn__1050.invoke(interruptible_eval.clj:154) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at nrebl.middleware$wrap_nrebl$fn__13731.invoke(middleware.clj:34) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at nrepl.middleware.sideloader$wrap_sideloader$fn__1601.invoke(sideloader.clj:104) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_profile$fn__2387.invoke(nrepl.clj:328) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at nrepl.middleware.session$add_stdin$fn__1165.invoke(session.clj:363) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at nrepl.middleware.load_file$wrap_load_file$fn__1514.invoke(load_file.clj:81) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_content_type$fn__2279.invoke(nrepl.clj:105) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_ns$fn__2371.invoke(nrepl.clj:285) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_debug$fn__2321.invoke(nrepl.clj:159) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_enlighten$fn__2329.invoke(nrepl.clj:185) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_apropos$fn__2295.invoke(nrepl.clj:125) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_stacktrace$fn__2419.invoke(nrepl.clj:417) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.piggieback$wrap_cljs_repl$fn__2154.invoke(piggieback_impl.clj:365) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_out$fn__2379.invoke(nrepl.clj:319) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_inspect$fn__2355.invoke(nrepl.clj:222) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at nrepl.middleware.caught$wrap_caught$fn__985.invoke(caught.clj:97) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at nrepl.middleware.print$wrap_print$fn__952.invoke(print.clj:234) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at cider.nrepl$wrap_tracker$fn__2443.invoke(nrepl.clj:467) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at nrepl.middleware.lookup$wrap_lookup$fn__1564.invoke(lookup.clj:51) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at nrepl.middleware.session$session$fn__1150.invoke(session.clj:309) at nrepl.middleware$wrap_conj_descriptor$fn__717.invoke(middleware.clj:16) at nrepl.server$default_handler$fn__1645.invoke(server.clj:130) at nrepl.server$handle_STAR_.invokeStatic(server.clj:22) at nrepl.server$handle_STAR_.invoke(server.clj:19) at nrepl.server$handle$fn__1616.invoke(server.clj:39) at clojure.core$binding_conveyor_fn$fn__5754.invoke(core.clj:2030) at clojure.lang.AFn.call(AFn.java:18) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.base/java.lang.Thread.run(Thread.java:830)

cider-nrepl version

"0.25.9"

bbatsov commented 3 years ago

The ClojureScript completion source is defined in suitable, so I'm guessing the actual bug is there, although I'm not quite sure. //cc @alexander-yakushev @rksm

vemv commented 3 years ago

Addressed in https://github.com/clojure-emacs/clj-suitable/commit/009c1da44f385065457217dd95ad8b78802274f4 and to be shipped in the next major release

vemv commented 3 years ago

Released [org.rksm/suitable "0.4.1-alpha1"], feel free to try it out

vemv commented 3 years ago

Whoops, sorry, it's not as easy as bumping that dep isolatedly. We have to cut a cider-nrepl release that uses the new suitable.

vemv commented 3 years ago

Fix finally available in cider-20211002.1153.tar (i.e. today's CIDER snapshot published on MELPA) or via [org.rksm/suitable "0.4.1"] for other setups