mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 06:44:35 +00:00
fluent: mandate slug names to be prefixed by crate name
This commit is contained in:
parent
d0ea1d7679
commit
c9b1a5874d
@ -14,7 +14,7 @@ privacy_in_public_interface = {$vis_descr} {$kind} `{$descr}` in public interfac
|
||||
privacy_from_private_dep_in_public_interface =
|
||||
{$kind} `{$descr}` from private dependency '{$krate}' in public interface
|
||||
|
||||
private_in_public_lint =
|
||||
privacy_private_in_public_lint =
|
||||
{$vis_descr} {$kind} `{$descr}` in public interface (error {$kind ->
|
||||
[trait] E0445
|
||||
*[other] E0446
|
||||
|
@ -205,11 +205,23 @@ pub(crate) fn fluent_messages(input: proc_macro::TokenStream) -> proc_macro::Tok
|
||||
// The last case we error about above, but we want to fall back gracefully
|
||||
// so that only the error is being emitted and not also one about the macro
|
||||
// failing.
|
||||
let snake_name = Ident::new(
|
||||
// FIXME: should probably trim prefix, not replace all occurrences
|
||||
&name.replace('-', "_").replace(&format!("{}_", res.ident), ""),
|
||||
span,
|
||||
);
|
||||
let crate_prefix = format!("{}_", res.ident);
|
||||
|
||||
let snake_name = name.replace('-', "_");
|
||||
let snake_name = match snake_name.strip_prefix(&crate_prefix) {
|
||||
Some(rest) => Ident::new(rest, span),
|
||||
None => {
|
||||
Diagnostic::spanned(
|
||||
ident_span,
|
||||
Level::Error,
|
||||
format!("name `{name}` does not start with the crate name"),
|
||||
)
|
||||
.help(format!("prepend `{crate_prefix}` to the slug name: `{crate_prefix}{snake_name}`"))
|
||||
.emit();
|
||||
Ident::new(&snake_name, span)
|
||||
}
|
||||
};
|
||||
|
||||
constants.extend(quote! {
|
||||
pub const #snake_name: crate::DiagnosticMessage =
|
||||
crate::DiagnosticMessage::FluentIdentifier(
|
||||
|
Loading…
Reference in New Issue
Block a user