Closed
Description
I've hit upon an issue with cider-undef-all
Minimal context:
{:paths ["src"]
:deps {org.clojure/clojure {:mvn/version "1.10.3"}}}
with src/core.clj
(ns core)
(print (System/getenv "HOME"))
Custom binding I established to evaluate the new undef-all
functionality:
:bind (:map cider-mode-map
("C-c C-k" . (lambda () (interactive)
(cider-undef-all)
(cider-load-buffer)
(message "Reset vars in namespace")))
...)
Expected behavior
Invoking C-c C-k
should dwim
and I should see the message in the mini-buffer.
Actual behavior
Invoking C-c C-k
gives rise to:
Show: Project-Only All
Hide: Clojure Java REPL Tooling Duplicates (33 frames hidden)
2. Unhandled clojure.lang.Compiler$CompilerException
Error compiling src/core.clj at (3:8)
No such namespace: System
Util.java: 221 clojure.lang.Util/runtimeException
Compiler.java: 7388 clojure.lang.Compiler/resolveIn
Compiler.java: 7362 clojure.lang.Compiler/resolve
Compiler.java: 7323 clojure.lang.Compiler/analyzeSymbol
Compiler.java: 6772 clojure.lang.Compiler/analyze
Compiler.java: 6749 clojure.lang.Compiler/analyze
Compiler.java: 3824 clojure.lang.Compiler$InvokeExpr/parse
Compiler.java: 7113 clojure.lang.Compiler/analyzeSeq
Compiler.java: 6793 clojure.lang.Compiler/analyze
Compiler.java: 6749 clojure.lang.Compiler/analyze
Compiler.java: 3892 clojure.lang.Compiler$InvokeExpr/parse
Compiler.java: 7113 clojure.lang.Compiler/analyzeSeq
Compiler.java: 6793 clojure.lang.Compiler/analyze
Compiler.java: 6749 clojure.lang.Compiler/analyze
Compiler.java: 6124 clojure.lang.Compiler$BodyExpr$Parser/parse
Compiler.java: 5471 clojure.lang.Compiler$FnMethod/parse
Compiler.java: 4033 clojure.lang.Compiler$FnExpr/parse
Compiler.java: 7109 clojure.lang.Compiler/analyzeSeq
Compiler.java: 6793 clojure.lang.Compiler/analyze
Compiler.java: 7178 clojure.lang.Compiler/eval
Compiler.java: 7640 clojure.lang.Compiler/load
REPL: 1 core/eval9167
REPL: 1 core/eval9167
Compiler.java: 7181 clojure.lang.Compiler/eval
Compiler.java: 7136 clojure.lang.Compiler/eval
core.clj: 3202 clojure.core/eval
core.clj: 3198 clojure.core/eval
interruptible_eval.clj: 87 nrepl.middleware.interruptible-eval/evaluate/fn/fn
AFn.java: 152 clojure.lang.AFn/applyToHelper
AFn.java: 144 clojure.lang.AFn/applyTo
core.clj: 667 clojure.core/apply
core.clj: 1977 clojure.core/with-bindings*
core.clj: 1977 clojure.core/with-bindings*
RestFn.java: 425 clojure.lang.RestFn/invoke
interruptible_eval.clj: 87 nrepl.middleware.interruptible-eval/evaluate/fn
main.clj: 437 clojure.main/repl/read-eval-print/fn
main.clj: 437 clojure.main/repl/read-eval-print
main.clj: 458 clojure.main/repl/fn
main.clj: 458 clojure.main/repl
main.clj: 368 clojure.main/repl
RestFn.java: 1523 clojure.lang.RestFn/invoke
interruptible_eval.clj: 84 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 56 nrepl.middleware.interruptible-eval/evaluate
interruptible_eval.clj: 152 nrepl.middleware.interruptible-eval/interruptible-eval/fn/fn
AFn.java: 22 clojure.lang.AFn/run
session.clj: 218 nrepl.middleware.session/session-exec/main-loop/fn
session.clj: 217 nrepl.middleware.session/session-exec/main-loop
AFn.java: 22 clojure.lang.AFn/run
Thread.java: 833 java.lang.Thread/run
Seems like undef-all
(the use of it I've presented in any case) breaks the following:
All classes in java.lang are automatically imported to every namespace
from https://clojure.org/reference/java_interop
Environment & Version information
CIDER version information
;; CIDER 1.4.0 (Kyiv), nREPL 0.9.0
;; Clojure 1.10.3, Java 17.0.2
Emacs version
GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.20, cairo version 1.16.0) of 2022-03-17
Operating system
Linux mark-pc 5.13.0-39-generic #44~20.04.1-Ubuntu SMP Thu Mar 24 16:43:35 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux