Update bytemuck_derive to 1.8.1

Test: m
Change-Id: I9f8d2b94deaaab0267a29bd74d1f6d7ebb894690
diff --git a/crates/bytemuck_derive/.android-checksum.json b/crates/bytemuck_derive/.android-checksum.json
index bb902cd..76e6007 100644
--- a/crates/bytemuck_derive/.android-checksum.json
+++ b/crates/bytemuck_derive/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"93ee1c559596816b9174b5417b871fb4251c5c90b81ed13c895f1d2ddbd2f985","Android.bp":"0ce2998c18742159c104396fe43a7d7ec5e09ef69039f2094f4b5f4e14ee1712","Cargo.toml":"44530987c58a237137171c46024c0e1748d017857f4e5f3c3a53ffd0fb4b0a09","LICENSE":"26c86e25199583069f0f8205e7a76be5bc10af20d9204df80f281a2ea9520941","LICENSE-APACHE":"26c86e25199583069f0f8205e7a76be5bc10af20d9204df80f281a2ea9520941","LICENSE-MIT":"cec4013700872627ee18d2128d3bbde3e1bf1912a61eec493299dc0f434300fb","LICENSE-ZLIB":"a5748e7b6f484bb179d81e382c7cf9526f2da5dc1b027844ae85ed0b739cb56d","METADATA":"9b63c95b95ffd255174c2f14113c1ec609e408d3505f5882ee933fec50e0222d","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"9ad55c0eb37f7af0fb65cdc127877160ea0f80c5e603baeec8e0d56a5b5561cc","cargo_embargo.json":"aa45a963da01d3f018be316cd5b7646a5b413ce2611c5218f2914d2e8a9efd0e","changelog.md":"88b295be621a357fe47cb34523ebdc79ea387341438d2a008836a424bef9107f","src/lib.rs":"7457a7a522cd9e3df11e6a19c45430ba75a7a18f4068c682ce916b3d9aa5c3b8","src/traits.rs":"1a932133d6dfb97186fda6c3bcc1ad7529e8cbc9bb8f17904f0f076bd34e4481","tests/basic.rs":"7899d9643c558d46beebae9d3ac2c07705f0128dee6ec35b316c00981e033e4d"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"e4ee0b1bd553e570de5db41cda3940c9b07af519c2fb0f2ab378f342f0e4a92f","Android.bp":"aa6fead74b01d7f33f9df63748546fbfa21d33195de1c5a21b73a94f0327f5de","Cargo.toml":"374db6c8a35d1ce7fa5bac692aa25b958d300143db568f28b89636fb5d57b46f","LICENSE":"26c86e25199583069f0f8205e7a76be5bc10af20d9204df80f281a2ea9520941","LICENSE-APACHE":"26c86e25199583069f0f8205e7a76be5bc10af20d9204df80f281a2ea9520941","LICENSE-MIT":"cec4013700872627ee18d2128d3bbde3e1bf1912a61eec493299dc0f434300fb","LICENSE-ZLIB":"a5748e7b6f484bb179d81e382c7cf9526f2da5dc1b027844ae85ed0b739cb56d","METADATA":"e0a212a08f51629c9cdd4bcec9b7a32caf9b37d0a17b5e9ea3bf7321787efe4c","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"9ad55c0eb37f7af0fb65cdc127877160ea0f80c5e603baeec8e0d56a5b5561cc","cargo_embargo.json":"aa45a963da01d3f018be316cd5b7646a5b413ce2611c5218f2914d2e8a9efd0e","changelog.md":"1909a39ed7dfcc2f070340f6814d8b3b32acf0bc17b90bc65b051a074a038816","src/lib.rs":"7457a7a522cd9e3df11e6a19c45430ba75a7a18f4068c682ce916b3d9aa5c3b8","src/traits.rs":"5ac4b210e85fef6de818909063df8dd663c371d4ba6a66de7ba3e0119fc263d8","tests/basic.rs":"efee0fe9c11ecddce8fad32a543fa55a8a567a2bac95cd0814bf4087ba617980"}}
\ No newline at end of file
diff --git a/crates/bytemuck_derive/.cargo-checksum.json b/crates/bytemuck_derive/.cargo-checksum.json
index 6050b77..c94d743 100644
--- a/crates/bytemuck_derive/.cargo-checksum.json
+++ b/crates/bytemuck_derive/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.toml":"eb59635b1dbdcebec55b8d659d46ccf8c11a70c29b73aa6e596a36f18430d76f","LICENSE-APACHE":"870e20c217d15bcfcbe53d7c5867cd8fac44a4ca0b41fc1eb843557e16063eba","LICENSE-MIT":"0b2d108c9c686a74ac312990ee8377902756a2a081a7af3b0f9d68abf0a8f1a1","LICENSE-ZLIB":"682b4c81b85e83ce6cc6e1ace38fdd97aeb4de0e972bd2b44aa0916c54af8c96","README.md":"c44fcbb0a6555b948e7c0b26313ecdc5f3079ebd1ae74aadcc42fd1ba1245540","changelog.md":"aa98c2da53872d27a22c05b6ad3f79ab6a2b6d1f0c57d00198d0d6936736288e","src/lib.rs":"4514b4458c6968b6d80815c0d77a3babf341d29484deb9221091311fc90bd482","src/traits.rs":"776a3f915478970ec3e4f5629f50d179094c56cdbe9e2e09e72e13697b359ced","tests/basic.rs":"6bc13c649c0e42b3cb008de7640d8531fa54e61ef1e083b614fd4c3e14b97cb9"},"package":"bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec"}
\ No newline at end of file
+{"files":{"Cargo.toml":"11f3717530ac2c9e35e816b5cb27d4368a0d0a7ad59479922d99d569f9669a80","LICENSE-APACHE":"870e20c217d15bcfcbe53d7c5867cd8fac44a4ca0b41fc1eb843557e16063eba","LICENSE-MIT":"0b2d108c9c686a74ac312990ee8377902756a2a081a7af3b0f9d68abf0a8f1a1","LICENSE-ZLIB":"682b4c81b85e83ce6cc6e1ace38fdd97aeb4de0e972bd2b44aa0916c54af8c96","README.md":"c44fcbb0a6555b948e7c0b26313ecdc5f3079ebd1ae74aadcc42fd1ba1245540","changelog.md":"39618d97244931aafa42785cca7900631fc940f1140148cf091484defb5ca93e","src/lib.rs":"4514b4458c6968b6d80815c0d77a3babf341d29484deb9221091311fc90bd482","src/traits.rs":"e46a008f52322aab531d5e34bd52dbfde2ad9ed9ed4dc94cce59e652afe1cdb0","tests/basic.rs":"65bd5619d9277c45d93b2076e5eb167bc68cf9131d38ee954645ab2a51b00319"},"package":"3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a"}
\ No newline at end of file
diff --git a/crates/bytemuck_derive/Android.bp b/crates/bytemuck_derive/Android.bp
index 091262b..24bb367 100644
--- a/crates/bytemuck_derive/Android.bp
+++ b/crates/bytemuck_derive/Android.bp
@@ -17,7 +17,7 @@
     name: "libbytemuck_derive",
     crate_name: "bytemuck_derive",
     cargo_env_compat: true,
