From db0ffd815a10cfc29e36e02670c1cbb884d5eef7 Mon Sep 17 00:00:00 2001 From: natepiano Date: Fri, 23 Jan 2026 18:58:44 +0200 Subject: [PATCH 1/2] Workaround rustfmt panic on `quote!(Self(#var))` in Rust 1.93.0 Fixes CI failure in `cargo fmt --all -- --check` caused by a rustfmt regression in Rust 1.93.0 where `quote!(Self(#interpolated_var))` triggers a panic. Upstream issue: https://github.com/rust-lang/rustfmt/issues/6779 --- crates/bevy_reflect/derive/src/from_reflect.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/crates/bevy_reflect/derive/src/from_reflect.rs b/crates/bevy_reflect/derive/src/from_reflect.rs index e046705f5bdb2..0ab96deb6ff79 100644 --- a/crates/bevy_reflect/derive/src/from_reflect.rs +++ b/crates/bevy_reflect/derive/src/from_reflect.rs @@ -146,6 +146,10 @@ fn impl_struct_internal( // The constructed "Self" ident let __this = Ident::new("__this", Span::call_site()); + // Workaround for rustfmt issue: https://github.com/rust-lang/rustfmt/issues/6779 + // `quote!(Self(#__this))` causes rustfmt to panic in Rust 1.93.0+ + let self_ty = quote!(Self); + // The reflected type: either `Self` or a remote type let (reflect_ty, constructor, retval) = if let Some(remote_ty) = remote_ty { let constructor = match remote_ty.as_expr_path() { @@ -157,10 +161,10 @@ fn impl_struct_internal( ( quote!(#remote_ty), quote!(#constructor), - quote!(Self(#__this)), + quote!(#self_ty(#__this)), ) } else { - (quote!(Self), quote!(Self), quote!(#__this)) + (quote!(#self_ty), quote!(#self_ty), quote!(#__this)) }; let constructor = if is_defaultable { From ef7268a84fe85eb48b89e9ca53bbf700df958420 Mon Sep 17 00:00:00 2001 From: Alice Cecile Date: Sun, 25 Jan 2026 18:55:29 -0500 Subject: [PATCH 2/2] Leave TODO note MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: François Mockers --- crates/bevy_reflect/derive/src/from_reflect.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/crates/bevy_reflect/derive/src/from_reflect.rs b/crates/bevy_reflect/derive/src/from_reflect.rs index 0ab96deb6ff79..a0f3ec43ad079 100644 --- a/crates/bevy_reflect/derive/src/from_reflect.rs +++ b/crates/bevy_reflect/derive/src/from_reflect.rs @@ -148,6 +148,7 @@ fn impl_struct_internal( // Workaround for rustfmt issue: https://github.com/rust-lang/rustfmt/issues/6779 // `quote!(Self(#__this))` causes rustfmt to panic in Rust 1.93.0+ + // TODO: not needed after Rust 1.94 let self_ty = quote!(Self); // The reflected type: either `Self` or a remote type