类似于CLJ-2463,但针对ClojureScript。
使用{{950032dba300451835c4c7c2a0c1c74ca6d0b49a}}复现,这是截至2019年1月25日的最新版本。
理想情况下应该只打印一个简短的错误消息,就像你在REPL中看到的那样
cljs.user=> :::a
语法错误读取源文件在(REPL:1)。
<NO_SOURCE_FILE> [行 1,列 5] 无效关键字: :::a。
复现
clj -Sdeps '{:deps {org.clojure/clojurescript {:git/url "
https://github.com/clojure/clojurescript" :sha "950032dba300451835c4c7c2a0c1c74ca6d0b49a"}}}' -m cljs.main -e :::a
在主线程中抛出异常 clojure.lang.ExceptionInfo: [行 1,列 5] 无效关键字: :::a. {:type :reader-exception, :ex-kind :reader-error, :file nil, :line 1, :col 5}
在clojure.tools.reader.impl.errors$throw_ex.invokeStatic(errors.clj:34)
在clojure.tools.reader.impl.errors$throw_ex.doInvoke(errors.clj:24)
在clojure.lang.RestFn.invoke(RestFn.java:442)
在clojure.tools.reader.impl.errors$reader_error.invokeStatic(errors.clj:40)
在clojure.tools.reader.impl.errors$reader_error.doInvoke(errors.clj:36)
在clojure.lang.RestFn.invoke(RestFn.java:516)
在clojure.tools.reader.impl.errors$throw_invalid.invokeStatic(errors.clj:97)
在clojure.tools.reader.impl.errors$throw_invalid.invoke(errors.clj:96)
在clojure.tools.reader$read_keyword.invokeStatic(reader.clj:360)
在clojure.tools.reader$read_keyword.invoke(reader.clj:343)
在clojure.tools.reader$read_STAR_.invokeStatic(reader.clj:924)
在clojure.tools.reader$read_STAR_.invoke(reader.clj:906)
在clojure.tools.reader$read.invokeStatic(reader.clj:977)
在clojure.tools.reader$read.invoke(reader.clj:950)
在cljs.analyzer$forms_seq_STAR_$forms_seq___3646$fn__3647$fn__3648.invoke(analyzer.cljc:4189)
在cljs.analyzer$forms_seq_STAR_$forms_seq___3646$fn__3647.invoke(analyzer.cljc:4182)
在clojure.lang.LazySeq.sval(LazySeq.java:42)
在clojure.lang.LazySeq.seq(LazySeq.java:51)
在clojure.lang.RT.seq(RT.java:531)
在clojure.core$seq__5387.invokeStatic(core.clj:137)
在clojure.core$seq__5387.invoke(core.clj:137)
在cljs.repl$run_inits$fn__9013.invoke(repl.cljc:1009)
在cljs.repl$run_inits.invokeStatic(repl.cljc:1008)
在cljs.repl$run_inits.invoke(repl.cljc:1001)
在cljs.cli$default_main$fn__9420.invoke(cli.clj:368)
在cljs.compiler$with_core_cljs.invokeStatic(compiler.cljc:1417)
在cljs.compiler$with_core_cljs.invoke(compiler.cljc:1406)
在cljs.compiler.api$with_core_cljs.invokeStatic(api.clj:50)
在cljs.compiler.api$with_core_cljs.invoke(api.clj:34)
在cljs.compiler.api$with_core_cljs.invokeStatic(api.clj:42)
在cljs.compiler.api$with_core_cljs.invoke(api.clj:34)
在cljs.cli$default_main.invokeStatic(cli.clj:353)
在cljs.cli$default_main.invoke(cli.clj:326)
在cljs.cli$null_opt.invokeStatic(cli.clj:424)
在cljs.cli$null_opt.invoke(cli.clj:421)
在cljs.cli$main.invokeStatic(cli.clj:648)
在cljs.cli$main.doInvoke(cli.clj:637)
在 clojure.lang.RestFn.applyTo(RestFn.java:139)
在 clojure.core$apply.invokeStatic(core.clj:667)
在 clojure.core$apply.invoke(core.clj:660)
在 cljs.main$_main.invokeStatic(main.clj:61)
在 cljs.main$_main.doInvoke(main.clj:52)
在 clojure.lang.RestFn.applyTo(RestFn.java:137)
在 clojure.lang.Var.applyTo(Var.java:705)
在 clojure.core$apply.invokeStatic(core.clj:665)
在 clojure.main$main_opt.invokeStatic(main.clj:491)
在 clojure.main$main_opt.invoke(main.clj:487)
在 clojure.main$main.invokeStatic(main.clj:598)
在 clojure.main$main.doInvoke(main.clj:561)
在 clojure.lang.RestFn.applyTo(RestFn.java:137)
在 clojure.lang.Var.applyTo(Var.java:705)
在 clojure.main.main(main.java:37)