-    cargo_pkg_version: "1.8.0",
+    cargo_pkg_version: "1.8.1",
     crate_root: "src/lib.rs",
     edition: "2018",
     rustlibs: [
diff --git a/crates/bytemuck_derive/Cargo.toml b/crates/bytemuck_derive/Cargo.toml
index db094c0..bb2368b 100644
--- a/crates/bytemuck_derive/Cargo.toml
+++ b/crates/bytemuck_derive/Cargo.toml
@@ -12,7 +12,7 @@
 [package]
 edition = "2018"
 name = "bytemuck_derive"
-version = "1.8.0"
+version = "1.8.1"
 authors = ["Lokathor <[email protected]>"]
 build = false
 autobins = false
diff --git a/crates/bytemuck_derive/METADATA b/crates/bytemuck_derive/METADATA
index 450d3e5..46df856 100644
--- a/crates/bytemuck_derive/METADATA
+++ b/crates/bytemuck_derive/METADATA
@@ -1,17 +1,17 @@
 name: "bytemuck_derive"
 description: "derive proc-macros for `bytemuck`"
 third_party {
-  version: "1.8.0"
+  version: "1.8.1"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2024
-    month: 12
-    day: 19
+    year: 2025
+    month: 1
+    day: 14
   }
   homepage: "https://crates.io/crates/bytemuck_derive"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/bytemuck_derive/bytemuck_derive-1.8.0.crate"
-    version: "1.8.0"
+    value: "https://static.crates.io/crates/bytemuck_derive/bytemuck_derive-1.8.1.crate"
+    version: "1.8.1"
   }
 }
