diff options
Diffstat (limited to 'lib/elixir/src/elixir_errors.erl')
-rw-r--r-- | lib/elixir/src/elixir_errors.erl | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/elixir/src/elixir_errors.erl b/lib/elixir/src/elixir_errors.erl index 4a907f207..16874a1d6 100644 --- a/lib/elixir/src/elixir_errors.erl +++ b/lib/elixir/src/elixir_errors.erl @@ -33,7 +33,7 @@ print_diagnostic(#{severity := Severity, message := Message, stacktrace := Stack [["\n ", 'Elixir.Exception':format_stacktrace_entry(E)] || E <- Stacktrace] end, io:put_chars(standard_error, [prefix(Severity), Message, Location, "\n\n"]), - ok. + Diagnostic. emit_diagnostic(Severity, Position, File, Message, Stacktrace) -> Diagnostic = #{ @@ -44,7 +44,11 @@ emit_diagnostic(Severity, Position, File, Message, Stacktrace) -> stacktrace => Stacktrace }, - print_diagnostic(Diagnostic), + case get(elixir_code_diagnostics) of + undefined -> print_diagnostic(Diagnostic); + {Tail, true} -> put(elixir_code_diagnostics, {[print_diagnostic(Diagnostic) | Tail], true}); + {Tail, false} -> put(elixir_code_diagnostics, {[Diagnostic | Tail], false}) + end, case get(elixir_compiler_info) of undefined -> ok; |