[CLJS-432] Include line and file information in error messages Created: 28/Nov/12 Updated: 30/Nov/12 Resolved: 30/Nov/12 |
|
| Status: | Resolved |
| Project: | ClojureScript |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Enhancement | Priority: | Major |
| Reporter: | Brandon Bloom | Assignee: | Unassigned |
| Resolution: | Completed | Votes: | 0 |
| Labels: | patch, patch, | ||
| Attachments: |
|
| Patch: | Code |
| Description |
|
Just as the ana/warning function did, now errors and assertions include line and file source information. I needed this sorely. |
| Comments |
| Comment by Brandon Bloom [ 28/Nov/12 6:13 PM ] |
|
Added v2 of patch that will handle any exception during parsing. Similar could be done during code generation. This approach seems much more robust and less invasive. |
| Comment by Brandon Bloom [ 28/Nov/12 11:15 PM ] |
|
That v2 was made hastily. Upon further thought, it seems broken in the face of recursive analysis. I think the right thing, if we prefer the exception catching approach, is to rethrow as a custom exception type, which would be allowed through un-re-wrapped. For example: (try (parse-form ...) (catch AnalysisError e throw e) (catch Throwable e (throw (AnalysisError. env e)))) |
| Comment by David Nolen [ 29/Nov/12 11:32 AM ] |
|
I don't have a problem with the approach in the first patch. I don't really see how a less invasive patch is even possible - you still need to pass the environment to some assertion check if you are going to throw a custom exception as well. |
| Comment by Brandon Bloom [ 29/Nov/12 2:28 PM ] |
|
v3 of patch fixes issue with v2 |
| Comment by Brandon Bloom [ 29/Nov/12 2:50 PM ] |
|
v4 of patch as discussed in irc |
| Comment by Brandon Bloom [ 29/Nov/12 2:57 PM ] |
|
v5 also catches error from parse-invoke |
| Comment by Brandon Bloom [ 29/Nov/12 5:05 PM ] |
|
v6 improves errors in repl as discussed in IRC |
| Comment by David Nolen [ 30/Nov/12 11:25 AM ] |
|
fixed, http://github.com/clojure/clojurescript/commit/af4ab91754d30f082b117b40c07ea94d0063c0d6 |