That's interesting. So this case of a spec exception during macroexception
threw before but the exception handler structure is different in 1.10.

Before you would have gotten the spec ExceptionInfo. Now you should get a
CompilerException wrapping that ExceptionInfo. It looks like the error is
in parsing the location out of the message (which is probably missing now
as that's built later). The top-level CompilerException now has an ex-data
that reports the line number directly so no parsing is needed.

So if the code first looked for ex-data with source/line/col info then fell
back to string parsing, that would work for both:

user=> (let [2])
Syntax error macroexpanding clojure.core/let at (1:1). Cause: Call to
clojure.core/let did not conform to spec.
[2] - failed: even-number-of-forms? at: [:bindings] spec:
:clojure.core.specs.alpha/bindings
user=> (ex-data *e)
#:clojure.error{:line 1, :column 1, :phase :macroexpand, :source
"NO_SOURCE_PATH", :symbol clojure.core/let}

^^ can just use (-> *e ex-data :clojure.error/line) now to grab the line,
etc


As far as I can tell, this doesn't need any change in Clojure.


On Fri, Oct 12, 2018 at 9:16 AM Erik Assum <e...@assum.net> wrote:

> Having said that, it seems like Cider/nrepl needs to be updated?
>
> ardoq.api.survey-api> (let [2])
> Syntax error macroexpanding clojure.core/let at (*cider-repl
> ardoq.com/ardoq-api:localhost:53859(clj)*:7015:23).
> [2] - failed: even-number-of-forms? at: [:bindings] spec:
> :clojure.core.specs.alpha/bindings
> 14715723 [clojure-agent-send-off-pool-28] ERROR []
>  clojure.tools.nrepl.server - Unhandled REPL handler exception processing
> message {:op stacktrace, :pprint-fn clojure.pprint/pprint, :print-length
> 50, :print-level 50, :session 8442d3d0-9a9d-43d6-8693-bdde270bd4e8, :id
> 237}
> java.lang.NullPointerException: null
> at clojure.string$replace_first.invokeStatic(string.clj:165)
> ~[clojure-1.10.0-RC1.jar:na]
> at clojure.string$replace_first.invoke(string.clj:138)
> ~[clojure-1.10.0-RC1.jar:na]
> at
> cider.nrepl.middleware.stacktrace$relative_path.invokeStatic(stacktrace.clj:204)
> ~[na:na]
> at
> cider.nrepl.middleware.stacktrace$relative_path.invoke(stacktrace.clj:198)
> ~[na:na]
> at
> cider.nrepl.middleware.stacktrace$extract_location.invokeStatic(stacktrace.clj:219)
> ~[na:na]
>
> @bbatsov Should I file an issue for this?
>
> Erik.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to