From 5b3bde953ed70df2f22650f77cf5c13a4dc15836 Mon Sep 17 00:00:00 2001 From: Xiretza Date: Mon, 19 Aug 2024 07:46:17 +0000 Subject: [PATCH] fluent_macro: fix diagnostics for fluent parse failures This line number calculation was both wrong and unnecessary. --- compiler/rustc_fluent_macro/src/fluent.rs | 17 ----------------- tests/ui-fulldeps/fluent-messages/test.stderr | 10 +++++----- 2 files changed, 5 insertions(+), 22 deletions(-) diff --git a/compiler/rustc_fluent_macro/src/fluent.rs b/compiler/rustc_fluent_macro/src/fluent.rs index ca8bace28f3..37e610a85a6 100644 --- a/compiler/rustc_fluent_macro/src/fluent.rs +++ b/compiler/rustc_fluent_macro/src/fluent.rs @@ -138,25 +138,8 @@ pub(crate) fn fluent_messages(input: proc_macro::TokenStream) -> proc_macro::Tok // with a lowercase as rustc errors do. err.replace_range(0..1, &err.chars().next().unwrap().to_lowercase().to_string()); - let line_starts: Vec = std::iter::once(0) - .chain( - this.source() - .char_indices() - .filter_map(|(i, c)| Some(i + 1).filter(|_| c == '\n')), - ) - .collect(); - let line_start = line_starts - .iter() - .enumerate() - .map(|(line, idx)| (line + 1, idx)) - .filter(|(_, idx)| **idx <= pos.start) - .last() - .unwrap() - .0; - let message = annotate_snippets::Level::Error.title(&err).snippet( Snippet::source(this.source()) - .line_start(line_start) .origin(&relative_ftl_path) .fold(true) .annotation(annotate_snippets::Level::Error.span(pos.start..pos.end - 1)), diff --git a/tests/ui-fulldeps/fluent-messages/test.stderr b/tests/ui-fulldeps/fluent-messages/test.stderr index 139790462f0..0b3bb14ce51 100644 --- a/tests/ui-fulldeps/fluent-messages/test.stderr +++ b/tests/ui-fulldeps/fluent-messages/test.stderr @@ -112,11 +112,11 @@ LL | rustc_fluent_macro::fluent_messages! { "./many-lines.ftl" } = help: see additional errors emitted error: expected a message field for "no_crate_bar" - --> ./many-lines.ftl:15:1 - | -15 | no_crate_bar = - | ^^^^^^^^^^^^^^ - | + --> ./many-lines.ftl:8:1 + | +8 | no_crate_bar = + | ^^^^^^^^^^^^^^ + | error: aborting due to 14 previous errors