figwheel-core
figwheel-core copied to clipboard
nil line and column numbers in warnings
sometimes warnings from the analyzer have nil
line and column numbers in env
leading to confusing stacktraces from figwheel, like this one:
cljs.user=> (require '[emmy.env :as e])
Exception in thread "pool-262-thread-1" java.io.IOException: Stream closed
at java.base/java.io.BufferedWriter.ensureOpen(BufferedWriter.java:132)
at java.base/java.io.BufferedWriter.implWrite(BufferedWriter.java:325)
at java.base/java.io.BufferedWriter.write(BufferedWriter.java:313)
at java.base/java.io.Writer.write(Writer.java:278)
at cljs.compiler$emits.invokeStatic(compiler.cljc:220)
at cljs.compiler$emits.invoke(compiler.cljc:207)
at cljs.compiler$emit_var.invokeStatic(compiler.cljc:497)
at cljs.compiler$emit_var.invoke(compiler.cljc:455)
at cljs.compiler$fn__4165.invokeStatic(compiler.cljc:499)
at cljs.compiler$fn__4165.invoke(compiler.cljc:499)
at clojure.lang.MultiFn.invoke(MultiFn.java:229)
at cljs.compiler$emit.invokeStatic(compiler.cljc:205)
at cljs.compiler$emit.invoke(compiler.cljc:185)
at cljs.compiler$emits.invokeStatic(compiler.cljc:212)
at cljs.compiler$emits.invoke(compiler.cljc:207)
at cljs.compiler$emits.invokeStatic(compiler.cljc:228)
at cljs.compiler$emits.invoke(compiler.cljc:207)
at cljs.compiler$fn__4543.invokeStatic(compiler.cljc:1254)
at cljs.compiler$fn__4543.invoke(compiler.cljc:1140)
at clojure.lang.MultiFn.invoke(MultiFn.java:229)
at cljs.compiler$emit.invokeStatic(compiler.cljc:205)
at cljs.compiler$emit.invoke(compiler.cljc:185)
at cljs.compiler$emits.invokeStatic(compiler.cljc:212)
at cljs.compiler$emits.invoke(compiler.cljc:207)
at cljs.compiler$emitln.invokeStatic(compiler.cljc:253)
at cljs.compiler$emitln.invoke(compiler.cljc:246)
at cljs.compiler$emit_let$fn__4506.invoke(compiler.cljc:1101)
at cljs.compiler$emit_let.invokeStatic(compiler.cljc:1089)
at cljs.compiler$emit_let.invoke(compiler.cljc:1085)
at cljs.compiler$fn__4517.invokeStatic(compiler.cljc:1110)
at cljs.compiler$fn__4517.invoke(compiler.cljc:1109)
at clojure.lang.MultiFn.invoke(MultiFn.java:229)
at cljs.compiler$emit.invokeStatic(compiler.cljc:205)
at cljs.compiler$emit.invoke(compiler.cljc:185)
at cljs.compiler$fn__4486.invokeStatic(compiler.cljc:1065)
at cljs.compiler$fn__4486.invoke(compiler.cljc:1060)
at clojure.lang.MultiFn.invoke(MultiFn.java:229)
at cljs.compiler$emit.invokeStatic(compiler.cljc:205)
at cljs.compiler$emit.invoke(compiler.cljc:185)
at cljs.compiler$emits.invokeStatic(compiler.cljc:212)
at cljs.compiler$emits.invoke(compiler.cljc:207)
at cljs.compiler$emit_fn_method.invokeStatic(compiler.cljc:905)
at cljs.compiler$emit_fn_method.invoke(compiler.cljc:896)
at cljs.compiler$fn__4432.invokeStatic(compiler.cljc:996)
at cljs.compiler$fn__4432.invoke(compiler.cljc:975)
at clojure.lang.MultiFn.invoke(MultiFn.java:229)
at cljs.compiler$emit.invokeStatic(compiler.cljc:205)
at cljs.compiler$emit.invoke(compiler.cljc:185)
at cljs.compiler$emits.invokeStatic(compiler.cljc:212)
at cljs.compiler$emits.invoke(compiler.cljc:207)
at cljs.compiler$emits.invokeStatic(compiler.cljc:224)
at cljs.compiler$emits.invoke(compiler.cljc:207)
at cljs.compiler$fn__4365.invokeStatic(compiler.cljc:830)
at cljs.compiler$fn__4365.invoke(compiler.cljc:814)
at clojure.lang.MultiFn.invoke(MultiFn.java:229)
at cljs.compiler$emit.invokeStatic(compiler.cljc:205)
at cljs.compiler$emit.invoke(compiler.cljc:185)
at cljs.compiler$emit_source$fn__4769$fn__4770.invoke(compiler.cljc:1578)
at clojure.lang.AFn.applyToHelper(AFn.java:152)
at clojure.lang.AFn.applyTo(AFn.java:144)
at clojure.core$apply.invokeStatic(core.clj:667)
at clojure.core$with_bindings_STAR_.invokeStatic(core.clj:1990)
at clojure.core$with_bindings_STAR_.doInvoke(core.clj:1990)
at clojure.lang.RestFn.invoke(RestFn.java:425)
at clojure.lang.AFn.applyToHelper(AFn.java:156)
at clojure.lang.RestFn.applyTo(RestFn.java:132)
at clojure.core$apply.invokeStatic(core.clj:671)
at clojure.core$bound_fn_STAR_$fn__5818.doInvoke(core.clj:2020)
at clojure.lang.RestFn.invoke(RestFn.java:397)
at clojure.lang.AFn.run(AFn.java:22)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1589)
Could not Analyze /Users/me/libs/emmy/src/emmy/calculus/manifold.cljc line:328 column:1
Cannot invoke "Object.getClass()" because "x" is null
323 (swap! reps assoc coordsys-id rep)
324 rep))))
325
326 ;; ## Coordinate System Protocol
327
328 (defprotocol ICoordinateSystem
^---
329 (check-coordinates [this coords]
330 "Returns true if the supplied coordinates `coords` can be converted into a
331 point by this [[ICoordinateSystem]], false otherwise.")
332
333 (check-point [this point]
[Figwheel:FINE] {:via
[{:type clojure.lang.ExceptionInfo,
:message
"failed compiling file:/Users/me/libs/emmy/src/emmy/calculus/manifold.cljc",
:data
{:file
#object[java.io.File 0x56ce0466 "/Users/me/libs/emmy/src/emmy/calculus/manifold.cljc"],
:clojure.error/phase :compilation},
:at
[cljs.compiler$compile_file$fn__4816 invoke "compiler.cljc" 1769]}
{:type clojure.lang.ExceptionInfo,
:data
#:clojure.error{:source
"/Users/me/libs/emmy/src/emmy/calculus/manifold.cljc",
:line 328,
:column 1,
:phase :compilation},
:at
[cljs.analyzer$analyze_seq_STAR__wrap
invokeStatic
"analyzer.cljc"
4096]}
{:type clojure.lang.ExceptionInfo,
:message
"Cannot invoke \"Object.getClass()\" because \"x\" is null at line 328 /Users/me/libs/emmy/src/emmy/calculus/manifold.cljc",
:data
{:file "/Users/me/libs/emmy/src/emmy/calculus/manifold.cljc",
:line 328,
:column 1,
:tag :cljs/analysis-error},
:at [cljs.analyzer$error invokeStatic "analyzer.cljc" 782]}
{:type java.lang.NullPointerException,
:message
"Cannot invoke \"Object.getClass()\" because \"x\" is null",
:at [clojure.lang.Numbers ops "Numbers.java" 1095]}],
:trace
[[clojure.lang.Numbers ops "Numbers.java" 1095]
[clojure.lang.Numbers minus "Numbers.java" 164]
[clojure.lang.Numbers minus "Numbers.java" 3795]
[figwheel.core$warning_info invokeStatic "core.cljc" 668]
[figwheel.core$warning_info invoke "core.cljc" 660]
[figwheel.main$repl$fn__9429 invoke "main.cljc" 1895]
[cljs.analyzer$warning invokeStatic "analyzer.cljc" 754]
[cljs.analyzer$warning invoke "analyzer.cljc" 752]
[cljs.core$defprotocol$method__5399 invoke "core.cljc" 2159]
[clojure.core$map$fn__5935 invoke "core.clj" 2770]
[clojure.lang.LazySeq sval "LazySeq.java" 42]
[clojure.lang.LazySeq seq "LazySeq.java" 51]
[clojure.lang.RT seq "RT.java" 535]
[clojure.core$seq__5467 invokeStatic "core.clj" 139]
[clojure.core$concat$cat__5560$fn__5561 invoke "core.clj" 736]
[clojure.lang.LazySeq sval "LazySeq.java" 42]
[clojure.lang.LazySeq seq "LazySeq.java" 58]
[clojure.lang.Cons next "Cons.java" 39]
[clojure.lang.RT next "RT.java" 713]
[clojure.core$next__5451 invokeStatic "core.clj" 64]
[clojure.core$butlast__5495 invokeStatic "core.clj" 281]
[clojure.core$butlast__5495 invoke "core.clj" 279]
[cljs.analyzer$analyze_do_statements_STAR_
invokeStatic
"analyzer.cljc"
2359]
[cljs.analyzer$analyze_do_statements_STAR_
invoke
"analyzer.cljc"
2358]
[cljs.analyzer$analyze_do_statements
invokeStatic
"analyzer.cljc"
2362]
[cljs.analyzer$analyze_do_statements invoke "analyzer.cljc" 2361]
[cljs.analyzer$fn__2653 invokeStatic "analyzer.cljc" 2366]
[cljs.analyzer$fn__2653 invoke "analyzer.cljc" 2364]
[clojure.lang.MultiFn invoke "MultiFn.java" 252]
[cljs.analyzer$analyze_seq_STAR_ invokeStatic "analyzer.cljc" 4092]
[cljs.analyzer$analyze_seq_STAR_ invoke "analyzer.cljc" 4090]
[cljs.analyzer$analyze_seq_STAR__wrap
invokeStatic
"analyzer.cljc"
4097]
[cljs.analyzer$analyze_seq_STAR__wrap invoke "analyzer.cljc" 4095]
[cljs.analyzer$analyze_seq invokeStatic "analyzer.cljc" 4121]
[cljs.analyzer$analyze_seq invoke "analyzer.cljc" 4099]
[cljs.analyzer$analyze_form invokeStatic "analyzer.cljc" 4308]
[cljs.analyzer$analyze_form invoke "analyzer.cljc" 4305]
[cljs.analyzer$analyze_STAR_ invokeStatic "analyzer.cljc" 4361]
[cljs.analyzer$analyze_STAR_ invoke "analyzer.cljc" 4353]
[cljs.analyzer$analyze invokeStatic "analyzer.cljc" 4381]
[cljs.analyzer$analyze invoke "analyzer.cljc" 4364]
[cljs.analyzer$analyze_seq invokeStatic "analyzer.cljc" 4122]
[cljs.analyzer$analyze_seq invoke "analyzer.cljc" 4099]
[cljs.analyzer$analyze_form invokeStatic "analyzer.cljc" 4308]
[cljs.analyzer$analyze_form invoke "analyzer.cljc" 4305]
[cljs.analyzer$analyze_STAR_ invokeStatic "analyzer.cljc" 4361]
[cljs.analyzer$analyze_STAR_ invoke "analyzer.cljc" 4353]
[cljs.analyzer$analyze invokeStatic "analyzer.cljc" 4381]
[cljs.analyzer$analyze invoke "analyzer.cljc" 4364]
[cljs.compiler$emit_source invokeStatic "compiler.cljc" 1585]
[cljs.compiler$emit_source invoke "compiler.cljc" 1558]
[cljs.compiler$compile_file_STAR_$fn__4785
invoke
"compiler.cljc"
1672]
[cljs.compiler$with_core_cljs invokeStatic "compiler.cljc" 1478]
[cljs.compiler$with_core_cljs invoke "compiler.cljc" 1467]
[cljs.compiler$compile_file_STAR_ invokeStatic "compiler.cljc" 1656]
[cljs.compiler$compile_file_STAR_ invoke "compiler.cljc" 1649]
[cljs.compiler$compile_file$fn__4816 invoke "compiler.cljc" 1754]
[cljs.compiler$compile_file invokeStatic "compiler.cljc" 1729]
[cljs.compiler$compile_file invoke "compiler.cljc" 1705]
[cljs.closure$compile_file invokeStatic "closure.clj" 663]
[cljs.closure$compile_file invoke "closure.clj" 641]
[cljs.closure$fn__6491 invokeStatic "closure.clj" 737]
[cljs.closure$fn__6491 invoke "closure.clj" 731]
[cljs.closure$fn__6400$G__6393__6407 invoke "closure.clj" 559]
[cljs.closure$fn__6495 invokeStatic "closure.clj" 746]
[cljs.closure$fn__6495 invoke "closure.clj" 731]
[cljs.closure$fn__6400$G__6393__6407 invoke "closure.clj" 559]
[cljs.closure$compile_task$fn__6587 invoke "closure.clj" 1057]
[cljs.closure$compile_task invokeStatic "closure.clj" 1055]
[cljs.closure$compile_task invoke "closure.clj" 1047]
[cljs.closure$parallel_compile_sources$fn__6593
invoke
"closure.clj"
1085]
[clojure.lang.AFn applyToHelper "AFn.java" 152]
[clojure.lang.AFn applyTo "AFn.java" 144]
[clojure.core$apply invokeStatic "core.clj" 667]
[clojure.core$with_bindings_STAR_ invokeStatic "core.clj" 1990]
[clojure.core$with_bindings_STAR_ doInvoke "core.clj" 1990]
[clojure.lang.RestFn invoke "RestFn.java" 425]
[clojure.lang.AFn applyToHelper "AFn.java" 156]
[clojure.lang.RestFn applyTo "RestFn.java" 132]
[clojure.core$apply invokeStatic "core.clj" 671]
[clojure.core$bound_fn_STAR_$fn__5818 doInvoke "core.clj" 2020]
[clojure.lang.RestFn invoke "RestFn.java" 397]
[clojure.lang.AFn run "AFn.java" 22]
[java.util.concurrent.ThreadPoolExecutor
runWorker
"ThreadPoolExecutor.java"
1144]
[java.util.concurrent.ThreadPoolExecutor$Worker
run
"ThreadPoolExecutor.java"
642]
[java.lang.Thread run "Thread.java" 1589]],
:cause "Cannot invoke \"Object.getClass()\" because \"x\" is null",
:phase :compilation}
cljs.user=>
(the require
worked when I changed figwheel.core
to or
those line & column numbers with 0 so figwheel didn't throw an exception if they were nil
)