Oddly, it appears to be this particular combination which really upsets debux. The fn doesn't need to be called at all; an exception is thrown when compiling it:
(dbgn
(defn bar []
(letfn [(foo []
(try
nil
(catch Exception e
nil)))]
(loop [i 0]
(recur (inc i))))))
The exception:
Exception in thread "main" java.lang.NullPointerException, compiling:(debux_meta/core.clj:5:1)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:7010)
at clojure.lang.Compiler.analyze(Compiler.java:6773)
at clojure.lang.Compiler.analyze(Compiler.java:6729)
at clojure.lang.Compiler$IfExpr$Parser.parse(Compiler.java:2822)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:7003)
at clojure.lang.Compiler.analyze(Compiler.java:6773)
at clojure.lang.Compiler.analyze(Compiler.java:6729)
at clojure.lang.Compiler$BodyExpr$Parser.parse(Compiler.java:6100)
at clojure.lang.Compiler$FnMethod.parse(Compiler.java:5460)
at clojure.lang.Compiler$FnExpr.parse(Compiler.java:4022)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:7001)
at clojure.lang.Compiler.analyze(Compiler.java:6773)
at clojure.lang.Compiler.eval(Compiler.java:7059)
at clojure.lang.Compiler.load(Compiler.java:7514)
at clojure.lang.RT.loadResourceScript(RT.java:379)
at clojure.lang.RT.loadResourceScript(RT.java:370)
at clojure.lang.RT.load(RT.java:460)
at clojure.lang.RT.load(RT.java:426)
at clojure.core$load$fn__6548.invoke(core.clj:6046)
at clojure.core$load.invokeStatic(core.clj:6045)
at clojure.core$load.doInvoke(core.clj:6029)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at clojure.core$load_one.invokeStatic(core.clj:5848)
at clojure.core$load_one.invoke(core.clj:5843)
at clojure.core$load_lib$fn__6493.invoke(core.clj:5888)
at clojure.core$load_lib.invokeStatic(core.clj:5887)
at clojure.core$load_lib.doInvoke(core.clj:5868)
at clojure.lang.RestFn.applyTo(RestFn.java:142)
at clojure.core$apply.invokeStatic(core.clj:659)
at clojure.core$load_libs.invokeStatic(core.clj:5925)
at clojure.core$load_libs.doInvoke(core.clj:5909)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.core$apply.invokeStatic(core.clj:659)
at clojure.core$require.invokeStatic(core.clj:5947)
at clojure.core$require.doInvoke(core.clj:5947)
at clojure.lang.RestFn.invoke(RestFn.java:408)
at user$eval3111$fn__3115.invoke(form-init8000152408779894085.clj:1)
at user$eval3111.invokeStatic(form-init8000152408779894085.clj:1)
at user$eval3111.invoke(form-init8000152408779894085.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:7062)
at clojure.lang.Compiler.eval(Compiler.java:7052)
at clojure.lang.Compiler.load(Compiler.java:7514)
at clojure.lang.Compiler.loadFile(Compiler.java:7452)
at clojure.main$load_script.invokeStatic(main.clj:278)
at clojure.main$init_opt.invokeStatic(main.clj:280)
at clojure.main$init_opt.invoke(main.clj:280)
at clojure.main$initialize.invokeStatic(main.clj:311)
at clojure.main$null_opt.invokeStatic(main.clj:345)
at clojure.main$null_opt.invoke(main.clj:342)
at clojure.main$main.invokeStatic(main.clj:424)
at clojure.main$main.doInvoke(main.clj:387)
at clojure.lang.RestFn.applyTo(RestFn.java:137)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.main.main(main.java:37)
Caused by: java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
at clojure.lang.Namespace.find(Namespace.java:188)
at clojure.core$find_ns.invokeStatic(core.clj:4096)
at clojure.core$the_ns.invokeStatic(core.clj:4126)
at clojure.core$ns_name.invokeStatic(core.clj:4130)
at clojure.core$ns_name.invoke(core.clj:4130)
at debux.common.util$var__GT_symbol.invokeStatic(util.cljc:112)
at debux.common.util$var__GT_symbol.invoke(util.cljc:110)
at debux.common.util$ns_symbol_for_clj.invokeStatic(util.cljc:119)
at debux.common.util$ns_symbol_for_clj.invoke(util.cljc:117)
at debux.common.util$ns_symbol.invokeStatic(util.cljc:140)
at debux.common.util$ns_symbol.doInvoke(util.cljc:136)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at debux.common.skip$insert_o_skip_for_recur.invokeStatic(skip.cljc:190)
at debux.common.skip$insert_o_skip_for_recur.doInvoke(skip.cljc:180)
at clojure.lang.RestFn.invoke(RestFn.java:423)
at debux.dbgn$dbgn.invokeStatic(dbgn.clj:298)
at debux.dbgn$dbgn.doInvoke(dbgn.clj:286)
at clojure.lang.RestFn.applyTo(RestFn.java:146)
at clojure.lang.Var.applyTo(Var.java:702)
at clojure.lang.Compiler.macroexpand1(Compiler.java:6912)
at clojure.lang.Compiler.analyzeSeq(Compiler.java:6989)
... 53 more
Version
[philoskim/debux "0.4.10"]
Oddly, it appears to be this particular combination which really upsets debux. The fn doesn't need to be called at all; an exception is thrown when compiling it:
The exception: