Commit aad99ac 1 parent 3f54e14 commit aad99ac Copy full SHA for aad99ac
File tree 2 files changed +9
-6
lines changed
2 files changed +9
-6
lines changed Original file line number Diff line number Diff line change 148
148
(defn compile-all-java
149
149
([directories] (compile-all-java directories nil false ))
150
150
([directories options verbose?]
151
- (let [diag (DiagnosticCollector. )
151
+ (let [collector (DiagnosticCollector. )
152
152
options (ArrayList. (vec options))
153
153
name->source (generate-classname->source directories)]
154
154
(println " Compiling" (count name->source)" Java source files in" directories " ..." )
155
155
(binding [*print-compiled-classes* verbose?]
156
- (compile-java options diag name->source))
157
- (print-diagnostics diag))))
156
+ (compile-java options collector name->source))
157
+ (when-let [diags (seq (.getDiagnostics collector))]
158
+ (print-diagnostics diags)
159
+ (throw (ex-info (format " Compilation failed: %d error(s)." (count diags))
160
+ {:diagnostics diags}))))))
Original file line number Diff line number Diff line change 1
1
(ns virgil.util
2
2
" Utilities for cross-tooling."
3
- (:import (javax.tools DiagnosticCollector Diagnostic$Kind)))
3
+ (:import (javax.tools Diagnostic Diagnostic$Kind)))
4
4
5
5
(defn println-err [& args]
6
6
(binding [*out* *err*]
15
15
Diagnostic$Kind/MANDATORY_WARNING println-err
16
16
println))
17
17
18
- (defn print-diagnostics [^DiagnosticCollector diag-coll ]
19
- (doseq [d ( .getDiagnostics diag-coll) ]
18
+ (defn print-diagnostics [diagnostics ]
19
+ (doseq [^Diagnostic d diagnostics ]
20
20
(let [k (.getKind d)
21
21
log (infer-print-function k)]
22
22
(if (nil? (.getSource d))
You can’t perform that action at this time.
0 commit comments