borkdude/carve

Output file info when exception is thrown.

CambodianCoder opened this issue · 0 comments

Currently, no information is output when an exception is thrown when analyzing a file. It would be great if a try/catch block was put around impl.clj line 145 that outputs the name of the file/line that was being analyzed when the exception was thrown. The stacktrace listed below doesn't contain this info, which makes it difficult to determine why carve threw an exception.

$ ~/Downloads/carve --opts '{:paths ["src/cljs/"]}'
Exception in thread "main" java.lang.AssertionError: Assert failed: (string-of? s r/linebreak?)
	at rewrite_cljc.node.whitespace$newline_node.invokeStatic(whitespace.cljc:92)
	at rewrite_cljc.node.whitespace$newline_node.invoke(whitespace.cljc:92)
	at rewrite_cljc.parser.whitespace$parse_whitespace.invokeStatic(whitespace.cljc:11)
	at rewrite_cljc.parser.whitespace$parse_whitespace.invoke(whitespace.cljc:5)
	at rewrite_cljc.parser.core$fn__14229.invokeStatic(core.cljc:83)
	at rewrite_cljc.parser.core$fn__14229.invoke(core.cljc:81)
	at clojure.lang.MultiFn.invoke(MultiFn.java:229)
	at rewrite_cljc.reader$read_with_meta.invokeStatic(reader.cljc:136)
	at rewrite_cljc.reader$read_with_meta.invoke(reader.cljc:132)
	at rewrite_cljc.parser.core$parse_next.invokeStatic(core.cljc:33)
	at rewrite_cljc.parser.core$parse_next.invoke(core.cljc:31)
	at rewrite_cljc.parser.core$parse_delim$fn__14213.invoke(core.cljc:41)
	at rewrite_cljc.reader$read_repeatedly$fn__13624.invoke(reader.cljc:145)
	at clojure.core$repeatedly$fn__6480.invoke(core.clj:5138)
	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__5420.invokeStatic(core.clj:139)
	at clojure.core$take_while$fn__5936.invoke(core.clj:2908)
	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__5404.invokeStatic(core.clj:64)
	at clojure.core$dorun.invokeStatic(core.clj:3130)
	at clojure.core$doall.invokeStatic(core.clj:3136)
	at clojure.core$doall.invoke(core.clj:3136)
	at rewrite_cljc.reader$read_repeatedly.invokeStatic(reader.cljc:147)
	at rewrite_cljc.reader$read_repeatedly.invoke(reader.cljc:141)
	at rewrite_cljc.parser.core$parse_delim.invokeStatic(core.cljc:42)
	at rewrite_cljc.parser.core$parse_delim.invoke(core.cljc:37)
	at rewrite_cljc.parser.core$fn__14258.invokeStatic(core.cljc:184)
	at rewrite_cljc.parser.core$fn__14258.invoke(core.cljc:182)
	at clojure.lang.MultiFn.invoke(MultiFn.java:229)
	at rewrite_cljc.reader$read_with_meta.invokeStatic(reader.cljc:136)
	at rewrite_cljc.reader$read_with_meta.invoke(reader.cljc:132)
	at rewrite_cljc.parser.core$parse_next.invokeStatic(core.cljc:33)
	at rewrite_cljc.parser.core$parse_next.invoke(core.cljc:31)
	at rewrite_cljc.parser.core$parse_delim$fn__14213.invoke(core.cljc:41)
	at rewrite_cljc.reader$read_repeatedly$fn__13624.invoke(reader.cljc:145)
	at clojure.core$repeatedly$fn__6480.invoke(core.clj:5138)
	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__5420.invokeStatic(core.clj:139)
	at clojure.core$take_while$fn__5936.invoke(core.clj:2908)
	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__5404.invokeStatic(core.clj:64)
	at clojure.core$dorun.invokeStatic(core.clj:3130)
	at clojure.core$doall.invokeStatic(core.clj:3136)
	at clojure.core$doall.invoke(core.clj:3136)
	at rewrite_cljc.reader$read_repeatedly.invokeStatic(reader.cljc:147)
	at rewrite_cljc.reader$read_repeatedly.invoke(reader.cljc:141)
	at rewrite_cljc.parser.core$parse_delim.invokeStatic(core.cljc:42)
	at rewrite_cljc.parser.core$parse_delim.invoke(core.cljc:37)
	at rewrite_cljc.parser.core$fn__14256.invokeStatic(core.cljc:180)
	at rewrite_cljc.parser.core$fn__14256.invoke(core.cljc:178)
	at clojure.lang.MultiFn.invoke(MultiFn.java:229)
	at rewrite_cljc.reader$read_with_meta.invokeStatic(reader.cljc:136)
	at rewrite_cljc.reader$read_with_meta.invoke(reader.cljc:132)
	at rewrite_cljc.parser.core$parse_next.invokeStatic(core.cljc:33)
	at rewrite_cljc.parser.core$parse_next.invoke(core.cljc:31)
	at rewrite_cljc.parser.core$parse_delim$fn__14213.invoke(core.cljc:41)
	at rewrite_cljc.reader$read_repeatedly$fn__13624.invoke(reader.cljc:145)
	at clojure.core$repeatedly$fn__6480.invoke(core.clj:5138)
	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__5420.invokeStatic(core.clj:139)
	at clojure.core$take_while$fn__5936.invoke(core.clj:2908)
	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__5404.invokeStatic(core.clj:64)
	at clojure.core$dorun.invokeStatic(core.clj:3130)
	at clojure.core$doall.invokeStatic(core.clj:3136)
	at clojure.core$doall.invoke(core.clj:3136)
	at rewrite_cljc.reader$read_repeatedly.invokeStatic(reader.cljc:147)
	at rewrite_cljc.reader$read_repeatedly.invoke(reader.cljc:141)
	at rewrite_cljc.parser.core$parse_delim.invokeStatic(core.cljc:42)
	at rewrite_cljc.parser.core$parse_delim.invoke(core.cljc:37)
	at rewrite_cljc.parser.core$fn__14256.invokeStatic(core.cljc:180)
	at rewrite_cljc.parser.core$fn__14256.invoke(core.cljc:178)
	at clojure.lang.MultiFn.invoke(MultiFn.java:229)
	at rewrite_cljc.reader$read_with_meta.invokeStatic(reader.cljc:136)
	at rewrite_cljc.reader$read_with_meta.invoke(reader.cljc:132)
	at rewrite_cljc.parser.core$parse_next.invokeStatic(core.cljc:33)
	at rewrite_cljc.parser.core$parse_next.invoke(core.cljc:31)
	at rewrite_cljc.parser.core$parse_delim$fn__14213.invoke(core.cljc:41)
	at rewrite_cljc.reader$read_repeatedly$fn__13624.invoke(reader.cljc:145)
	at clojure.core$repeatedly$fn__6480.invoke(core.clj:5138)
	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__5420.invokeStatic(core.clj:139)
	at clojure.core$take_while$fn__5936.invoke(core.clj:2908)
	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__5404.invokeStatic(core.clj:64)
	at clojure.core$dorun.invokeStatic(core.clj:3130)
	at clojure.core$doall.invokeStatic(core.clj:3136)
	at clojure.core$doall.invoke(core.clj:3136)
	at rewrite_cljc.reader$read_repeatedly.invokeStatic(reader.cljc:147)
	at rewrite_cljc.reader$read_repeatedly.invoke(reader.cljc:141)
	at rewrite_cljc.parser.core$parse_delim.invokeStatic(core.cljc:42)
	at rewrite_cljc.parser.core$parse_delim.invoke(core.cljc:37)
	at rewrite_cljc.parser.core$fn__14256.invokeStatic(core.cljc:180)
	at rewrite_cljc.parser.core$fn__14256.invoke(core.cljc:178)
	at clojure.lang.MultiFn.invoke(MultiFn.java:229)
	at rewrite_cljc.reader$read_with_meta.invokeStatic(reader.cljc:136)
	at rewrite_cljc.reader$read_with_meta.invoke(reader.cljc:132)
	at rewrite_cljc.parser.core$parse_next.invokeStatic(core.cljc:33)
	at rewrite_cljc.parser.core$parse_next.invoke(core.cljc:31)
	at rewrite_cljc.parser.core$parse_delim$fn__14213.invoke(core.cljc:41)
	at rewrite_cljc.reader$read_repeatedly$fn__13624.invoke(reader.cljc:145)
	at clojure.core$repeatedly$fn__6480.invoke(core.clj:5138)
	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__5420.invokeStatic(core.clj:139)
	at clojure.core$take_while$fn__5936.invoke(core.clj:2908)
	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__5404.invokeStatic(core.clj:64)
	at clojure.core$dorun.invokeStatic(core.clj:3130)
	at clojure.core$doall.invokeStatic(core.clj:3136)
	at clojure.core$doall.invoke(core.clj:3136)
	at rewrite_cljc.reader$read_repeatedly.invokeStatic(reader.cljc:147)
	at rewrite_cljc.reader$read_repeatedly.invoke(reader.cljc:141)
	at rewrite_cljc.parser.core$parse_delim.invokeStatic(core.cljc:42)
	at rewrite_cljc.parser.core$parse_delim.invoke(core.cljc:37)
	at rewrite_cljc.parser.core$fn__14254.invokeStatic(core.cljc:176)
	at rewrite_cljc.parser.core$fn__14254.invoke(core.cljc:174)
	at clojure.lang.MultiFn.invoke(MultiFn.java:229)
	at rewrite_cljc.reader$read_with_meta.invokeStatic(reader.cljc:136)
	at rewrite_cljc.reader$read_with_meta.invoke(reader.cljc:132)
	at rewrite_cljc.parser.core$parse_next.invokeStatic(core.cljc:33)
	at rewrite_cljc.parser.core$parse_next.invoke(core.cljc:31)
	at rewrite_cljc.parser.core$parse_delim$fn__14213.invoke(core.cljc:41)
	at rewrite_cljc.reader$read_repeatedly$fn__13624.invoke(reader.cljc:145)
	at clojure.core$repeatedly$fn__6480.invoke(core.clj:5138)
	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__5420.invokeStatic(core.clj:139)
	at clojure.core$take_while$fn__5936.invoke(core.clj:2908)
	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__5404.invokeStatic(core.clj:64)
	at clojure.core$dorun.invokeStatic(core.clj:3130)
	at clojure.core$doall.invokeStatic(core.clj:3136)
	at clojure.core$doall.invoke(core.clj:3136)
	at rewrite_cljc.reader$read_repeatedly.invokeStatic(reader.cljc:147)
	at rewrite_cljc.reader$read_repeatedly.invoke(reader.cljc:141)
	at rewrite_cljc.parser.core$parse_delim.invokeStatic(core.cljc:42)
	at rewrite_cljc.parser.core$parse_delim.invoke(core.cljc:37)
	at rewrite_cljc.parser.core$fn__14254.invokeStatic(core.cljc:176)
	at rewrite_cljc.parser.core$fn__14254.invoke(core.cljc:174)
	at clojure.lang.MultiFn.invoke(MultiFn.java:229)
	at rewrite_cljc.reader$read_with_meta.invokeStatic(reader.cljc:136)
	at rewrite_cljc.reader$read_with_meta.invoke(reader.cljc:132)
	at rewrite_cljc.parser.core$parse_next.invokeStatic(core.cljc:33)
	at rewrite_cljc.parser.core$parse_next.invoke(core.cljc:31)
	at rewrite_cljc.parser$parse.invokeStatic(parser.cljc:16)
	at rewrite_cljc.parser$parse.invoke(parser.cljc:13)
	at rewrite_cljc.parser$parse_all$fn__14263.invoke(parser.cljc:21)
	at clojure.core$repeatedly$fn__6480.invoke(core.clj:5138)
	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__5420.invokeStatic(core.clj:139)
	at clojure.core$take_while$fn__5936.invoke(core.clj:2908)
	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__5404.invokeStatic(core.clj:64)
	at clojure.core$dorun.invokeStatic(core.clj:3130)
	at clojure.core$doall.invokeStatic(core.clj:3136)
	at clojure.core$doall.invoke(core.clj:3136)
	at rewrite_cljc.parser$parse_all.invokeStatic(parser.cljc:23)
	at rewrite_cljc.parser$parse_all.invoke(parser.cljc:18)
	at rewrite_cljc.parser$parse_file_all.invokeStatic(parser.cljc:54)
	at rewrite_cljc.parser$parse_file_all.invoke(parser.cljc:49)
	at rewrite_cljc.zip.base$of_file.invokeStatic(base.cljc:89)
	at rewrite_cljc.zip.base$of_file.invoke(base.cljc:80)
	at rewrite_cljc.zip.base$of_file.invokeStatic(base.cljc:87)
	at rewrite_cljc.zip.base$of_file.invoke(base.cljc:80)
	at carve.impl$carve_BANG_.invokeStatic(impl.clj:145)
	at carve.impl$carve_BANG_.invoke(impl.clj:142)
	at carve.impl$run_BANG_.invokeStatic(impl.clj:258)
	at carve.impl$run_BANG_.invoke(impl.clj:210)
	at carve.main$main.invokeStatic(main.clj:77)
	at carve.main$main.doInvoke(main.clj:64)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at clojure.core$apply.invokeStatic(core.clj:667)
	at clojure.core$apply.invoke(core.clj:662)
	at carve.main$_main.invokeStatic(main.clj:84)
	at carve.main$_main.doInvoke(main.clj:82)
	at clojure.lang.RestFn.applyTo(RestFn.java:137)
	at carve.main.main(Unknown Source)