Rust RFC 3373: Avoid non-local definitions in functions was accepted and it's implementation at rust-lang/rust#120393 found that this crate would be affected by it.
To be more precise users of this crate would be affected by it, in the form of a warn-by-default lint. This is because the derive macros from this crate use impl in a local context, const _IMPL_NUM_???_FOR_???:
|
fn dummy_const_trick(trait_: &str, name: &Ident, exp: TokenStream2) -> TokenStream2 { |
|
let dummy_const = Ident::new( |
|
&format!("_IMPL_NUM_{}_FOR_{}", trait_, unraw(name)), |
|
Span::call_site(), |
|
); |
|
quote! { |
|
#[allow(non_upper_case_globals, unused_qualifications)] |
|
const #dummy_const: () = { |
Fortunately a simple fix exist for this crate, by using a const-anon instead of named one:
fn dummy_const_trick(trait_: &str, name: &Ident, exp: TokenStream2) -> TokenStream2 {
- let dummy_const = Ident::new(
- &format!("_IMPL_NUM_{}_FOR_{}", trait_, unraw(name)),
- Span::call_site(),
- );
quote! {
#[allow(non_upper_case_globals, unused_qualifications)]
- const #dummy_const: () = {
+ const _: () = {
I would suggest applying some form of the patch above as well as releasing a patch version of this crate, as to have a fix available for users as soon as possible.
cc @cuviper
Rust RFC 3373: Avoid non-local definitions in functions was accepted and it's implementation at rust-lang/rust#120393 found that this crate would be affected by it.
To be more precise users of this crate would be affected by it, in the form of a warn-by-default lint. This is because the derive macros from this crate use
implin a local context,const _IMPL_NUM_???_FOR_???:num-derive/src/lib.rs
Lines 102 to 109 in 50ecdb1
Fortunately a simple fix exist for this crate, by using a const-anon instead of named one:
fn dummy_const_trick(trait_: &str, name: &Ident, exp: TokenStream2) -> TokenStream2 { - let dummy_const = Ident::new( - &format!("_IMPL_NUM_{}_FOR_{}", trait_, unraw(name)), - Span::call_site(), - ); quote! { #[allow(non_upper_case_globals, unused_qualifications)] - const #dummy_const: () = { + const _: () = {I would suggest applying some form of the patch above as well as releasing a patch version of this crate, as to have a fix available for users as soon as possible.
cc @cuviper