fluent_macro: fix diagnostics for fluent parse failures
This line number calculation was both wrong and unnecessary.
This commit is contained in:
parent
0a253246f7
commit
5b3bde953e
@ -138,25 +138,8 @@ pub(crate) fn fluent_messages(input: proc_macro::TokenStream) -> proc_macro::Tok
|
|||||||
// with a lowercase as rustc errors do.
|
// with a lowercase as rustc errors do.
|
||||||
err.replace_range(0..1, &err.chars().next().unwrap().to_lowercase().to_string());
|
err.replace_range(0..1, &err.chars().next().unwrap().to_lowercase().to_string());
|
||||||
|
|
||||||
let line_starts: Vec<usize> = 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(
|
let message = annotate_snippets::Level::Error.title(&err).snippet(
|
||||||
Snippet::source(this.source())
|
Snippet::source(this.source())
|
||||||
.line_start(line_start)
|
|
||||||
.origin(&relative_ftl_path)
|
.origin(&relative_ftl_path)
|
||||||
.fold(true)
|
.fold(true)
|
||||||
.annotation(annotate_snippets::Level::Error.span(pos.start..pos.end - 1)),
|
.annotation(annotate_snippets::Level::Error.span(pos.start..pos.end - 1)),
|
||||||
|
@ -112,9 +112,9 @@ LL | rustc_fluent_macro::fluent_messages! { "./many-lines.ftl" }
|
|||||||
= help: see additional errors emitted
|
= help: see additional errors emitted
|
||||||
|
|
||||||
error: expected a message field for "no_crate_bar"
|
error: expected a message field for "no_crate_bar"
|
||||||
--> ./many-lines.ftl:15:1
|
--> ./many-lines.ftl:8:1
|
||||||
|
|
|
|
||||||
15 | no_crate_bar =
|
8 | no_crate_bar =
|
||||||
| ^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^
|
||||||
|
|
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user