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: non_local_definitions. This is because the derive macros from this crate use impl in a local context, const _DERIVE_Endpoint_FOR_???:
|
let const_name = format!("_DERIVE_Endpoint_FOR_{}", id); |
|
let const_ident = Ident::new(const_name.as_str(), Span::call_site()); |
|
quote! { |
|
const #const_ident: () = { |
Fortunately I believe a simple fix exist for this crate, by using a const-anon instead of named one (since const-anon are specialized to be "transparent" to their parent):
- let const_name = format!("_DERIVE_Endpoint_FOR_{}", id);
- let const_ident = Ident::new(const_name.as_str(), Span::call_site());
quote! {
- const #const_ident: () = {
+ 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 before or just after the PR is merged.
cc @jmgilman
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:
non_local_definitions. This is because the derive macros from this crate useimplin a local context,const _DERIVE_Endpoint_FOR_???:rustify/rustify_derive/src/lib.rs
Lines 305 to 308 in 68fdbdb
Fortunately I believe a simple fix exist for this crate, by using a const-anon instead of named one (since const-anon are specialized to be "transparent" to their parent):
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 before or just after the PR is merged.
cc @jmgilman