diff --git a/crates/bytemuck_derive/changelog.md b/crates/bytemuck_derive/changelog.md
index b41af0c..38b8d7f 100644
--- a/crates/bytemuck_derive/changelog.md
+++ b/crates/bytemuck_derive/changelog.md
@@ -1,6 +1,10 @@
 

 ## `bytemuck_derive` changelog

 

+## 1.8.1

+

+* https://github.com/Lokathor/bytemuck/pull/287

+

 ## 1.8

 

 * [#257](https://github.com/Lokathor/bytemuck/pull/257): Allows deriving Zeroable on some enums.

diff --git a/crates/bytemuck_derive/src/traits.rs b/crates/bytemuck_derive/src/traits.rs
index 50fbfb8..d94c846 100644
--- a/crates/bytemuck_derive/src/traits.rs
+++ b/crates/bytemuck_derive/src/traits.rs
@@ -2,7 +2,7 @@
 use std::{cmp, convert::TryFrom};

 

 use proc_macro2::{Ident, Span, TokenStream, TokenTree};

-use quote::{quote, quote_spanned, ToTokens};

+use quote::{quote, ToTokens};

 use syn::{

   parse::{Parse, ParseStream, Parser},

   punctuated::Punctuated,

@@ -553,7 +553,7 @@
 

 /// Extract the `Fields` off a `DeriveInput`, or, in the `enum` case, off

 /// those of the `enum_variant`, when provided (e.g., for `Zeroable`).

-/// 

+///

 /// We purposely allow not providing an `enum_variant` for cases where

 /// the caller wants to reject supporting `enum`s (e.g., `NoPadding`).

 fn get_fields(

@@ -607,19 +607,27 @@
   let field_name = &field_names[..];

   let field_ty = &field_tys[..];

 

-  let derive_dbg =

-    quote!(#[cfg_attr(not(target_arch = "spirv"), derive(Debug))]);

-

   Ok((

     quote! {

         #[doc = #GENERATED_TYPE_DOCUMENTATION]

         #repr

         #[derive(Clone, Copy, #crate_name::AnyBitPattern)]

-        #derive_dbg

         #[allow(missing_docs)]

         pub struct #bits_ty {

             #(#field_name: <#field_ty as #crate_name::CheckedBitPattern>::Bits,)*

         }

+

+        #[allow(unexpected_cfgs)]

+        const _: () = {

+          #[cfg(not(target_arch = "spirv"))]

+          impl ::core::fmt::Debug for #bits_ty {

+            fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {

+              let mut debug_struct = ::core::fmt::Formatter::debug_struct(f, ::core::stringify!(#bits_ty));

+              #(::core::fmt::DebugStruct::field(&mut debug_struct, ::core::stringify!(#field_name), &self.#field_name);)*

+              ::core::fmt::DebugStruct::finish(&mut debug_struct)

+            }

+          }

+        };

     },

     quote! {

         type Bits = #bits_ty;

@@ -664,7 +672,7 @@
   )?;

 

   let check = if count == 0 {

-    quote_spanned!(span => false)

+    quote!(false)

   } else if max - min == count - 1 {

     // contiguous range

     let min_lit = LitInt::new(&format!("{}", min), span);

@@ -711,9 +719,6 @@
   let representation = get_repr(&input.attrs)?;

   let vis = &input.vis;

 

-  let derive_dbg =

-    quote!(#[cfg_attr(not(target_arch = "spirv"), derive(Debug))]);

-

   match representation.repr {

     Repr::Rust => unreachable!(),

     repr @ (Repr::C | Repr::CWithDiscriminant(_)) => {

@@ -793,13 +798,25 @@
         quote! {

           #[doc = #GENERATED_TYPE_DOCUMENTATION]

           #[derive(::core::clone::Clone, ::core::marker::Copy, #crate_name::AnyBitPattern)]

-          #derive_dbg

           #bits_repr

           #vis struct #bits_ty_ident {

             tag: #integer,

             payload: #variants_union_ident,

           }

 

+          #[allow(unexpected_cfgs)]

+          const _: () = {

+            #[cfg(not(target_arch = "spirv"))]

+            impl ::core::fmt::Debug for #bits_ty_ident {

+              fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {

+                let mut debug_struct = ::core::fmt::Formatter::debug_struct(f, ::core::stringify!(#bits_ty_ident));

+                ::core::fmt::DebugStruct::field(&mut debug_struct, "tag", &self.tag);

+                ::core::fmt::DebugStruct::field(&mut debug_struct, "payload", &self.payload);

+                ::core::fmt::DebugStruct::finish(&mut debug_struct)

+              }

+            }

+          };

+

           #[derive(::core::clone::Clone, ::core::marker::Copy, #crate_name::AnyBitPattern)]

           #[repr(C)]

           #[allow(non_snake_case)]

@@ -807,13 +824,16 @@
             #(#union_fields,)*

           }

 

-          #[cfg(not(target_arch = "spirv"))]

-          impl ::core::fmt::Debug for #variants_union_ident {

-            fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {

-              let mut debug_struct = ::core::fmt::Formatter::debug_struct(f, ::core::stringify!(#variants_union_ident));

-              ::core::fmt::DebugStruct::finish_non_exhaustive(&mut debug_struct)

+          #[allow(unexpected_cfgs)]

+          const _: () = {

+            #[cfg(not(target_arch = "spirv"))]

+            impl ::core::fmt::Debug for #variants_union_ident {

+              fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {

+                let mut debug_struct = ::core::fmt::Formatter::debug_struct(f, ::core::stringify!(#variants_union_ident));

+                ::core::fmt::DebugStruct::finish_non_exhaustive(&mut debug_struct)

+              }

             }

-          }

+          };

 

           #(#variant_struct_definitions)*

         },

@@ -930,14 +950,17 @@
             #(#union_fields,)*

           }

 

-          #[cfg(not(target_arch = "spirv"))]

-          impl ::core::fmt::Debug for #bits_ty_ident {

-            fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {

-              let mut debug_struct = ::core::fmt::Formatter::debug_struct(f, ::core::stringify!(#bits_ty_ident));

-              ::core::fmt::DebugStruct::field(&mut debug_struct, "tag", unsafe { &self.__tag });

-              ::core::fmt::DebugStruct::finish_non_exhaustive(&mut debug_struct)

+          #[allow(unexpected_cfgs)]

+          const _: () = {

+            #[cfg(not(target_arch = "spirv"))]

+            impl ::core::fmt::Debug for #bits_ty_ident {

+              fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {

+                let mut debug_struct = ::core::fmt::Formatter::debug_struct(f, ::core::stringify!(#bits_ty_ident));

+                ::core::fmt::DebugStruct::field(&mut debug_struct, "tag", unsafe { &self.__tag });

+                ::core::fmt::DebugStruct::finish_non_exhaustive(&mut debug_struct)

+              }

             }

-          }

+          };

 

           #(#variant_struct_definitions)*

         },

@@ -962,22 +985,20 @@
 /// is equal to the sum of the size of it's fields

 fn generate_assert_no_padding(input: &DeriveInput) -> Result<TokenStream> {

   let struct_type = &input.ident;

-  let span = input.ident.span();

   let enum_variant = None; // `no padding` check is not supported for `enum`s yet.

   let fields = get_fields(input, enum_variant)?;

 

   let mut field_types = get_field_types(&fields);

   let size_sum = if let Some(first) = field_types.next() {

-    let size_first = quote_spanned!(span => ::core::mem::size_of::<#first>());

-    let size_rest =

-      quote_spanned!(span => #( + ::core::mem::size_of::<#field_types>() )*);

+    let size_first = quote!(::core::mem::size_of::<#first>());

+    let size_rest = quote!(#( + ::core::mem::size_of::<#field_types>() )*);

 

-    quote_spanned!(span => #size_first #size_rest)

+    quote!(#size_first #size_rest)

   } else {

-    quote_spanned!(span => 0)

+    quote!(0)

   };

 

-  Ok(quote_spanned! {span => const _: fn() = || {

+  Ok(quote! {const _: fn() = || {

     #[doc(hidden)]

     struct TypeWithoutPadding([u8; #size_sum]);

     let _ = ::core::mem::transmute::<#struct_type, TypeWithoutPadding>;

@@ -991,9 +1012,8 @@
   let (impl_generics, _ty_generics, where_clause) =

     input.generics.split_for_impl();

   let fields = get_fields(input, enum_variant)?;

-  let span = input.span();

   let field_types = get_field_types(&fields);

-  Ok(quote_spanned! {span => #(const _: fn() = || {

+  Ok(quote! {#(const _: fn() = || {

       #[allow(clippy::missing_const_for_fn)]

       #[doc(hidden)]

       fn check #impl_generics () #where_clause {

diff --git a/crates/bytemuck_derive/tests/basic.rs b/crates/bytemuck_derive/tests/basic.rs
index 72e471b..daa96d4 100644
--- a/crates/bytemuck_derive/tests/basic.rs
+++ b/crates/bytemuck_derive/tests/basic.rs
@@ -1,4 +1,5 @@
 #![allow(dead_code)]

+#![deny(clippy::allow_attributes)]

 

 use bytemuck::{

   checked::CheckedCastError, AnyBitPattern, CheckedBitPattern, Contiguous,

diff --git a/pseudo_crate/Cargo.lock b/pseudo_crate/Cargo.lock
index f3d7a7c..5f9dc0e 100644
--- a/pseudo_crate/Cargo.lock
+++ b/pseudo_crate/Cargo.lock
@@ -997,9 +997,9 @@
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.8.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec"
+checksum = "3fa76293b4f7bb636ab88fd78228235b5248b4d05cc589aed610f954af5d7c7a"
 dependencies = [
  "proc-macro2 1.0.92",
  "quote 1.0.37",
diff --git a/pseudo_crate/Cargo.toml b/pseudo_crate/Cargo.toml
index 7a9a033..fbf8d91 100644
--- a/pseudo_crate/Cargo.toml
+++ b/pseudo_crate/Cargo.toml
@@ -42,7 +42,7 @@
 bstr = "=1.3.0"
 buddy_system_allocator = "=0.11.0"
 bytemuck = "=1.21.0"
-bytemuck_derive = "=1.8.0"
+bytemuck_derive = "=1.8.1"
 byteorder = "=1.5.0"
 bytes = "=1.9.0"
 camino = "=1.1.9"