aboutsummaryrefslogtreecommitdiff
path: root/mingling_cli/src
diff options
context:
space:
mode:
Diffstat (limited to 'mingling_cli/src')
-rw-r--r--mingling_cli/src/linter/mlint_report.rs12
1 files changed, 8 insertions, 4 deletions
diff --git a/mingling_cli/src/linter/mlint_report.rs b/mingling_cli/src/linter/mlint_report.rs
index 0472056..b594b9d 100644
--- a/mingling_cli/src/linter/mlint_report.rs
+++ b/mingling_cli/src/linter/mlint_report.rs
@@ -10,7 +10,7 @@ use cargo_metadata::{Message, PackageId};
use annotate_snippets::level::{ERROR, HELP, NOTE, WARNING};
use annotate_snippets::{AnnotationKind, Group, Patch, Renderer, Snippet};
use mingling::macros::{buffer, chain, pack, r_append, r_eprintln, renderer};
-use mingling::{AnyOutput, ProgramCollect, Routable};
+use mingling::{RendererInvoker, Routable};
use crate::Next;
use crate::metadata::setup::ResUsingJson;
@@ -437,9 +437,13 @@ pub fn render_lint_reports(reports: ResultLintReportsAnnotateSnippet) {
}
#[renderer(buffer)]
-pub fn render_lint_reports_json(reports: ResultLintReportsJson) {
+pub fn render_lint_reports_json(
+ reports: ResultLintReportsJson,
+ message_renderer: &RendererInvoker<Message>,
+) {
for report in reports.inner {
- // DIRTY: Dispatch to the Message renderer using AnyOutput to obtain the render result and append it to the Buffer
- r_append!(|| { crate::ThisProgram::render(AnyOutput::new(report.to_compiler_message())) });
+ let message = report.to_compiler_message();
+ let result = message_renderer.invoke(message);
+ r_append!(result);
}
}