Merge "Update predicates to 3.1.3" into main
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/crates/pin-project-lite/.android-checksum.json b/crates/pin-project-lite/.android-checksum.json
index 1832f1d..de6210e 100644
--- a/crates/pin-project-lite/.android-checksum.json
+++ b/crates/pin-project-lite/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"edeedfad6ff89efdb853f8676d1d3f453524ecd80e59e2b7d480d7103d24ca7d","Android.bp":"10a84b518dcfa172f94a9f14c67838754d072501894d67b499ad3c119b89eb1c","CHANGELOG.md":"861a56232aa2aae47637e440b7242738b5dc906f35b56a14a2d56482afabc0a9","Cargo.toml":"1ce4634d64a20710602e4e66f6b3a009292646bef72221f395ee2cd60329aad4","LICENSE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","LICENSE-APACHE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","LICENSE-MIT":"38620a3cfaeec97a9197e8c39e436ea7f0bc86699b1f1c35f1aa41785b6d4eac","METADATA":"9efad21e8e8e28a1009bdb593c0fef66cf21ce4a412e1ce1959f34258de4b5f2","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"615f1135d0a22ad0204fcb44f36e4bd0f4200ac6f1b1c16d09586057058dc486","TEST_MAPPING":"3a59053b725fc10646541d412127125a53c7b78e607a733de7034b9dd0dd2dcf","cargo_embargo.json":"1c412d446965f40b1f2eb1d39291bb0e0732cc3b9c5fb36737f432d930e23c6e","src/lib.rs":"191bab0798250f0e727301ad1cf11e7e973c2d24162ccb893aae998968b33e44","tests/auxiliary/mod.rs":"b9123395fed2c3dadfa0305d42345a4bcb9cb67d3dfe9cbde23b381341829378","tests/compiletest.rs":"5d782c030d298dfcb7f94c9df2549dcc54df4ef1a1bd8be034c767d13ac31310","tests/drop_order.rs":"0b6c5232c99aee274d18cc00f0f4688cd962f28ba9f2463fe1353c0ca0c1e358","tests/expand/default/enum.expanded.rs":"2c9fc23eb9ad1f1c832643c2efe7d0532b85888eaba3b1f69cfe605ae3301a6c","tests/expand/default/enum.rs":"9e6341518300a75d3fab84009f989c844c10b2ec9410909c2515a9a89bc0a2bc","tests/expand/default/struct.expanded.rs":"5ea9628c5ec0ed5f0258213d68297b16a1a8bc1fe326b010f5228abd86bf6c57","tests/expand/default/struct.rs":"1301d6c330c6591f867c8064822894bc5d48ad39fdce4638c6a15e4d08c37fc1","tests/expand/multifields/enum.expanded.rs":"ee283cc26483792e365b597e5feffe0606599bf0cd35375472234b7ebea5ff47","tests/expand/multifields/enum.rs":"7c4961b7f7ee7e8424e2e70374984b0559664f9f3212bcb05696c3bacdf539a2","tests/expand/multifields/struct.expanded.rs":"04784b6a22463fa22a8c41e0cdfbef203c68bd412e7f149859db532553a89234","tests/expand/multifields/struct.rs":"992dcf6b86157cea1f1bac72e5dd285b70d841046fc09b98ef32843af9baffb3","tests/expand/naming/enum-all.expanded.rs":"2c9fc23eb9ad1f1c832643c2efe7d0532b85888eaba3b1f69cfe605ae3301a6c","tests/expand/naming/enum-all.rs":"9e6341518300a75d3fab84009f989c844c10b2ec9410909c2515a9a89bc0a2bc","tests/expand/naming/enum-mut.expanded.rs":"86f444d7e8ebf87067de4eb065e79d03eb8401b0a84c09da62541c68be82b21a","tests/expand/naming/enum-mut.rs":"15bd5b05ab4abea3e9c58d3c97eadfff3e2f336658c8c8d7bfed29bb6cb17027","tests/expand/naming/enum-none.expanded.rs":"80f89ac4178910e2a248106808c5ddbe8541d9cf52baca41f8fb31eec03a81d4","tests/expand/naming/enum-none.rs":"ed209be3443497c3d6e47726ca24253aa91ae1907ff0a8bdcce75a34bd5b0777","tests/expand/naming/enum-ref.expanded.rs":"c7be5ec61f8289729788429d17b19734d792b5db2aa46a6ab2fefe82e6c3d1d1","tests/expand/naming/enum-ref.rs":"1ab02ef239b5162eb830d2dec5d16ff4f95cbb688f237f9b8c36c89adb99fba4","tests/expand/naming/struct-all.expanded.rs":"c63c1b03dd9fefd3146ceca1b9ac3a87f2a244ca22747c8953a47d7c5b78a9b0","tests/expand/naming/struct-all.rs":"940e60e1b9a35e4cae29d143fc258794a0eaffd25066be823fc2916756c18ee7","tests/expand/naming/struct-mut.expanded.rs":"0dda121cd3be2bf035041ac3360a2498a81f6c7f420f3f1218c7e56b57c633f8","tests/expand/naming/struct-mut.rs":"9e5cbf70ab0e7ad1682dc971b528fb3bc96b45b3086392842a2cf2d78ffecba2","tests/expand/naming/struct-none.expanded.rs":"5ea9628c5ec0ed5f0258213d68297b16a1a8bc1fe326b010f5228abd86bf6c57","tests/expand/naming/struct-none.rs":"1301d6c330c6591f867c8064822894bc5d48ad39fdce4638c6a15e4d08c37fc1","tests/expand/naming/struct-ref.expanded.rs":"0e1f9e3108fb25e971926a7d3360f62259ca286de8f2bd514d19518640045c31","tests/expand/naming/struct-ref.rs":"d1294ae61b439b0b3aadb0b40528b8d9f94881a30539b68234b80df5e51d64a7","tests/expand/not_unpin/enum.expanded.rs":"355387fca8ef817a736f4a86a8b048e42bf96fe28aad071fb48caec980233e3d","tests/expand/not_unpin/enum.rs":"191352cd03e7a532be4639d28eb4e0a5a73865ce923e1c0a21401cb4a4c55c1b","tests/expand/not_unpin/struct.expanded.rs":"d7465185c3328affcef459a6b6edbac5319a7d3c21f24ec104bb65290ad643b3","tests/expand/not_unpin/struct.rs":"fad586a4a105b64375127f6dfcdee8026795112d8dfcbcdb496930e78bf7e22a","tests/expand/pinned_drop/enum.expanded.rs":"14823c89cb39bad0342a814151688f9ae44e6d20da704bdf9844d15f6b2ce233","tests/expand/pinned_drop/enum.rs":"378fa2c60f3e4f76354641e005a7d85d76a966a4d6ab456ed14463c57680a0f4","tests/expand/pinned_drop/struct.expanded.rs":"99f48024333fde1b202d1bb29b663c205bd6310d854335fba6a63d0e4e91df07","tests/expand/pinned_drop/struct.rs":"446abeed04cf533c8ca8bd2caa9647f443874cdd2ed86bf125c2c67aeb349a3f","tests/expand/pub/enum.expanded.rs":"9fb953bddfbad4d4e7013d5005dd95cbb84eda817cbc6c95d6da28fdb90c0872","tests/expand/pub/enum.rs":"1bafd1b6c800def9c7b1c0efb57f2aefb8305192324d5314594c53110dfbe7fd","tests/expand/pub/struct.expanded.rs":"cd736caa5c3abc0d36c1a569c8dcc54d9ac1ebccfc354cff909dcb7458737dca","tests/expand/pub/struct.rs":"343fa27a94ed011fc26bd97ae7a4b673b2f5a8fb560ebec1bf66847cf9906eb9","tests/expandtest.rs":"887e324f6173b55f2ef70105aced9dedaf68888a7025f6375742dbc8640e9a86","tests/include/basic.rs":"42f25555c556af51a73dbc7177478f5794de468ed5f3338ee89fbc68f3f1e0ec","tests/proper_unpin.rs":"88ea8e48fe02b1f0a0feef5e22b1c66d5aa357ec5fdef6c64ef63333668cec00","tests/test.rs":"72c3cda31bb40d987cb44736eb721d0371dca0c77e0128894924ed89467f63b7","tests/ui/pin_project/conflict-drop.rs":"bbb43d4661d07c788e20415fa1f692f30e3d21d20a21dd5b41c616d5e94417d5","tests/ui/pin_project/conflict-drop.stderr":"d07fe5978baced640d867d9ee5180d87e772f8dd784c550697e0aff5532cb756","tests/ui/pin_project/conflict-unpin.rs":"29556f97618552512cf8f96000a533593c2d8a7aba0b1db43a1fb0a475e5e235","tests/ui/pin_project/conflict-unpin.stderr":"bc050d2c91992c82bd07146e1554c3ab988c209207d24e98557b0fd048c5dea4","tests/ui/pin_project/invalid-bounds.rs":"1f11784a3e7a1a09d7a1e661fe52869f26e59bdd0955f57753f7faaaa0253cef","tests/ui/pin_project/invalid-bounds.stderr":"1ae0967a7c1399047b92062c68f72b82d5cb758a3dc9050e70fbcae6f7d660d5","tests/ui/pin_project/invalid.rs":"52458fe9d97a19b37503374a2cdc048391e3cf22a2296b32e26dc103ea916c5d","tests/ui/pin_project/invalid.stderr":"0eabecbd93628b7db7bdaa093ac583f544b9d6775562d704859804a87594b102","tests/ui/pin_project/negative_impls_stable.rs":"c885486321b2597dd4ce6b081b6a5223c5792e4b0b9005ece326f416b4c43124","tests/ui/pin_project/negative_impls_stable.stderr":"6a32ebaffb04a8baf4b9115750b6a629db3c7b714afdb56a8cd348165db7a5e5","tests/ui/pin_project/overlapping_lifetime_names.rs":"e982b3522ff740554d652aea18f243541ba96197fa6258dbcead296c7af36064","tests/ui/pin_project/overlapping_lifetime_names.stderr":"64dec85f37923d2c2fbbebd4a7e56f79d5c7dc4d551daeaf451d3805c19eed9b","tests/ui/pin_project/overlapping_unpin_struct.rs":"ca3f206c0375a1007f2e5adcb3e9f62b0b5681db503f2edaf3ca95f97874638c","tests/ui/pin_project/overlapping_unpin_struct.stderr":"906a3342f3637f128f6113d0a4f61533d26d961e4eb8bb1f48e67dcb39cc2b6e","tests/ui/pin_project/packed.rs":"de3d2400582c3f9a605cdbbc6af4bf8ce24de6e4d0e91ffe0c202747df84d9c0","tests/ui/pin_project/packed.stderr":"3dbc000b874047c948b95e6994264556a8e6380c0dbbef7342ebb49dc3c74386","tests/ui/pin_project/unpin_sneaky.rs":"64837c6f6018fe1e21732942481ee601d1c609d68ac486f557327466c7de860c","tests/ui/pin_project/unpin_sneaky.stderr":"9215699280f8e54adfd35e94fd4b2dddeed0a40f960a248d9a7a59d18c0c8d78","tests/ui/pin_project/unsupported.rs":"7d5c54f06ba524bbedcd94f1507f173f8bcf30126904b5e3dd495098a2df3170","tests/ui/pin_project/unsupported.stderr":"55e7cd3eeeddd80bb17e550b687ed9b305195e4302e7f4a52c6d1c4291b61438","tests/ui/pinned_drop/call-drop-inner.rs":"b98e2df3523acb40dc2e0ab0b6b114b71c48f5b65e481f8e82af0efe272ae376","tests/ui/pinned_drop/call-drop-inner.stderr":"8a65e819f3d0f2d4b2b467bfb7473b4ccace15d34f69f4cc1d5e4cb82df9c3cc","tests/ui/pinned_drop/conditional-drop-impl.rs":"aa8516686209f3e2cdefe2790f76fa96b4366ee827377a3c6a8273756b0ffd53","tests/ui/pinned_drop/conditional-drop-impl.stderr":"80ef024c48aee4f1d1c7adbd8b495689038a069176341143cd7dae77416288e3"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"83bd6cb70e149cf3a8cfb864f4a95a7226f8667a75f3df4480f2438e4f6d8644","Android.bp":"1fb2382d51d1dcc3273860284d315ad6b531f9cf526990abee3832a54a7116e7","CHANGELOG.md":"2ef1ed4532f5ef0cf895258c16a12773e65c65472793d58da426a6981d4660c3","Cargo.toml":"48b78f121cb24f0d13568ff95ed296bc1539cdae4907e742b5ca192c4622b80e","LICENSE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","LICENSE-APACHE":"83ecae571fc46eed7fa5cfb5e930b6b1dd0a6d79c24912fecacc955318987b3d","LICENSE-MIT":"38620a3cfaeec97a9197e8c39e436ea7f0bc86699b1f1c35f1aa41785b6d4eac","METADATA":"c2ffa82f9c32252f4a64a129006e8808cc7d4bf396503a4f1750f44b62fbaef8","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"615f1135d0a22ad0204fcb44f36e4bd0f4200ac6f1b1c16d09586057058dc486","TEST_MAPPING":"3a59053b725fc10646541d412127125a53c7b78e607a733de7034b9dd0dd2dcf","cargo_embargo.json":"1c412d446965f40b1f2eb1d39291bb0e0732cc3b9c5fb36737f432d930e23c6e","src/lib.rs":"0725cfc5f81418033908d454143e076889471b019906125c1174d59be7334b7f","tests/auxiliary/mod.rs":"b9123395fed2c3dadfa0305d42345a4bcb9cb67d3dfe9cbde23b381341829378","tests/compiletest.rs":"5d782c030d298dfcb7f94c9df2549dcc54df4ef1a1bd8be034c767d13ac31310","tests/drop_order.rs":"0b6c5232c99aee274d18cc00f0f4688cd962f28ba9f2463fe1353c0ca0c1e358","tests/expand/default/enum.expanded.rs":"e528827e887699e64c9a9f8a9a6a37946a7c4d4b34bc1cc14c9d61c449234b36","tests/expand/default/enum.rs":"9e6341518300a75d3fab84009f989c844c10b2ec9410909c2515a9a89bc0a2bc","tests/expand/default/struct.expanded.rs":"b7342bba128d556fa5e8f7a66246fff0922d42bc86c87dfa1428b83f6ab265f6","tests/expand/default/struct.rs":"1301d6c330c6591f867c8064822894bc5d48ad39fdce4638c6a15e4d08c37fc1","tests/expand/multifields/enum.expanded.rs":"2cdd95a6ae71a3e64d4c11a0a457ab57effda06ca439cfc968876460f67453dd","tests/expand/multifields/enum.rs":"7c4961b7f7ee7e8424e2e70374984b0559664f9f3212bcb05696c3bacdf539a2","tests/expand/multifields/struct.expanded.rs":"ccce9bea205c5c8d350734d45e4570f801e1192cfc6e91565190dfb0b32b2774","tests/expand/multifields/struct.rs":"992dcf6b86157cea1f1bac72e5dd285b70d841046fc09b98ef32843af9baffb3","tests/expand/naming/enum-all.expanded.rs":"e528827e887699e64c9a9f8a9a6a37946a7c4d4b34bc1cc14c9d61c449234b36","tests/expand/naming/enum-all.rs":"9e6341518300a75d3fab84009f989c844c10b2ec9410909c2515a9a89bc0a2bc","tests/expand/naming/enum-mut.expanded.rs":"fb5a83f01d4fd32a263f6faaff49709b167bc226bef8da189224b07ff2aa751e","tests/expand/naming/enum-mut.rs":"15bd5b05ab4abea3e9c58d3c97eadfff3e2f336658c8c8d7bfed29bb6cb17027","tests/expand/naming/enum-none.expanded.rs":"f15e6119c369efd800eea66c2dbb76bf2ef9af1f4a135f22ad08dd7390b28517","tests/expand/naming/enum-none.rs":"ed209be3443497c3d6e47726ca24253aa91ae1907ff0a8bdcce75a34bd5b0777","tests/expand/naming/enum-ref.expanded.rs":"43737c667c18f0ef2fdfbf22455ed9ed3c311cf07fac0882108e91a5f3206e2b","tests/expand/naming/enum-ref.rs":"1ab02ef239b5162eb830d2dec5d16ff4f95cbb688f237f9b8c36c89adb99fba4","tests/expand/naming/struct-all.expanded.rs":"e507892f996e35c4b3f2a43158a7f85acf62cea193ae2c3f7b02e4e4abf38088","tests/expand/naming/struct-all.rs":"940e60e1b9a35e4cae29d143fc258794a0eaffd25066be823fc2916756c18ee7","tests/expand/naming/struct-mut.expanded.rs":"3387fd4066bc7077d14a2894e0b1c4463bc1bff425eb18040203bc422a843237","tests/expand/naming/struct-mut.rs":"9e5cbf70ab0e7ad1682dc971b528fb3bc96b45b3086392842a2cf2d78ffecba2","tests/expand/naming/struct-none.expanded.rs":"b7342bba128d556fa5e8f7a66246fff0922d42bc86c87dfa1428b83f6ab265f6","tests/expand/naming/struct-none.rs":"1301d6c330c6591f867c8064822894bc5d48ad39fdce4638c6a15e4d08c37fc1","tests/expand/naming/struct-ref.expanded.rs":"4a8cf3efbf5b18df2261d6efae3eda6f92582d93df5fed3134411a283774d46a","tests/expand/naming/struct-ref.rs":"d1294ae61b439b0b3aadb0b40528b8d9f94881a30539b68234b80df5e51d64a7","tests/expand/not_unpin/enum.expanded.rs":"a6c1cccf9cbfada41ce3b431e62ea5541a2e2f3079a754049df78c2607c1effc","tests/expand/not_unpin/enum.rs":"191352cd03e7a532be4639d28eb4e0a5a73865ce923e1c0a21401cb4a4c55c1b","tests/expand/not_unpin/struct.expanded.rs":"661a80a511b288b91f0fa2a6fa2b491c5d6500f0e1a04873f7ef61c253c9d79c","tests/expand/not_unpin/struct.rs":"fad586a4a105b64375127f6dfcdee8026795112d8dfcbcdb496930e78bf7e22a","tests/expand/pinned_drop/enum.expanded.rs":"42b7c6a397f190324b8083dfa1406643b78f5206403a6f68f83805d94aac512e","tests/expand/pinned_drop/enum.rs":"378fa2c60f3e4f76354641e005a7d85d76a966a4d6ab456ed14463c57680a0f4","tests/expand/pinned_drop/struct.expanded.rs":"de45b9e8719532594aa988e8fa7f1770ea9572c4b3d2322b611f542d7256c335","tests/expand/pinned_drop/struct.rs":"446abeed04cf533c8ca8bd2caa9647f443874cdd2ed86bf125c2c67aeb349a3f","tests/expand/pub/enum.expanded.rs":"0d83bb5704bea464def70f7861ac7b9eaab447b3f167943da9cdda31212ffa07","tests/expand/pub/enum.rs":"1bafd1b6c800def9c7b1c0efb57f2aefb8305192324d5314594c53110dfbe7fd","tests/expand/pub/struct.expanded.rs":"01f7d9ba3e09b157741180fc5d850e431cb8bfd10d86cf596e58ff558fdddffc","tests/expand/pub/struct.rs":"343fa27a94ed011fc26bd97ae7a4b673b2f5a8fb560ebec1bf66847cf9906eb9","tests/expandtest.rs":"887e324f6173b55f2ef70105aced9dedaf68888a7025f6375742dbc8640e9a86","tests/include/basic.rs":"38ef55361232a25110502f561bc0e7f3b1a0a61f908f9a4f7001ecf0007e5cf5","tests/proper_unpin.rs":"88ea8e48fe02b1f0a0feef5e22b1c66d5aa357ec5fdef6c64ef63333668cec00","tests/test.rs":"72c3cda31bb40d987cb44736eb721d0371dca0c77e0128894924ed89467f63b7","tests/ui/not_unpin/conflict-unpin.rs":"bc7374abc78df1c07f9b7ddb7156fa75b48134722d1757ac4ac3f430e2ba37fe","tests/ui/not_unpin/conflict-unpin.stderr":"6795b29010938b1cb69695563649f5cff0b58f7c401409b55d022a6738072ca0","tests/ui/not_unpin/negative_impls_stable.rs":"e2609b2328d579529e139b8cdddff162183ae1a1394546577940328ab24f4707","tests/ui/not_unpin/negative_impls_stable.stderr":"0f2ee20f30c4a87cb0db4a81406cd532cb8dda2f3531fbc18dc9b0b4fb5f9292","tests/ui/pin_project/conflict-drop.rs":"bbb43d4661d07c788e20415fa1f692f30e3d21d20a21dd5b41c616d5e94417d5","tests/ui/pin_project/conflict-drop.stderr":"a7240c240893f07b4e51ee15ff81747718ce9dbc3dd4a24bbbcd50d514ed5bef","tests/ui/pin_project/conflict-unpin.rs":"29556f97618552512cf8f96000a533593c2d8a7aba0b1db43a1fb0a475e5e235","tests/ui/pin_project/conflict-unpin.stderr":"843e78172b7d5bab5451b5f06bf095ea035cd2c9121c4a263f710158aa26ac67","tests/ui/pin_project/invalid-bounds.rs":"1f11784a3e7a1a09d7a1e661fe52869f26e59bdd0955f57753f7faaaa0253cef","tests/ui/pin_project/invalid-bounds.stderr":"28c5a38fd54a2e221eadc44002bed1f9221db01a21b5cb04770a86a9ef0b352b","tests/ui/pin_project/invalid.rs":"52458fe9d97a19b37503374a2cdc048391e3cf22a2296b32e26dc103ea916c5d","tests/ui/pin_project/invalid.stderr":"ae5f133bb2e8b6ff2304f472f4329a14485a3386418d5db5038d87547aaa35a7","tests/ui/pin_project/negative_impls_stable.rs":"c885486321b2597dd4ce6b081b6a5223c5792e4b0b9005ece326f416b4c43124","tests/ui/pin_project/negative_impls_stable.stderr":"229d76dc40acf079f629c3cb0c4c72969e34181e378b0d2c3365e4900ba84270","tests/ui/pin_project/overlapping_lifetime_names.rs":"e982b3522ff740554d652aea18f243541ba96197fa6258dbcead296c7af36064","tests/ui/pin_project/overlapping_lifetime_names.stderr":"64dec85f37923d2c2fbbebd4a7e56f79d5c7dc4d551daeaf451d3805c19eed9b","tests/ui/pin_project/overlapping_unpin_struct.rs":"ca3f206c0375a1007f2e5adcb3e9f62b0b5681db503f2edaf3ca95f97874638c","tests/ui/pin_project/overlapping_unpin_struct.stderr":"c1afb6a627d124b2622fe55a565f56ced810754d179d0bdaff335442b017b6b6","tests/ui/pin_project/packed.rs":"de3d2400582c3f9a605cdbbc6af4bf8ce24de6e4d0e91ffe0c202747df84d9c0","tests/ui/pin_project/packed.stderr":"f83eeaaf783f0608f1734d3142887f91e581afebaae354d7c0876a4ebb893c86","tests/ui/pin_project/unpin_sneaky.rs":"64837c6f6018fe1e21732942481ee601d1c609d68ac486f557327466c7de860c","tests/ui/pin_project/unpin_sneaky.stderr":"9215699280f8e54adfd35e94fd4b2dddeed0a40f960a248d9a7a59d18c0c8d78","tests/ui/pin_project/unsupported.rs":"7d5c54f06ba524bbedcd94f1507f173f8bcf30126904b5e3dd495098a2df3170","tests/ui/pin_project/unsupported.stderr":"bceb640990f26afb871f6f2d0d842fa95f35f32fc78af5062da3e22d76b237cd","tests/ui/pinned_drop/call-drop-inner.rs":"b98e2df3523acb40dc2e0ab0b6b114b71c48f5b65e481f8e82af0efe272ae376","tests/ui/pinned_drop/call-drop-inner.stderr":"42ae7cf805d69a9c47ac49cb2d1f67e909f8ee7b372aba1834ef21963fe28d17","tests/ui/pinned_drop/conditional-drop-impl.rs":"aa8516686209f3e2cdefe2790f76fa96b4366ee827377a3c6a8273756b0ffd53","tests/ui/pinned_drop/conditional-drop-impl.stderr":"c773115ea0e7414e012d905196c0c4807b609a92ba9d2cedf5d310880c9afa98"}}
\ No newline at end of file
diff --git a/crates/pin-project-lite/.cargo-checksum.json b/crates/pin-project-lite/.cargo-checksum.json
index 12a71fb..1e7a0e4 100644
--- a/crates/pin-project-lite/.cargo-checksum.json
+++ b/crates/pin-project-lite/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"ce90bf658911da3fc5c7b16b4f0ec16a0f73910f234037500ca62074e2cbe877","Cargo.toml":"49a816e2857280a1a7cfb3796b0d12147dc45ee62a57b6811daaca96f5b25480","LICENSE-APACHE":"0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"11841d1d294b58cb7c77b561fa5c3de1e71f32a347b73637e36f69ff32adf55b","src/lib.rs":"da067d2f204533733f06d06b567bfcc7ee6664c03e67a40402e0fc04856ee1b7","tests/auxiliary/mod.rs":"52a78b77be05c67737c56865fbce4477eaacc6482d6377af2a5822f05a2ce061","tests/compiletest.rs":"48cfd92c7271345d57a6c222a7a61e00449f38e6ba379130813c45b31a5589c9","tests/drop_order.rs":"9b13b6461e44be1c1beca6ec47387de83efcb988326e4ff832183b8fad17a3f4","tests/expand/default/enum.expanded.rs":"eb1b44354e8c6accfcab7fd5326f6a09e4e89205494981b71ab90e59f65b7359","tests/expand/default/enum.rs":"ebe6b6403e35459420f6fe979243c382972d2d582376d69f6c630ab5ba2599b5","tests/expand/default/struct.expanded.rs":"8fcd5e14e7f1e3c267adb258cbdd64b751ab1396cf8f65c5bbf7697f26893f62","tests/expand/default/struct.rs":"05767cd68ec5cddc481cff5ad677b5146f7d6fd1effcf1ff131d24c334d85032","tests/expand/multifields/enum.expanded.rs":"5e328b5aee4ef5c5e4c56b6e741a5aa13a4786e444b2968c2022202094702b89","tests/expand/multifields/enum.rs":"d38eb301c86307edbf5cb07ed434b64a10a68aaef32dfb8b15029b5cc5586b0b","tests/expand/multifields/struct.expanded.rs":"7f6bfdf010bf514f2cecd8c679cbd74db721a8eb99cc093759d460c18ce911b7","tests/expand/multifields/struct.rs":"1fe2b911e8782eaac5952d9e0914473d46d82db45b1da859bdc6b8dc3978e549","tests/expand/naming/enum-all.expanded.rs":"eb1b44354e8c6accfcab7fd5326f6a09e4e89205494981b71ab90e59f65b7359","tests/expand/naming/enum-all.rs":"ebe6b6403e35459420f6fe979243c382972d2d582376d69f6c630ab5ba2599b5","tests/expand/naming/enum-mut.expanded.rs":"874e1ddd948d33993c772dd4e890aa3ca41f08f83630cbb568fbd3191e14cd0b","tests/expand/naming/enum-mut.rs":"bf215d055b29a7f9fdb84cabf34576d9dec8e87c33cebe2b553d1fe5e5cb0882","tests/expand/naming/enum-none.expanded.rs":"c771bbd9970684224cb64f4111801d14fd10e7da2a202fef9c366ab390a01c69","tests/expand/naming/enum-none.rs":"115968816e1a1a6b3634b8594dde4815d4641d817d69ebdd90879b96a8a2808e","tests/expand/naming/enum-ref.expanded.rs":"598894365be54d3678b6cd23a102cad9d9141a9ea4206ad30459743ec4fe9d5a","tests/expand/naming/enum-ref.rs":"e09ce2ca812b9fcf7dc59b486e5b50b84db08860a2ceda63ba094d7351bb391f","tests/expand/naming/struct-all.expanded.rs":"021112da5dff423ac628100260a2ee6aeeec5c63dbb68d168042b0e9d55b7afc","tests/expand/naming/struct-all.rs":"0d6b64bc687fbc19329a5558461329e3d2cfa367ff8adb7be76efe2d3160d33e","tests/expand/naming/struct-mut.expanded.rs":"1b3ae70bcd56a8665550953b3d998a34ca92a55de6612db111590bbdad5b02d0","tests/expand/naming/struct-mut.rs":"36edd8db816c122c80ccb139b4305cad8edfdf9b7ee4aebacafa1180613a5075","tests/expand/naming/struct-none.expanded.rs":"8fcd5e14e7f1e3c267adb258cbdd64b751ab1396cf8f65c5bbf7697f26893f62","tests/expand/naming/struct-none.rs":"05767cd68ec5cddc481cff5ad677b5146f7d6fd1effcf1ff131d24c334d85032","tests/expand/naming/struct-ref.expanded.rs":"093fb921ac0aeaf4bb641f1cc48157102b6a4638b36ddf82637a4ca4a0b8ec65","tests/expand/naming/struct-ref.rs":"dd249875f962d16dd9ec821acf0c2b5c1ed0ed05569f6e874ccd5caca2759acf","tests/expand/not_unpin/enum.expanded.rs":"c71d04b6c6ed0c334724b395e44679111703adaf19f3d697f5bfce58f8313cfc","tests/expand/not_unpin/enum.rs":"c65aac4d2083e83d2dfc3bec8ce243e3e9169ef5f986f077f0a8b4226d39f7c3","tests/expand/not_unpin/struct.expanded.rs":"e3bb42319076fa8ecfec3e47356bb5afc95da5454467a2b0b471f76ced0f284f","tests/expand/not_unpin/struct.rs":"99d77727393e4a050d2ceb99710172dfdd13dfcb6e6416f63de39e5df3a9f03f","tests/expand/pinned_drop/enum.expanded.rs":"abad8810838dc856024cb4d9e5d3b41da482c19633c6b64ca667c1edeb64e7b2","tests/expand/pinned_drop/enum.rs":"8f590791cb4693bb077c562f0d93128f9452e6a5f60c631b5fd624a221883ebd","tests/expand/pinned_drop/struct.expanded.rs":"daf6bcd2276853546c151f09de2b4433d885a75e7deb0ec0ece51fe6e55e9f61","tests/expand/pinned_drop/struct.rs":"8da271d7d3182b33be297d985a1e3b57d6067406db21eca8ac2c448ef1a0869a","tests/expand/pub/enum.expanded.rs":"045c0a21bad8a63c9846749d9ba3a8335508284e227209726735c17c84aa27ac","tests/expand/pub/enum.rs":"fdbd806e92cfad4e67737d1f782544aa4e3116bae702161c43b5c22bfbf3a208","tests/expand/pub/struct.expanded.rs":"6560a3e6447885d2d7d6a4bdbb8c3c4f550cf4079d261371c7c8c4183ef41172","tests/expand/pub/struct.rs":"05cb3f03ef9801fecf0a7c86bbd236c97218b34ac01ee507cb7de9a78efaeffa","tests/expandtest.rs":"a4336ab879d79824ab3144ea385a7a00ba77604c3b6639ae53b6283850b421df","tests/include/basic.rs":"271a8c75e2e937d8ffcaa8c43fdf051c5cdf86c1b6b8c216ce0b4ad37977c571","tests/proper_unpin.rs":"83790eb38ae2fd5aed97fc67da79d91c1071f08d1e5aaef0c71e65d8b5767403","tests/test.rs":"37faf4f378b43c58f7aad09b05bcc520dcfd058be85c3bd0da93623139d48e01","tests/ui/pin_project/conflict-drop.rs":"a1964fa136080cc354479ff55b8428e5fa79305681fb2475cc37d6071cd64112","tests/ui/pin_project/conflict-drop.stderr":"ab20853a39525cdb5532a2aa51950339b8f51e9b6e7c72487e0739f1876fc4de","tests/ui/pin_project/conflict-unpin.rs":"37e7b2f9ab1be70d0521c9dbbc954067f22a2321511e008f0f72e13d0edb4afe","tests/ui/pin_project/conflict-unpin.stderr":"c55767dc44c46179fefacc99e261477ce3a3cb759daa21559d9267fb103c3c17","tests/ui/pin_project/invalid-bounds.rs":"4068e272a4f5d44851e0901dd6cfa806ead000c2e1a507a2b42be51d26d17056","tests/ui/pin_project/invalid-bounds.stderr":"da18e686a0dd677dc53ee9be2aa7588da7077cc158d41958ddca7fc4cd1d7404","tests/ui/pin_project/invalid.rs":"1c84cc089623dd31f483011ed6543f169af341b028a212fcf00146bc96dd792f","tests/ui/pin_project/invalid.stderr":"3a194617321918aca05a3e12e10c2f98f196fce50ef340a9d648d6c71af14b68","tests/ui/pin_project/negative_impls_stable.rs":"1e70055fbec4bc0a53454fd93a0663f8785440d37dcf359ab29958d97fd51e9d","tests/ui/pin_project/negative_impls_stable.stderr":"19ea9df3c7d76dddd169f081755098764ed12b5139bf22cd012017ef46466524","tests/ui/pin_project/overlapping_lifetime_names.rs":"ac9c29b389e8e067e9e384cf04be69c0e5bb862cf373de0e3b4296fe2007809b","tests/ui/pin_project/overlapping_lifetime_names.stderr":"1df727ff5129e07c4c213352bc18dec9390a562726186596c07d4cc38a2f114a","tests/ui/pin_project/overlapping_unpin_struct.rs":"cb3d6d4087b8b4c917bc71e55764775f6bb018a77cda5c6b726afacd66789859","tests/ui/pin_project/overlapping_unpin_struct.stderr":"1f236a6d235432a624258ff85faf8c3e5472652154fd35f688340f74d4105b8b","tests/ui/pin_project/packed.rs":"6a24ac14e61e5d3e3b495f49d226318ec500e5aa46f34acf8e4f3e0827bd9604","tests/ui/pin_project/packed.stderr":"15ed6f57e7d582a0476f25e7247c078f619f255a33ac9caed127181b2d81f4dc","tests/ui/pin_project/unpin_sneaky.rs":"6e6385e067679c3bf5233163b3fa99ff2fc28bcb93fe594a5c987c0db7c0eaa6","tests/ui/pin_project/unpin_sneaky.stderr":"d2b305d2ee117a4734390fbd6d9b9c6214443b61cdc15bef44ef6789bc66352a","tests/ui/pin_project/unsupported.rs":"3ad5f584f9e56be3573133fba026a7bb378595d0a4b7b1bcbb6b78e37cef20a7","tests/ui/pin_project/unsupported.stderr":"2270c873047b1039ca9d0c4a7ac914e2e9b7d4bc365b54b48cc6a7d80b524df6","tests/ui/pinned_drop/call-drop-inner.rs":"0618b60a450c99b5953b302e26c68df1abe7632af3d9baf3639eb60091e4ff4e","tests/ui/pinned_drop/call-drop-inner.stderr":"0a938f3a3f640872ae3dc86bdc9d558503d501381f9cbf9bf8fffa8ec87ee6d7","tests/ui/pinned_drop/conditional-drop-impl.rs":"df03f38b2a331f339af2734fdd4ad2f637b2e2189d9928599adebe04ebee517f","tests/ui/pinned_drop/conditional-drop-impl.stderr":"568146640b57700c470fc94db12768b1b4bf6f4d7aa14d8f8bd807d7eef0b2ef"},"package":"915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff"}
\ No newline at end of file
+{"files":{"CHANGELOG.md":"ed6040767b0917706393024e79dec1461c1fe9984329915e416226c3701f2a57","Cargo.toml":"21af3f4e9564a78293aa3e71bd146510a31c818c9cb78619b789c51dc45fa638","LICENSE-APACHE":"0d542e0c8804e39aa7f37eb00da5a762149dc682d7829451287e11b938e94594","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"11841d1d294b58cb7c77b561fa5c3de1e71f32a347b73637e36f69ff32adf55b","src/lib.rs":"56accfe9d4ea6f09162478aabebb055f75a94714bc5163c467a59cd18335845b","tests/auxiliary/mod.rs":"52a78b77be05c67737c56865fbce4477eaacc6482d6377af2a5822f05a2ce061","tests/compiletest.rs":"48cfd92c7271345d57a6c222a7a61e00449f38e6ba379130813c45b31a5589c9","tests/drop_order.rs":"9b13b6461e44be1c1beca6ec47387de83efcb988326e4ff832183b8fad17a3f4","tests/expand/default/enum.expanded.rs":"a0e001a28bd060f5091a977141eddfe169b2e1ebffe4b180e3af20b6837b4f02","tests/expand/default/enum.rs":"ebe6b6403e35459420f6fe979243c382972d2d582376d69f6c630ab5ba2599b5","tests/expand/default/struct.expanded.rs":"437332ba78e77ddf56431f897f2032994654a8d0a958bc97fb155072282c91ae","tests/expand/default/struct.rs":"05767cd68ec5cddc481cff5ad677b5146f7d6fd1effcf1ff131d24c334d85032","tests/expand/multifields/enum.expanded.rs":"f6ed5344acfb0ebcd55cbe0e9a70bedad50815e2f540729f1ca59bb33e77b463","tests/expand/multifields/enum.rs":"d38eb301c86307edbf5cb07ed434b64a10a68aaef32dfb8b15029b5cc5586b0b","tests/expand/multifields/struct.expanded.rs":"7257c732191d5dd697ddf7939d24f5600bda10cc72f80c92c1217b3209832dff","tests/expand/multifields/struct.rs":"1fe2b911e8782eaac5952d9e0914473d46d82db45b1da859bdc6b8dc3978e549","tests/expand/naming/enum-all.expanded.rs":"a0e001a28bd060f5091a977141eddfe169b2e1ebffe4b180e3af20b6837b4f02","tests/expand/naming/enum-all.rs":"ebe6b6403e35459420f6fe979243c382972d2d582376d69f6c630ab5ba2599b5","tests/expand/naming/enum-mut.expanded.rs":"72712b60b635d79ff6d53dcefac952335fc7b2c1befd245f122921b23a7bfa9e","tests/expand/naming/enum-mut.rs":"bf215d055b29a7f9fdb84cabf34576d9dec8e87c33cebe2b553d1fe5e5cb0882","tests/expand/naming/enum-none.expanded.rs":"6c00c1ab0d340fe72ea6c2fe502073ad74c6801250a6261d7cd3612a315ae798","tests/expand/naming/enum-none.rs":"115968816e1a1a6b3634b8594dde4815d4641d817d69ebdd90879b96a8a2808e","tests/expand/naming/enum-ref.expanded.rs":"fa708877f09333c49c6fc5c101ff0d5c70a1372f7ee6d4830939ce5ff197ac48","tests/expand/naming/enum-ref.rs":"e09ce2ca812b9fcf7dc59b486e5b50b84db08860a2ceda63ba094d7351bb391f","tests/expand/naming/struct-all.expanded.rs":"fdfdb4d9c696ff9103cdbdea350dbe0dd2b40d5680e19295747bb167f3791b94","tests/expand/naming/struct-all.rs":"0d6b64bc687fbc19329a5558461329e3d2cfa367ff8adb7be76efe2d3160d33e","tests/expand/naming/struct-mut.expanded.rs":"d7f0c80f787de540c97faed814c51efd66d08b0e5bb8db3185a923f1bfdbf19f","tests/expand/naming/struct-mut.rs":"36edd8db816c122c80ccb139b4305cad8edfdf9b7ee4aebacafa1180613a5075","tests/expand/naming/struct-none.expanded.rs":"437332ba78e77ddf56431f897f2032994654a8d0a958bc97fb155072282c91ae","tests/expand/naming/struct-none.rs":"05767cd68ec5cddc481cff5ad677b5146f7d6fd1effcf1ff131d24c334d85032","tests/expand/naming/struct-ref.expanded.rs":"8c5d5efc6f18f08c84c977d8b4e8f2e3505a75a198c418cf0c60cd7b51d2024b","tests/expand/naming/struct-ref.rs":"dd249875f962d16dd9ec821acf0c2b5c1ed0ed05569f6e874ccd5caca2759acf","tests/expand/not_unpin/enum.expanded.rs":"1c2dde8ff53bff0716a490ca6dc2fed351d4db1ef7bbd4cf40d48b8f7d305839","tests/expand/not_unpin/enum.rs":"c65aac4d2083e83d2dfc3bec8ce243e3e9169ef5f986f077f0a8b4226d39f7c3","tests/expand/not_unpin/struct.expanded.rs":"3ba32743c7578aad45354b59e1ad2d9dcb64a753f34ad25431c529b436260e15","tests/expand/not_unpin/struct.rs":"99d77727393e4a050d2ceb99710172dfdd13dfcb6e6416f63de39e5df3a9f03f","tests/expand/pinned_drop/enum.expanded.rs":"8776e664d0af9102c6af6f41dfb3e6cd8c69a5cb4fb3fd8ed8fb0aaca95dc711","tests/expand/pinned_drop/enum.rs":"8f590791cb4693bb077c562f0d93128f9452e6a5f60c631b5fd624a221883ebd","tests/expand/pinned_drop/struct.expanded.rs":"9643f7d71b94675a71c7c0ff8d8a3b1e3f716bb1f7c0efdea5c6c74b76274d2b","tests/expand/pinned_drop/struct.rs":"8da271d7d3182b33be297d985a1e3b57d6067406db21eca8ac2c448ef1a0869a","tests/expand/pub/enum.expanded.rs":"c52cfaa064ffbf04821386180d3ddf8a57a54012ece5114114f4ae4c7215d93f","tests/expand/pub/enum.rs":"fdbd806e92cfad4e67737d1f782544aa4e3116bae702161c43b5c22bfbf3a208","tests/expand/pub/struct.expanded.rs":"9e84c170b1e6505ffed33d66c976c44338cffa35838ddaef52c3598dec7cfe55","tests/expand/pub/struct.rs":"05cb3f03ef9801fecf0a7c86bbd236c97218b34ac01ee507cb7de9a78efaeffa","tests/expandtest.rs":"a4336ab879d79824ab3144ea385a7a00ba77604c3b6639ae53b6283850b421df","tests/include/basic.rs":"8c06c765c92d696284dde5b4762488100ce0ee1661ead307023a85d5c82d8ddc","tests/proper_unpin.rs":"83790eb38ae2fd5aed97fc67da79d91c1071f08d1e5aaef0c71e65d8b5767403","tests/test.rs":"37faf4f378b43c58f7aad09b05bcc520dcfd058be85c3bd0da93623139d48e01","tests/ui/not_unpin/conflict-unpin.rs":"23c7e081d86f2000838c32844dce1eee98d1b118eb1a29daf65c705aad5c68fb","tests/ui/not_unpin/conflict-unpin.stderr":"e6a6584c1958bc9e805188d207b39fe7d0cce27a7bdcfe2b96310f459cc9e874","tests/ui/not_unpin/negative_impls_stable.rs":"f014d5398d505ca5f482905cb9597a2d5fced563b9350229468c3751dd7f92ae","tests/ui/not_unpin/negative_impls_stable.stderr":"c25e91a02bff728cebd90af12eb17c3ae9d269e767eaf88634bcb2bedf8c4cb3","tests/ui/pin_project/conflict-drop.rs":"a1964fa136080cc354479ff55b8428e5fa79305681fb2475cc37d6071cd64112","tests/ui/pin_project/conflict-drop.stderr":"3af45f260f413b2643d9a9ceec122babb61a6f488a79df697bed93c27aee0c06","tests/ui/pin_project/conflict-unpin.rs":"37e7b2f9ab1be70d0521c9dbbc954067f22a2321511e008f0f72e13d0edb4afe","tests/ui/pin_project/conflict-unpin.stderr":"ae6f740fc0330a0c69646c8715acea160a5ca5437970f7c606d5830313db6ed9","tests/ui/pin_project/invalid-bounds.rs":"4068e272a4f5d44851e0901dd6cfa806ead000c2e1a507a2b42be51d26d17056","tests/ui/pin_project/invalid-bounds.stderr":"f9e5e40a51afb62034246e214ac7655df2e5e45e44392ab171c2dee2151b9c05","tests/ui/pin_project/invalid.rs":"1c84cc089623dd31f483011ed6543f169af341b028a212fcf00146bc96dd792f","tests/ui/pin_project/invalid.stderr":"ea3fb689d43e5bde62a9620093acc2d17b67a63547638525ea17cc4b9f180bef","tests/ui/pin_project/negative_impls_stable.rs":"1e70055fbec4bc0a53454fd93a0663f8785440d37dcf359ab29958d97fd51e9d","tests/ui/pin_project/negative_impls_stable.stderr":"1834433559cb74b5158cefb27bee7b01fb9ba6eb57d82fbb3a2541c6205a7034","tests/ui/pin_project/overlapping_lifetime_names.rs":"ac9c29b389e8e067e9e384cf04be69c0e5bb862cf373de0e3b4296fe2007809b","tests/ui/pin_project/overlapping_lifetime_names.stderr":"1df727ff5129e07c4c213352bc18dec9390a562726186596c07d4cc38a2f114a","tests/ui/pin_project/overlapping_unpin_struct.rs":"cb3d6d4087b8b4c917bc71e55764775f6bb018a77cda5c6b726afacd66789859","tests/ui/pin_project/overlapping_unpin_struct.stderr":"c0f2f178f779c9f0788fcf7ea697662f93fade1080cf7c014540d78aba01e100","tests/ui/pin_project/packed.rs":"6a24ac14e61e5d3e3b495f49d226318ec500e5aa46f34acf8e4f3e0827bd9604","tests/ui/pin_project/packed.stderr":"bee0ce6ee7943d2e6e71f7e3b9bf2602516cfbf9b03d4c77d8140803f95639ff","tests/ui/pin_project/unpin_sneaky.rs":"6e6385e067679c3bf5233163b3fa99ff2fc28bcb93fe594a5c987c0db7c0eaa6","tests/ui/pin_project/unpin_sneaky.stderr":"d2b305d2ee117a4734390fbd6d9b9c6214443b61cdc15bef44ef6789bc66352a","tests/ui/pin_project/unsupported.rs":"3ad5f584f9e56be3573133fba026a7bb378595d0a4b7b1bcbb6b78e37cef20a7","tests/ui/pin_project/unsupported.stderr":"93433fdb5c0542036a5a44f25da885d0c1ae78ad84094b924debe7af4cd8b73b","tests/ui/pinned_drop/call-drop-inner.rs":"0618b60a450c99b5953b302e26c68df1abe7632af3d9baf3639eb60091e4ff4e","tests/ui/pinned_drop/call-drop-inner.stderr":"d4a998b7f6a0378d179a9d32ecf45c5e20da5f25bce559a26e603bb785c6b9fb","tests/ui/pinned_drop/conditional-drop-impl.rs":"df03f38b2a331f339af2734fdd4ad2f637b2e2189d9928599adebe04ebee517f","tests/ui/pinned_drop/conditional-drop-impl.stderr":"0236b5e4bc14c550409c62cc4d5213467e53783e44ae5253bbafcbc9a1729d2b"},"package":"3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"}
\ No newline at end of file
diff --git a/crates/pin-project-lite/Android.bp b/crates/pin-project-lite/Android.bp
index ef511ee..9b15848 100644
--- a/crates/pin-project-lite/Android.bp
+++ b/crates/pin-project-lite/Android.bp
@@ -18,7 +18,7 @@
     host_supported: true,
     crate_name: "pin_project_lite",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.2.15",
+    cargo_pkg_version: "0.2.16",
     crate_root: "src/lib.rs",
     edition: "2018",
     apex_available: [
diff --git a/crates/pin-project-lite/CHANGELOG.md b/crates/pin-project-lite/CHANGELOG.md
index 50d61cc..2c6bf8c 100644
--- a/crates/pin-project-lite/CHANGELOG.md
+++ b/crates/pin-project-lite/CHANGELOG.md
@@ -12,6 +12,10 @@
 
 ## [Unreleased]
 
+## [0.2.16] - 2025-01-06
+
+- Suppress `clippy::absolute_paths`, `clippy::min_ident_chars`, and `clippy::single_char_lifetime_names` lints in generated code.
+
 ## [0.2.15] - 2024-10-24
 
 - Work around an issue on negative_impls that allows unsound overlapping `Unpin` implementations. ([#84](https://github.com/taiki-e/pin-project-lite/pull/84))
@@ -222,7 +226,8 @@
 
 Initial release
 
-[Unreleased]: https://github.com/taiki-e/pin-project-lite/compare/v0.2.15...HEAD
+[Unreleased]: https://github.com/taiki-e/pin-project-lite/compare/v0.2.16...HEAD
+[0.2.16]: https://github.com/taiki-e/pin-project-lite/compare/v0.2.15...v0.2.16
 [0.2.15]: https://github.com/taiki-e/pin-project-lite/compare/v0.2.14...v0.2.15
 [0.2.14]: https://github.com/taiki-e/pin-project-lite/compare/v0.2.13...v0.2.14
 [0.2.13]: https://github.com/taiki-e/pin-project-lite/compare/v0.2.12...v0.2.13
diff --git a/crates/pin-project-lite/Cargo.toml b/crates/pin-project-lite/Cargo.toml
index 4370a2e..fb4ba2c 100644
--- a/crates/pin-project-lite/Cargo.toml
+++ b/crates/pin-project-lite/Cargo.toml
@@ -13,13 +13,14 @@
 edition = "2018"
 rust-version = "1.37"
 name = "pin-project-lite"
-version = "0.2.15"
+version = "0.2.16"
 build = false
 exclude = [
     "/.*",
     "/tools",
     "/DEVELOPMENT.md",
 ]
+autolib = false
 autobins = false
 autoexamples = false
 autotests = false
diff --git a/crates/pin-project-lite/METADATA b/crates/pin-project-lite/METADATA
index 2eff223..37d8b85 100644
--- a/crates/pin-project-lite/METADATA
+++ b/crates/pin-project-lite/METADATA
@@ -1,17 +1,17 @@
 name: "pin-project-lite"
 description: "A lightweight version of pin-project written with declarative macros."
 third_party {
-  version: "0.2.15"
+  version: "0.2.16"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2024
-    month: 12
-    day: 20
+    year: 2025
+    month: 1
+    day: 14
   }
   homepage: "https://crates.io/crates/pin-project-lite"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.15.crate"
-    version: "0.2.15"
+    value: "https://static.crates.io/crates/pin-project-lite/pin-project-lite-0.2.16.crate"
+    version: "0.2.16"
   }
 }
diff --git a/crates/pin-project-lite/src/lib.rs b/crates/pin-project-lite/src/lib.rs
index 51c1624..679e869 100644
--- a/crates/pin-project-lite/src/lib.rs
+++ b/crates/pin-project-lite/src/lib.rs
@@ -484,13 +484,18 @@
         }
         $($(#[$drop_impl_attrs:meta])* impl $($pinned_drop:tt)*)?
     ) => {
-        #[allow(explicit_outlives_requirements)] // https://github.com/rust-lang/rust/issues/60993
-        #[allow(single_use_lifetimes)] // https://github.com/rust-lang/rust/issues/55058
-        // This lint warns of `clippy::*` generated by external macros.
-        // We allow this lint for compatibility with older compilers.
-        #[allow(clippy::unknown_clippy_lints)]
-        #[allow(clippy::redundant_pub_crate)] // This lint warns `pub(crate)` field in private struct.
-        #[allow(clippy::used_underscore_binding)]
+        #[allow(
+            explicit_outlives_requirements, // https://github.com/rust-lang/rust/issues/60993
+            single_use_lifetimes, // https://github.com/rust-lang/rust/issues/55058
+            // This lint warns of `clippy::*` generated by external macros.
+            // We allow this lint for compatibility with older compilers.
+            clippy::unknown_clippy_lints,
+            clippy::absolute_paths,
+            clippy::min_ident_chars,
+            clippy::redundant_pub_crate, // This lint warns `pub(crate)` field in private struct.
+            clippy::single_char_lifetime_names,
+            clippy::used_underscore_binding
+        )]
         const _: () = {
             $crate::__pin_project_make_proj_ty! {
                 [$($proj_mut_ident)? Projection]
@@ -517,7 +522,7 @@
                 }
             }
 
-            impl <$($impl_generics)*> $ident <$($ty_generics)*>
+            impl<$($impl_generics)*> $ident <$($ty_generics)*>
             $(where
                 $($where_clause)*)?
             {
@@ -627,13 +632,18 @@
         }
         $($(#[$drop_impl_attrs:meta])* impl $($pinned_drop:tt)*)?
     ) => {
-        #[allow(single_use_lifetimes)] // https://github.com/rust-lang/rust/issues/55058
-        // This lint warns of `clippy::*` generated by external macros.
-        // We allow this lint for compatibility with older compilers.
-        #[allow(clippy::unknown_clippy_lints)]
-        #[allow(clippy::used_underscore_binding)]
+        #[allow(
+            single_use_lifetimes, // https://github.com/rust-lang/rust/issues/55058
+            // This lint warns of `clippy::*` generated by external macros.
+            // We allow this lint for compatibility with older compilers.
+            clippy::unknown_clippy_lints,
+            clippy::absolute_paths,
+            clippy::min_ident_chars,
+            clippy::single_char_lifetime_names,
+            clippy::used_underscore_binding
+        )]
         const _: () = {
-            impl <$($impl_generics)*> $ident <$($ty_generics)*>
+            impl<$($impl_generics)*> $ident <$($ty_generics)*>
             $(where
                 $($where_clause)*)?
             {
@@ -850,15 +860,20 @@
         [$($body_data:tt)+]
     ) => {
         #[doc(hidden)] // Workaround for rustc bug: see https://github.com/taiki-e/pin-project-lite/issues/77#issuecomment-1671540180 for more.
-        #[allow(dead_code)] // This lint warns unused fields/variants.
-        #[allow(single_use_lifetimes)] // https://github.com/rust-lang/rust/issues/55058
-        // This lint warns of `clippy::*` generated by external macros.
-        // We allow this lint for compatibility with older compilers.
-        #[allow(clippy::unknown_clippy_lints)]
-        #[allow(clippy::mut_mut)] // This lint warns `&mut &mut <ty>`. (only needed for project)
-        #[allow(clippy::redundant_pub_crate)] // This lint warns `pub(crate)` field in private struct.
-        #[allow(clippy::ref_option_ref)] // This lint warns `&Option<&<ty>>`. (only needed for project_ref)
-        #[allow(clippy::type_repetition_in_bounds)] // https://github.com/rust-lang/rust-clippy/issues/4326
+        #[allow(
+            dead_code, // This lint warns unused fields/variants.
+            single_use_lifetimes, // https://github.com/rust-lang/rust/issues/55058
+            // This lint warns of `clippy::*` generated by external macros.
+            // We allow this lint for compatibility with older compilers.
+            clippy::unknown_clippy_lints,
+            clippy::absolute_paths,
+            clippy::min_ident_chars,
+            clippy::mut_mut, // This lint warns `&mut &mut <ty>`. (only needed for project)
+            clippy::redundant_pub_crate, // This lint warns `pub(crate)` field in private struct.
+            clippy::ref_option_ref, // This lint warns `&Option<&<ty>>`. (only needed for project_ref)
+            clippy::single_char_lifetime_names,
+            clippy::type_repetition_in_bounds // https://github.com/rust-lang/rust-clippy/issues/4326
+        )]
         $proj_vis $struct_ty_ident $proj_ty_ident <'__pin, $($impl_generics)*>
         where
             $ident <$($ty_generics)*>: '__pin
@@ -944,11 +959,19 @@
         [$($body_data:tt)+]
     ) => {
         #[doc(hidden)] // Workaround for rustc bug: see https://github.com/taiki-e/pin-project-lite/issues/77#issuecomment-1671540180 for more.
-        #[allow(dead_code)] // This lint warns unused fields/variants.
-        #[allow(single_use_lifetimes)] // https://github.com/rust-lang/rust/issues/55058
-        #[allow(clippy::mut_mut)] // This lint warns `&mut &mut <ty>`. (only needed for project)
-        #[allow(clippy::redundant_pub_crate)] // This lint warns `pub(crate)` field in private struct.
-        #[allow(clippy::type_repetition_in_bounds)] // https://github.com/rust-lang/rust-clippy/issues/4326
+        #[allow(
+            dead_code, // This lint warns unused fields/variants.
+            single_use_lifetimes, // https://github.com/rust-lang/rust/issues/55058
+            // This lint warns of `clippy::*` generated by external macros.
+            // We allow this lint for compatibility with older compilers.
+            clippy::unknown_clippy_lints,
+            clippy::absolute_paths,
+            clippy::min_ident_chars,
+            clippy::mut_mut, // This lint warns `&mut &mut <ty>`. (only needed for project)
+            clippy::redundant_pub_crate, // This lint warns `pub(crate)` field in private struct.
+            clippy::single_char_lifetime_names,
+            clippy::type_repetition_in_bounds // https://github.com/rust-lang/rust-clippy/issues/4326
+        )]
         $proj_vis $struct_ty_ident $proj_ty_ident <$($impl_generics)*>
         where
             $($($where_clause)*)?
@@ -1228,7 +1251,7 @@
             __dummy_lifetime: $crate::__private::PhantomData<&'__pin ()>,
             $($field)*
         }
-        impl <'__pin, $($impl_generics)*> $crate::__private::Unpin for $ident <$($ty_generics)*>
+        impl<'__pin, $($impl_generics)*> $crate::__private::Unpin for $ident <$($ty_generics)*>
         where
             $crate::__private::PinnedFieldsOf<__Origin<'__pin, $($ty_generics)*>>:
                 $crate::__private::Unpin
@@ -1242,12 +1265,14 @@
         [$($impl_generics:tt)*] [$($ty_generics:tt)*] [$(where $($where_clause:tt)*)?]
         $($field:tt)*
     ) => {
+        // TODO: Using `<unsized type>: Sized` here allow emulating real negative_impls...
+        // https://github.com/taiki-e/pin-project/issues/340#issuecomment-2428002670
         #[doc(hidden)]
-        impl <'__pin, $($impl_generics)*> $crate::__private::Unpin for $ident <$($ty_generics)*>
+        impl<'__pin, $($impl_generics)*> $crate::__private::Unpin for $ident <$($ty_generics)*>
         where
             (
-                ::core::marker::PhantomData<&'__pin ()>,
-                ::core::marker::PhantomPinned,
+                $crate::__private::PhantomData<&'__pin ()>,
+                $crate::__private::PhantomPinned,
             ): $crate::__private::Unpin
             $(, $($where_clause)*)?
         {
@@ -1354,7 +1379,7 @@
         //
         // There are two possible cases:
         // 1. The user type does not implement Drop. In this case,
-        // the first blanked impl will not apply to it. This code
+        // the first blanket impl will not apply to it. This code
         // will compile, as there is only one impl of MustNotImplDrop for the user type
         // 2. The user type does impl Drop. This will make the blanket impl applicable,
         // which will then conflict with the explicit MustNotImplDrop impl below.
@@ -1362,7 +1387,7 @@
         trait MustNotImplDrop {}
         #[allow(clippy::drop_bounds, drop_bounds)]
         impl<T: $crate::__private::Drop> MustNotImplDrop for T {}
-        impl <$($impl_generics)*> MustNotImplDrop for $ident <$($ty_generics)*>
+        impl<$($impl_generics)*> MustNotImplDrop for $ident <$($ty_generics)*>
         $(where
             $($where_clause)*)?
         {
@@ -1669,7 +1694,7 @@
     use core::mem::ManuallyDrop;
     #[doc(hidden)]
     pub use core::{
-        marker::{PhantomData, Unpin},
+        marker::{PhantomData, PhantomPinned, Unpin},
         ops::Drop,
         pin::Pin,
         ptr,
diff --git a/crates/pin-project-lite/tests/expand/default/enum.expanded.rs b/crates/pin-project-lite/tests/expand/default/enum.expanded.rs
index b01e4a8..86b0035 100644
--- a/crates/pin-project-lite/tests/expand/default/enum.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/default/enum.expanded.rs
@@ -4,13 +4,18 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 enum EnumProj<'__pin, T, U>
 where
     Enum<T, U>: '__pin,
@@ -22,13 +27,18 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 enum EnumProjRef<'__pin, T, U>
 where
     Enum<T, U>: '__pin,
@@ -40,18 +50,29 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 enum EnumProjReplace<T, U> {
     Struct { pinned: ::pin_project_lite::__private::PhantomData<T>, unpinned: U },
     Unit,
 }
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     impl<T, U> Enum<T, U> {
         #[doc(hidden)]
diff --git a/crates/pin-project-lite/tests/expand/default/struct.expanded.rs b/crates/pin-project-lite/tests/expand/default/struct.expanded.rs
index 4c86c89..4eaa44e 100644
--- a/crates/pin-project-lite/tests/expand/default/struct.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/default/struct.expanded.rs
@@ -3,20 +3,30 @@
     pinned: T,
     unpinned: U,
 }
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[doc(hidden)]
-    #[allow(dead_code)]
-    #[allow(single_use_lifetimes)]
-    #[allow(clippy::unknown_clippy_lints)]
-    #[allow(clippy::mut_mut)]
-    #[allow(clippy::redundant_pub_crate)]
-    #[allow(clippy::ref_option_ref)]
-    #[allow(clippy::type_repetition_in_bounds)]
+    #[allow(
+        dead_code,
+        single_use_lifetimes,
+        clippy::unknown_clippy_lints,
+        clippy::absolute_paths,
+        clippy::min_ident_chars,
+        clippy::mut_mut,
+        clippy::redundant_pub_crate,
+        clippy::ref_option_ref,
+        clippy::single_char_lifetime_names,
+        clippy::type_repetition_in_bounds
+    )]
     struct Projection<'__pin, T, U>
     where
         Struct<T, U>: '__pin,
@@ -25,13 +35,18 @@
         unpinned: &'__pin mut (U),
     }
     #[doc(hidden)]
-    #[allow(dead_code)]
-    #[allow(single_use_lifetimes)]
-    #[allow(clippy::unknown_clippy_lints)]
-    #[allow(clippy::mut_mut)]
-    #[allow(clippy::redundant_pub_crate)]
-    #[allow(clippy::ref_option_ref)]
-    #[allow(clippy::type_repetition_in_bounds)]
+    #[allow(
+        dead_code,
+        single_use_lifetimes,
+        clippy::unknown_clippy_lints,
+        clippy::absolute_paths,
+        clippy::min_ident_chars,
+        clippy::mut_mut,
+        clippy::redundant_pub_crate,
+        clippy::ref_option_ref,
+        clippy::single_char_lifetime_names,
+        clippy::type_repetition_in_bounds
+    )]
     struct ProjectionRef<'__pin, T, U>
     where
         Struct<T, U>: '__pin,
diff --git a/crates/pin-project-lite/tests/expand/multifields/enum.expanded.rs b/crates/pin-project-lite/tests/expand/multifields/enum.expanded.rs
index f65dd3e..255df6f 100644
--- a/crates/pin-project-lite/tests/expand/multifields/enum.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/multifields/enum.expanded.rs
@@ -4,11 +4,17 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 enum EnumProjReplace<T, U> {
     Struct {
         pinned1: ::pin_project_lite::__private::PhantomData<T>,
@@ -18,9 +24,14 @@
     },
     Unit,
 }
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     impl<T, U> Enum<T, U> {
         #[doc(hidden)]
diff --git a/crates/pin-project-lite/tests/expand/multifields/struct.expanded.rs b/crates/pin-project-lite/tests/expand/multifields/struct.expanded.rs
index 30716b1..2b2774e 100644
--- a/crates/pin-project-lite/tests/expand/multifields/struct.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/multifields/struct.expanded.rs
@@ -6,31 +6,47 @@
     unpinned2: U,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 struct StructProjReplace<T, U> {
     pinned1: ::pin_project_lite::__private::PhantomData<T>,
     pinned2: ::pin_project_lite::__private::PhantomData<T>,
     unpinned1: U,
     unpinned2: U,
 }
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[doc(hidden)]
-    #[allow(dead_code)]
-    #[allow(single_use_lifetimes)]
-    #[allow(clippy::unknown_clippy_lints)]
-    #[allow(clippy::mut_mut)]
-    #[allow(clippy::redundant_pub_crate)]
-    #[allow(clippy::ref_option_ref)]
-    #[allow(clippy::type_repetition_in_bounds)]
+    #[allow(
+        dead_code,
+        single_use_lifetimes,
+        clippy::unknown_clippy_lints,
+        clippy::absolute_paths,
+        clippy::min_ident_chars,
+        clippy::mut_mut,
+        clippy::redundant_pub_crate,
+        clippy::ref_option_ref,
+        clippy::single_char_lifetime_names,
+        clippy::type_repetition_in_bounds
+    )]
     struct Projection<'__pin, T, U>
     where
         Struct<T, U>: '__pin,
@@ -41,13 +57,18 @@
         unpinned2: &'__pin mut (U),
     }
     #[doc(hidden)]
-    #[allow(dead_code)]
-    #[allow(single_use_lifetimes)]
-    #[allow(clippy::unknown_clippy_lints)]
-    #[allow(clippy::mut_mut)]
-    #[allow(clippy::redundant_pub_crate)]
-    #[allow(clippy::ref_option_ref)]
-    #[allow(clippy::type_repetition_in_bounds)]
+    #[allow(
+        dead_code,
+        single_use_lifetimes,
+        clippy::unknown_clippy_lints,
+        clippy::absolute_paths,
+        clippy::min_ident_chars,
+        clippy::mut_mut,
+        clippy::redundant_pub_crate,
+        clippy::ref_option_ref,
+        clippy::single_char_lifetime_names,
+        clippy::type_repetition_in_bounds
+    )]
     struct ProjectionRef<'__pin, T, U>
     where
         Struct<T, U>: '__pin,
diff --git a/crates/pin-project-lite/tests/expand/naming/enum-all.expanded.rs b/crates/pin-project-lite/tests/expand/naming/enum-all.expanded.rs
index b01e4a8..86b0035 100644
--- a/crates/pin-project-lite/tests/expand/naming/enum-all.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/naming/enum-all.expanded.rs
@@ -4,13 +4,18 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 enum EnumProj<'__pin, T, U>
 where
     Enum<T, U>: '__pin,
@@ -22,13 +27,18 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 enum EnumProjRef<'__pin, T, U>
 where
     Enum<T, U>: '__pin,
@@ -40,18 +50,29 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 enum EnumProjReplace<T, U> {
     Struct { pinned: ::pin_project_lite::__private::PhantomData<T>, unpinned: U },
     Unit,
 }
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     impl<T, U> Enum<T, U> {
         #[doc(hidden)]
diff --git a/crates/pin-project-lite/tests/expand/naming/enum-mut.expanded.rs b/crates/pin-project-lite/tests/expand/naming/enum-mut.expanded.rs
index 7143c74..5db4770 100644
--- a/crates/pin-project-lite/tests/expand/naming/enum-mut.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/naming/enum-mut.expanded.rs
@@ -4,13 +4,18 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 enum EnumProj<'__pin, T, U>
 where
     Enum<T, U>: '__pin,
@@ -21,9 +26,14 @@
     },
     Unit,
 }
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     impl<T, U> Enum<T, U> {
         #[doc(hidden)]
diff --git a/crates/pin-project-lite/tests/expand/naming/enum-none.expanded.rs b/crates/pin-project-lite/tests/expand/naming/enum-none.expanded.rs
index b03fb6d..cb8233b 100644
--- a/crates/pin-project-lite/tests/expand/naming/enum-none.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/naming/enum-none.expanded.rs
@@ -3,9 +3,14 @@
     Struct { pinned: T, unpinned: U },
     Unit,
 }
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     impl<T, U> Enum<T, U> {}
     #[allow(non_snake_case)]
diff --git a/crates/pin-project-lite/tests/expand/naming/enum-ref.expanded.rs b/crates/pin-project-lite/tests/expand/naming/enum-ref.expanded.rs
index 27476d2..9dd9fa9 100644
--- a/crates/pin-project-lite/tests/expand/naming/enum-ref.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/naming/enum-ref.expanded.rs
@@ -4,13 +4,18 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 enum EnumProjRef<'__pin, T, U>
 where
     Enum<T, U>: '__pin,
@@ -21,9 +26,14 @@
     },
     Unit,
 }
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     impl<T, U> Enum<T, U> {
         #[doc(hidden)]
diff --git a/crates/pin-project-lite/tests/expand/naming/struct-all.expanded.rs b/crates/pin-project-lite/tests/expand/naming/struct-all.expanded.rs
index e9abe0f..eabbd27 100644
--- a/crates/pin-project-lite/tests/expand/naming/struct-all.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/naming/struct-all.expanded.rs
@@ -4,13 +4,18 @@
     unpinned: U,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 struct StructProj<'__pin, T, U>
 where
     Struct<T, U>: '__pin,
@@ -19,13 +24,18 @@
     unpinned: &'__pin mut (U),
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 struct StructProjRef<'__pin, T, U>
 where
     Struct<T, U>: '__pin,
@@ -34,20 +44,31 @@
     unpinned: &'__pin (U),
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 struct StructProjReplace<T, U> {
     pinned: ::pin_project_lite::__private::PhantomData<T>,
     unpinned: U,
 }
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     impl<T, U> Struct<T, U> {
         #[doc(hidden)]
diff --git a/crates/pin-project-lite/tests/expand/naming/struct-mut.expanded.rs b/crates/pin-project-lite/tests/expand/naming/struct-mut.expanded.rs
index 5655548..850cf1b 100644
--- a/crates/pin-project-lite/tests/expand/naming/struct-mut.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/naming/struct-mut.expanded.rs
@@ -4,13 +4,18 @@
     unpinned: U,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 struct StructProj<'__pin, T, U>
 where
     Struct<T, U>: '__pin,
@@ -18,20 +23,30 @@
     pinned: ::pin_project_lite::__private::Pin<&'__pin mut (T)>,
     unpinned: &'__pin mut (U),
 }
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[doc(hidden)]
-    #[allow(dead_code)]
-    #[allow(single_use_lifetimes)]
-    #[allow(clippy::unknown_clippy_lints)]
-    #[allow(clippy::mut_mut)]
-    #[allow(clippy::redundant_pub_crate)]
-    #[allow(clippy::ref_option_ref)]
-    #[allow(clippy::type_repetition_in_bounds)]
+    #[allow(
+        dead_code,
+        single_use_lifetimes,
+        clippy::unknown_clippy_lints,
+        clippy::absolute_paths,
+        clippy::min_ident_chars,
+        clippy::mut_mut,
+        clippy::redundant_pub_crate,
+        clippy::ref_option_ref,
+        clippy::single_char_lifetime_names,
+        clippy::type_repetition_in_bounds
+    )]
     struct ProjectionRef<'__pin, T, U>
     where
         Struct<T, U>: '__pin,
diff --git a/crates/pin-project-lite/tests/expand/naming/struct-none.expanded.rs b/crates/pin-project-lite/tests/expand/naming/struct-none.expanded.rs
index 4c86c89..4eaa44e 100644
--- a/crates/pin-project-lite/tests/expand/naming/struct-none.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/naming/struct-none.expanded.rs
@@ -3,20 +3,30 @@
     pinned: T,
     unpinned: U,
 }
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[doc(hidden)]
-    #[allow(dead_code)]
-    #[allow(single_use_lifetimes)]
-    #[allow(clippy::unknown_clippy_lints)]
-    #[allow(clippy::mut_mut)]
-    #[allow(clippy::redundant_pub_crate)]
-    #[allow(clippy::ref_option_ref)]
-    #[allow(clippy::type_repetition_in_bounds)]
+    #[allow(
+        dead_code,
+        single_use_lifetimes,
+        clippy::unknown_clippy_lints,
+        clippy::absolute_paths,
+        clippy::min_ident_chars,
+        clippy::mut_mut,
+        clippy::redundant_pub_crate,
+        clippy::ref_option_ref,
+        clippy::single_char_lifetime_names,
+        clippy::type_repetition_in_bounds
+    )]
     struct Projection<'__pin, T, U>
     where
         Struct<T, U>: '__pin,
@@ -25,13 +35,18 @@
         unpinned: &'__pin mut (U),
     }
     #[doc(hidden)]
-    #[allow(dead_code)]
-    #[allow(single_use_lifetimes)]
-    #[allow(clippy::unknown_clippy_lints)]
-    #[allow(clippy::mut_mut)]
-    #[allow(clippy::redundant_pub_crate)]
-    #[allow(clippy::ref_option_ref)]
-    #[allow(clippy::type_repetition_in_bounds)]
+    #[allow(
+        dead_code,
+        single_use_lifetimes,
+        clippy::unknown_clippy_lints,
+        clippy::absolute_paths,
+        clippy::min_ident_chars,
+        clippy::mut_mut,
+        clippy::redundant_pub_crate,
+        clippy::ref_option_ref,
+        clippy::single_char_lifetime_names,
+        clippy::type_repetition_in_bounds
+    )]
     struct ProjectionRef<'__pin, T, U>
     where
         Struct<T, U>: '__pin,
diff --git a/crates/pin-project-lite/tests/expand/naming/struct-ref.expanded.rs b/crates/pin-project-lite/tests/expand/naming/struct-ref.expanded.rs
index 5c834b6..3891fb1 100644
--- a/crates/pin-project-lite/tests/expand/naming/struct-ref.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/naming/struct-ref.expanded.rs
@@ -4,13 +4,18 @@
     unpinned: U,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 struct StructProjRef<'__pin, T, U>
 where
     Struct<T, U>: '__pin,
@@ -18,20 +23,30 @@
     pinned: ::pin_project_lite::__private::Pin<&'__pin (T)>,
     unpinned: &'__pin (U),
 }
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[doc(hidden)]
-    #[allow(dead_code)]
-    #[allow(single_use_lifetimes)]
-    #[allow(clippy::unknown_clippy_lints)]
-    #[allow(clippy::mut_mut)]
-    #[allow(clippy::redundant_pub_crate)]
-    #[allow(clippy::ref_option_ref)]
-    #[allow(clippy::type_repetition_in_bounds)]
+    #[allow(
+        dead_code,
+        single_use_lifetimes,
+        clippy::unknown_clippy_lints,
+        clippy::absolute_paths,
+        clippy::min_ident_chars,
+        clippy::mut_mut,
+        clippy::redundant_pub_crate,
+        clippy::ref_option_ref,
+        clippy::single_char_lifetime_names,
+        clippy::type_repetition_in_bounds
+    )]
     struct Projection<'__pin, T, U>
     where
         Struct<T, U>: '__pin,
diff --git a/crates/pin-project-lite/tests/expand/not_unpin/enum.expanded.rs b/crates/pin-project-lite/tests/expand/not_unpin/enum.expanded.rs
index 02cdc23..bc3f8a5 100644
--- a/crates/pin-project-lite/tests/expand/not_unpin/enum.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/not_unpin/enum.expanded.rs
@@ -4,13 +4,18 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 enum EnumProj<'__pin, T, U>
 where
     Enum<T, U>: '__pin,
@@ -22,13 +27,18 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 enum EnumProjRef<'__pin, T, U>
 where
     Enum<T, U>: '__pin,
@@ -39,9 +49,14 @@
     },
     Unit,
 }
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     impl<T, U> Enum<T, U> {
         #[doc(hidden)]
@@ -87,8 +102,8 @@
     impl<'__pin, T, U> ::pin_project_lite::__private::Unpin for Enum<T, U>
     where
         (
-            ::core::marker::PhantomData<&'__pin ()>,
-            ::core::marker::PhantomPinned,
+            ::pin_project_lite::__private::PhantomData<&'__pin ()>,
+            ::pin_project_lite::__private::PhantomPinned,
         ): ::pin_project_lite::__private::Unpin,
     {}
     trait MustNotImplDrop {}
diff --git a/crates/pin-project-lite/tests/expand/not_unpin/struct.expanded.rs b/crates/pin-project-lite/tests/expand/not_unpin/struct.expanded.rs
index 2e590b6..45b1865 100644
--- a/crates/pin-project-lite/tests/expand/not_unpin/struct.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/not_unpin/struct.expanded.rs
@@ -4,13 +4,18 @@
     unpinned: U,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 struct StructProj<'__pin, T, U>
 where
     Struct<T, U>: '__pin,
@@ -19,13 +24,18 @@
     unpinned: &'__pin mut (U),
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 struct StructProjRef<'__pin, T, U>
 where
     Struct<T, U>: '__pin,
@@ -33,11 +43,16 @@
     pinned: ::pin_project_lite::__private::Pin<&'__pin (T)>,
     unpinned: &'__pin (U),
 }
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     impl<T, U> Struct<T, U> {
         #[doc(hidden)]
@@ -71,8 +86,8 @@
     impl<'__pin, T, U> ::pin_project_lite::__private::Unpin for Struct<T, U>
     where
         (
-            ::core::marker::PhantomData<&'__pin ()>,
-            ::core::marker::PhantomPinned,
+            ::pin_project_lite::__private::PhantomData<&'__pin ()>,
+            ::pin_project_lite::__private::PhantomPinned,
         ): ::pin_project_lite::__private::Unpin,
     {}
     trait MustNotImplDrop {}
diff --git a/crates/pin-project-lite/tests/expand/pinned_drop/enum.expanded.rs b/crates/pin-project-lite/tests/expand/pinned_drop/enum.expanded.rs
index c591a32..2199c82 100644
--- a/crates/pin-project-lite/tests/expand/pinned_drop/enum.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/pinned_drop/enum.expanded.rs
@@ -4,13 +4,18 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 enum EnumProj<'__pin, T, U>
 where
     Enum<T, U>: '__pin,
@@ -22,13 +27,18 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 enum EnumProjRef<'__pin, T, U>
 where
     Enum<T, U>: '__pin,
@@ -39,9 +49,14 @@
     },
     Unit,
 }
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     impl<T, U> Enum<T, U> {
         #[doc(hidden)]
diff --git a/crates/pin-project-lite/tests/expand/pinned_drop/struct.expanded.rs b/crates/pin-project-lite/tests/expand/pinned_drop/struct.expanded.rs
index 366171f..cb973eb 100644
--- a/crates/pin-project-lite/tests/expand/pinned_drop/struct.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/pinned_drop/struct.expanded.rs
@@ -3,20 +3,30 @@
     pinned: T,
     unpinned: U,
 }
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[doc(hidden)]
-    #[allow(dead_code)]
-    #[allow(single_use_lifetimes)]
-    #[allow(clippy::unknown_clippy_lints)]
-    #[allow(clippy::mut_mut)]
-    #[allow(clippy::redundant_pub_crate)]
-    #[allow(clippy::ref_option_ref)]
-    #[allow(clippy::type_repetition_in_bounds)]
+    #[allow(
+        dead_code,
+        single_use_lifetimes,
+        clippy::unknown_clippy_lints,
+        clippy::absolute_paths,
+        clippy::min_ident_chars,
+        clippy::mut_mut,
+        clippy::redundant_pub_crate,
+        clippy::ref_option_ref,
+        clippy::single_char_lifetime_names,
+        clippy::type_repetition_in_bounds
+    )]
     struct Projection<'__pin, T, U>
     where
         Struct<T, U>: '__pin,
@@ -25,13 +35,18 @@
         unpinned: &'__pin mut (U),
     }
     #[doc(hidden)]
-    #[allow(dead_code)]
-    #[allow(single_use_lifetimes)]
-    #[allow(clippy::unknown_clippy_lints)]
-    #[allow(clippy::mut_mut)]
-    #[allow(clippy::redundant_pub_crate)]
-    #[allow(clippy::ref_option_ref)]
-    #[allow(clippy::type_repetition_in_bounds)]
+    #[allow(
+        dead_code,
+        single_use_lifetimes,
+        clippy::unknown_clippy_lints,
+        clippy::absolute_paths,
+        clippy::min_ident_chars,
+        clippy::mut_mut,
+        clippy::redundant_pub_crate,
+        clippy::ref_option_ref,
+        clippy::single_char_lifetime_names,
+        clippy::type_repetition_in_bounds
+    )]
     struct ProjectionRef<'__pin, T, U>
     where
         Struct<T, U>: '__pin,
diff --git a/crates/pin-project-lite/tests/expand/pub/enum.expanded.rs b/crates/pin-project-lite/tests/expand/pub/enum.expanded.rs
index eddb690..b2c3ce9 100644
--- a/crates/pin-project-lite/tests/expand/pub/enum.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/pub/enum.expanded.rs
@@ -4,13 +4,18 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 pub(crate) enum EnumProj<'__pin, T, U>
 where
     Enum<T, U>: '__pin,
@@ -22,13 +27,18 @@
     Unit,
 }
 #[doc(hidden)]
-#[allow(dead_code)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::mut_mut)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::ref_option_ref)]
-#[allow(clippy::type_repetition_in_bounds)]
+#[allow(
+    dead_code,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::mut_mut,
+    clippy::redundant_pub_crate,
+    clippy::ref_option_ref,
+    clippy::single_char_lifetime_names,
+    clippy::type_repetition_in_bounds
+)]
 pub(crate) enum EnumProjRef<'__pin, T, U>
 where
     Enum<T, U>: '__pin,
@@ -39,9 +49,14 @@
     },
     Unit,
 }
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     impl<T, U> Enum<T, U> {
         #[doc(hidden)]
diff --git a/crates/pin-project-lite/tests/expand/pub/struct.expanded.rs b/crates/pin-project-lite/tests/expand/pub/struct.expanded.rs
index 7df7e3f..b17ba79 100644
--- a/crates/pin-project-lite/tests/expand/pub/struct.expanded.rs
+++ b/crates/pin-project-lite/tests/expand/pub/struct.expanded.rs
@@ -3,20 +3,30 @@
     pub pinned: T,
     pub unpinned: U,
 }
-#[allow(explicit_outlives_requirements)]
-#[allow(single_use_lifetimes)]
-#[allow(clippy::unknown_clippy_lints)]
-#[allow(clippy::redundant_pub_crate)]
-#[allow(clippy::used_underscore_binding)]
+#[allow(
+    explicit_outlives_requirements,
+    single_use_lifetimes,
+    clippy::unknown_clippy_lints,
+    clippy::absolute_paths,
+    clippy::min_ident_chars,
+    clippy::redundant_pub_crate,
+    clippy::single_char_lifetime_names,
+    clippy::used_underscore_binding
+)]
 const _: () = {
     #[doc(hidden)]
-    #[allow(dead_code)]
-    #[allow(single_use_lifetimes)]
-    #[allow(clippy::unknown_clippy_lints)]
-    #[allow(clippy::mut_mut)]
-    #[allow(clippy::redundant_pub_crate)]
-    #[allow(clippy::ref_option_ref)]
-    #[allow(clippy::type_repetition_in_bounds)]
+    #[allow(
+        dead_code,
+        single_use_lifetimes,
+        clippy::unknown_clippy_lints,
+        clippy::absolute_paths,
+        clippy::min_ident_chars,
+        clippy::mut_mut,
+        clippy::redundant_pub_crate,
+        clippy::ref_option_ref,
+        clippy::single_char_lifetime_names,
+        clippy::type_repetition_in_bounds
+    )]
     pub(crate) struct Projection<'__pin, T, U>
     where
         Struct<T, U>: '__pin,
@@ -25,13 +35,18 @@
         pub unpinned: &'__pin mut (U),
     }
     #[doc(hidden)]
-    #[allow(dead_code)]
-    #[allow(single_use_lifetimes)]
-    #[allow(clippy::unknown_clippy_lints)]
-    #[allow(clippy::mut_mut)]
-    #[allow(clippy::redundant_pub_crate)]
-    #[allow(clippy::ref_option_ref)]
-    #[allow(clippy::type_repetition_in_bounds)]
+    #[allow(
+        dead_code,
+        single_use_lifetimes,
+        clippy::unknown_clippy_lints,
+        clippy::absolute_paths,
+        clippy::min_ident_chars,
+        clippy::mut_mut,
+        clippy::redundant_pub_crate,
+        clippy::ref_option_ref,
+        clippy::single_char_lifetime_names,
+        clippy::type_repetition_in_bounds
+    )]
     pub(crate) struct ProjectionRef<'__pin, T, U>
     where
         Struct<T, U>: '__pin,
diff --git a/crates/pin-project-lite/tests/include/basic.rs b/crates/pin-project-lite/tests/include/basic.rs
index bfd7d8f..5c7308a 100644
--- a/crates/pin-project-lite/tests/include/basic.rs
+++ b/crates/pin-project-lite/tests/include/basic.rs
@@ -5,6 +5,7 @@
 ::pin_project_lite::pin_project! {
     /// Testing default struct.
     #[derive(Debug)]
+    #[allow(clippy::exhaustive_structs)] // for the type itself
     pub struct DefaultStruct<T, U> {
         #[pin]
         pub pinned: T,
@@ -14,6 +15,7 @@
 
 ::pin_project_lite::pin_project! {
     /// Testing named struct.
+    #[allow(clippy::exhaustive_structs)] // for the type itself
     #[project = DefaultStructProj]
     #[project_ref = DefaultStructProjRef]
     #[derive(Debug)]
@@ -26,6 +28,7 @@
 
 ::pin_project_lite::pin_project! {
     /// Testing enum.
+    #[allow(clippy::exhaustive_enums)] // for the type itself
     #[project = DefaultEnumProj]
     #[project_ref = DefaultEnumProjRef]
     #[derive(Debug)]
@@ -40,3 +43,39 @@
         Unit,
     }
 }
+
+::pin_project_lite::pin_project! {
+    /// Testing pinned drop struct.
+    #[allow(clippy::exhaustive_structs)] // for the type itself
+    #[derive(Debug)]
+    pub struct PinnedDropStruct<T, U> {
+        #[pin]
+        pub pinned: T,
+        pub unpinned: U,
+    }
+    impl<T, U> PinnedDrop for PinnedDropStruct<T, U> {
+        fn drop(_this: Pin<&mut Self>) {}
+    }
+}
+
+::pin_project_lite::pin_project! {
+    /// Testing pinned drop enum.
+    #[allow(clippy::absolute_paths, clippy::exhaustive_enums)] // for the type itself
+    #[project = PinnedDropEnumProj]
+    #[project_ref = PinnedDropEnumProjRef]
+    #[derive(Debug)]
+    pub enum PinnedDropEnum<T: ::pin_project_lite::__private::Unpin, U> {
+        /// Struct variant.
+        Struct {
+            #[pin]
+            pinned: T,
+            unpinned: U,
+        },
+        /// Unit variant.
+        Unit,
+    }
+    #[allow(clippy::absolute_paths)]
+    impl<T: ::pin_project_lite::__private::Unpin, U> PinnedDrop for PinnedDropEnum<T, U> {
+        fn drop(_this: Pin<&mut Self>) {}
+    }
+}
diff --git a/crates/pin-project-lite/tests/ui/not_unpin/conflict-unpin.rs b/crates/pin-project-lite/tests/ui/not_unpin/conflict-unpin.rs
new file mode 100644
index 0000000..24a6c08
--- /dev/null
+++ b/crates/pin-project-lite/tests/ui/not_unpin/conflict-unpin.rs
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
+use pin_project_lite::pin_project;
+
+pin_project! {
+    #[project(!Unpin)]
+    struct Foo<T, U> {
+        #[pin]
+        f1: T,
+        f2: U,
+    }
+}
+
+impl<T, U> Unpin for Foo<T, U> where T: Unpin {}
+
+pin_project! {
+    #[project(!Unpin)]
+    struct Bar<T, U> {
+        #[pin]
+        f1: T,
+        f2: U,
+    }
+}
+
+impl<T, U> Unpin for Bar<T, U> {}
+
+pin_project! {
+    #[project(!Unpin)]
+    struct Baz<T, U> {
+        #[pin]
+        f1: T,
+        f2: U,
+    }
+}
+
+impl<T: Unpin, U: Unpin> Unpin for Baz<T, U> {}
+
+fn main() {}
diff --git a/crates/pin-project-lite/tests/ui/not_unpin/conflict-unpin.stderr b/crates/pin-project-lite/tests/ui/not_unpin/conflict-unpin.stderr
new file mode 100644
index 0000000..c915e4d
--- /dev/null
+++ b/crates/pin-project-lite/tests/ui/not_unpin/conflict-unpin.stderr
@@ -0,0 +1,50 @@
+error[E0119]: conflicting implementations of trait `Unpin` for type `Foo<_, _>`
+  --> tests/ui/not_unpin/conflict-unpin.rs:5:1
+   |
+5  | / pin_project! {
+6  | |     #[project(!Unpin)]
+7  | |     struct Foo<T, U> {
+8  | |         #[pin]
+...  |
+12 | | }
+   | |_^ conflicting implementation for `Foo<_, _>`
+13 |
+14 |   impl<T, U> Unpin for Foo<T, U> where T: Unpin {}
+   |   --------------------------------------------- first implementation here
+   |
+   = note: upstream crates may add a new impl of trait `std::marker::Unpin` for type `(std::marker::PhantomData<&()>, std::marker::PhantomPinned)` in future versions
+   = note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0119]: conflicting implementations of trait `Unpin` for type `Bar<_, _>`
+  --> tests/ui/not_unpin/conflict-unpin.rs:16:1
+   |
+16 | / pin_project! {
+17 | |     #[project(!Unpin)]
+18 | |     struct Bar<T, U> {
+19 | |         #[pin]
+...  |
+23 | | }
+   | |_^ conflicting implementation for `Bar<_, _>`
+24 |
+25 |   impl<T, U> Unpin for Bar<T, U> {}
+   |   ------------------------------ first implementation here
+   |
+   = note: upstream crates may add a new impl of trait `std::marker::Unpin` for type `(std::marker::PhantomData<&()>, std::marker::PhantomPinned)` in future versions
+   = note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0119]: conflicting implementations of trait `Unpin` for type `Baz<_, _>`
+  --> tests/ui/not_unpin/conflict-unpin.rs:27:1
+   |
+27 | / pin_project! {
+28 | |     #[project(!Unpin)]
+29 | |     struct Baz<T, U> {
+30 | |         #[pin]
+...  |
+34 | | }
+   | |_^ conflicting implementation for `Baz<_, _>`
+35 |
+36 |   impl<T: Unpin, U: Unpin> Unpin for Baz<T, U> {}
+   |   -------------------------------------------- first implementation here
+   |
+   = note: upstream crates may add a new impl of trait `std::marker::Unpin` for type `(std::marker::PhantomData<&()>, std::marker::PhantomPinned)` in future versions
+   = note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project-lite/tests/ui/not_unpin/negative_impls_stable.rs b/crates/pin-project-lite/tests/ui/not_unpin/negative_impls_stable.rs
new file mode 100644
index 0000000..932b801
--- /dev/null
+++ b/crates/pin-project-lite/tests/ui/not_unpin/negative_impls_stable.rs
@@ -0,0 +1,22 @@
+// SPDX-License-Identifier: Apache-2.0 OR MIT
+
+// https://github.com/taiki-e/pin-project/issues/340#issuecomment-2428002670
+
+pin_project_lite::pin_project! {
+    #[project(!Unpin)]
+    struct Foo<Pinned, Unpinned> {
+        #[pin]
+        pinned: Pinned,
+        unpinned: Unpinned,
+    }
+}
+
+struct MyPhantomPinned(::core::marker::PhantomPinned);
+impl Unpin for MyPhantomPinned where for<'cursed> str: Sized {}
+impl Unpin for Foo<MyPhantomPinned, ()> {}
+
+fn is_unpin<T: Unpin>() {}
+
+fn main() {
+    is_unpin::<Foo<MyPhantomPinned, ()>>()
+}
diff --git a/crates/pin-project-lite/tests/ui/not_unpin/negative_impls_stable.stderr b/crates/pin-project-lite/tests/ui/not_unpin/negative_impls_stable.stderr
new file mode 100644
index 0000000..b9c12d3
--- /dev/null
+++ b/crates/pin-project-lite/tests/ui/not_unpin/negative_impls_stable.stderr
@@ -0,0 +1,16 @@
+error[E0119]: conflicting implementations of trait `Unpin` for type `Foo<MyPhantomPinned, ()>`
+  --> tests/ui/not_unpin/negative_impls_stable.rs:5:1
+   |
+5  | / pin_project_lite::pin_project! {
+6  | |     #[project(!Unpin)]
+7  | |     struct Foo<Pinned, Unpinned> {
+8  | |         #[pin]
+...  |
+12 | | }
+   | |_^ conflicting implementation for `Foo<MyPhantomPinned, ()>`
+...
+16 |   impl Unpin for Foo<MyPhantomPinned, ()> {}
+   |   --------------------------------------- first implementation here
+   |
+   = note: upstream crates may add a new impl of trait `std::marker::Unpin` for type `(std::marker::PhantomData<&()>, std::marker::PhantomPinned)` in future versions
+   = note: this error originates in the macro `$crate::__pin_project_make_unpin_impl` which comes from the expansion of the macro `pin_project_lite::pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project-lite/tests/ui/pin_project/conflict-drop.stderr b/crates/pin-project-lite/tests/ui/pin_project/conflict-drop.stderr
index 13d89c0..9f6dd47 100644
--- a/crates/pin-project-lite/tests/ui/pin_project/conflict-drop.stderr
+++ b/crates/pin-project-lite/tests/ui/pin_project/conflict-drop.stderr
@@ -5,8 +5,7 @@
 6  | |     struct Foo<T, U> {
 7  | |         #[pin]
 8  | |         future: T,
-9  | |         field: U,
-10 | |     }
+...  |
 11 | | }
    | | ^
    | | |
diff --git a/crates/pin-project-lite/tests/ui/pin_project/conflict-unpin.stderr b/crates/pin-project-lite/tests/ui/pin_project/conflict-unpin.stderr
index 44aa959..22a358e 100644
--- a/crates/pin-project-lite/tests/ui/pin_project/conflict-unpin.stderr
+++ b/crates/pin-project-lite/tests/ui/pin_project/conflict-unpin.stderr
@@ -5,8 +5,7 @@
 8  | |     struct Foo<T, U> {
 9  | |         #[pin]
 10 | |         future: T,
-11 | |         field: U,
-12 | |     }
+...  |
 13 | | }
    | |_^ conflicting implementation for `Foo<_, _>`
 ...
@@ -22,8 +21,7 @@
 21 | |     struct Bar<T, U> {
 22 | |         #[pin]
 23 | |         future: T,
-24 | |         field: U,
-25 | |     }
+...  |
 26 | | }
    | |_^ conflicting implementation for `Bar<_, _>`
 ...
@@ -39,8 +37,7 @@
 32 | |     struct Baz<T, U> {
 33 | |         #[pin]
 34 | |         future: T,
-35 | |         field: U,
-36 | |     }
+...  |
 37 | | }
    | |_^ conflicting implementation for `Baz<_, _>`
 ...
@@ -57,7 +54,6 @@
 44 | |     struct Qux<T, U> {
 45 | |         #[pin]
 ...  |
-48 | |     }
 49 | | }
    | |_^ conflicting implementation for `Qux<_, _>`
 ...
@@ -75,7 +71,6 @@
 56 | |     struct Fred<T, U> {
 57 | |         #[pin]
 ...  |
-60 | |     }
 61 | | }
    | |_^ conflicting implementation for `Fred<_, _>`
 ...
diff --git a/crates/pin-project-lite/tests/ui/pin_project/invalid-bounds.stderr b/crates/pin-project-lite/tests/ui/pin_project/invalid-bounds.stderr
index 084ff47..c60aca1 100644
--- a/crates/pin-project-lite/tests/ui/pin_project/invalid-bounds.stderr
+++ b/crates/pin-project-lite/tests/ui/pin_project/invalid-bounds.stderr
@@ -1,4 +1,4 @@
-error: no rules expected the token `:`
+error: no rules expected `:`
  --> tests/ui/pin_project/invalid-bounds.rs:6:33
   |
 6 |     struct Generics1<T: 'static : Sized> { //~ ERROR no rules expected the token `:`
@@ -10,7 +10,7 @@
   |         >)?
   |         ^
 
-error: no rules expected the token `:`
+error: no rules expected `:`
   --> tests/ui/pin_project/invalid-bounds.rs:12:33
    |
 12 |     struct Generics2<T: 'static : ?Sized> { //~ ERROR no rules expected the token `:`
@@ -274,7 +274,7 @@
    |                     $(: $generics_bound>)?
    |                                        +
 
-error: no rules expected the token `Sized`
+error: no rules expected `Sized`
   --> tests/ui/pin_project/invalid-bounds.rs:36:34
    |
 36 |     struct Generics6<T: ?Sized : Sized> { //~ ERROR no rules expected the token `Sized`
@@ -286,7 +286,7 @@
    |                 $(: $generics_lifetime_bound:lifetime)?
    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-error: no rules expected the token `:`
+error: no rules expected `:`
   --> tests/ui/pin_project/invalid-bounds.rs:44:20
    |
 44 |         T: 'static : Sized //~ ERROR no rules expected the token `:`
@@ -298,7 +298,7 @@
    |         {
    |         ^
 
-error: no rules expected the token `:`
+error: no rules expected `:`
   --> tests/ui/pin_project/invalid-bounds.rs:53:20
    |
 53 |         T: 'static : ?Sized //~ ERROR no rules expected the token `:`
@@ -318,7 +318,6 @@
 61 | |     where
 62 | |         T: Sized : 'static //~ ERROR expected `where`, or `{` after struct name, found `:`
 ...  |
-65 | |     }
 66 | | }
    | | ^
    | | |
@@ -335,7 +334,6 @@
 61 | |     where
 62 | |         T: Sized : 'static //~ ERROR expected `where`, or `{` after struct name, found `:`
 ...  |
-65 | |     }
 66 | | }
    | | ^
    | | |
@@ -353,7 +351,6 @@
 61 | |     where
 62 | |         T: Sized : 'static //~ ERROR expected `where`, or `{` after struct name, found `:`
 ...  |
-65 | |     }
 66 | | }
    | | ^
    | | |
@@ -370,7 +367,6 @@
 61 | |     where
 62 | |         T: Sized : 'static //~ ERROR expected `where`, or `{` after struct name, found `:`
 ...  |
-65 | |     }
 66 | | }
    | | ^
    | | |
@@ -387,7 +383,6 @@
 70 | |     where
 71 | |         T: ?Sized : 'static //~ ERROR expected `where`, or `{` after struct name, found `:`
 ...  |
-74 | |     }
 75 | | }
    | | ^
    | | |
@@ -404,7 +399,6 @@
 70 | |     where
 71 | |         T: ?Sized : 'static //~ ERROR expected `where`, or `{` after struct name, found `:`
 ...  |
-74 | |     }
 75 | | }
    | | ^
    | | |
@@ -422,7 +416,6 @@
 70 | |     where
 71 | |         T: ?Sized : 'static //~ ERROR expected `where`, or `{` after struct name, found `:`
 ...  |
-74 | |     }
 75 | | }
    | | ^
    | | |
@@ -439,7 +432,6 @@
 70 | |     where
 71 | |         T: ?Sized : 'static //~ ERROR expected `where`, or `{` after struct name, found `:`
 ...  |
-74 | |     }
 75 | | }
    | | ^
    | | |
@@ -456,7 +448,6 @@
 79 | |     where
 80 | |         T: Sized : ?Sized //~ ERROR expected `where`, or `{` after struct name, found `:`
 ...  |
-83 | |     }
 84 | | }
    | | ^
    | | |
@@ -473,7 +464,6 @@
 79 | |     where
 80 | |         T: Sized : ?Sized //~ ERROR expected `where`, or `{` after struct name, found `:`
 ...  |
-83 | |     }
 84 | | }
    | | ^
    | | |
@@ -491,7 +481,6 @@
 79 | |     where
 80 | |         T: Sized : ?Sized //~ ERROR expected `where`, or `{` after struct name, found `:`
 ...  |
-83 | |     }
 84 | | }
    | | ^
    | | |
@@ -508,7 +497,6 @@
 79 | |     where
 80 | |         T: Sized : ?Sized //~ ERROR expected `where`, or `{` after struct name, found `:`
 ...  |
-83 | |     }
 84 | | }
    | | ^
    | | |
@@ -517,7 +505,7 @@
    |
    = note: this error originates in the macro `$crate::__pin_project_parse_generics` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
 
-error: no rules expected the token `Sized`
+error: no rules expected `Sized`
   --> tests/ui/pin_project/invalid-bounds.rs:89:21
    |
 89 |         T: ?Sized : Sized //~ ERROR no rules expected the token `Sized`
diff --git a/crates/pin-project-lite/tests/ui/pin_project/invalid.stderr b/crates/pin-project-lite/tests/ui/pin_project/invalid.stderr
index 3dfc90c..8cd85c8 100644
--- a/crates/pin-project-lite/tests/ui/pin_project/invalid.stderr
+++ b/crates/pin-project-lite/tests/ui/pin_project/invalid.stderr
@@ -1,4 +1,4 @@
-error: no rules expected the token `(`
+error: no rules expected `(`
  --> tests/ui/pin_project/invalid.rs:7:14
   |
 7 |         #[pin()] //~ ERROR no rules expected the token `(`
@@ -10,7 +10,7 @@
   |                 $(#[$pin:ident])?
   |                               ^
 
-error: no rules expected the token `(`
+error: no rules expected `(`
  --> tests/ui/pin_project/invalid.rs:7:14
   |
 7 |         #[pin()] //~ ERROR no rules expected the token `(`
@@ -22,7 +22,7 @@
   |                 $(#[$pin:ident])?
   |                               ^
 
-error: no rules expected the token `#`
+error: no rules expected `#`
   --> tests/ui/pin_project/invalid.rs:22:9
    |
 22 |         #[pin] //~ ERROR no rules expected the token `#`
@@ -34,7 +34,7 @@
    |                 $field_vis:vis $field:ident: $field_ty:ty
    |                 ^^^^^^^^^^^^^^
 
-error: no rules expected the token `#`
+error: no rules expected `#`
   --> tests/ui/pin_project/invalid.rs:22:9
    |
 22 |         #[pin] //~ ERROR no rules expected the token `#`
diff --git a/crates/pin-project-lite/tests/ui/pin_project/negative_impls_stable.stderr b/crates/pin-project-lite/tests/ui/pin_project/negative_impls_stable.stderr
index 3059cc7..74fcc90 100644
--- a/crates/pin-project-lite/tests/ui/pin_project/negative_impls_stable.stderr
+++ b/crates/pin-project-lite/tests/ui/pin_project/negative_impls_stable.stderr
@@ -5,8 +5,7 @@
 6  | |     struct Foo<Pinned, Unpinned> {
 7  | |         #[pin]
 8  | |         pinned: Pinned,
-9  | |         unpinned: Unpinned,
-10 | |     }
+...  |
 11 | | }
    | |_^ conflicting implementation for `Foo<MyPhantomPinned, ()>`
 ...
diff --git a/crates/pin-project-lite/tests/ui/pin_project/overlapping_unpin_struct.stderr b/crates/pin-project-lite/tests/ui/pin_project/overlapping_unpin_struct.stderr
index 9ec1abc..8529ddc 100644
--- a/crates/pin-project-lite/tests/ui/pin_project/overlapping_unpin_struct.stderr
+++ b/crates/pin-project-lite/tests/ui/pin_project/overlapping_unpin_struct.stderr
@@ -2,7 +2,7 @@
   --> tests/ui/pin_project/overlapping_unpin_struct.rs:21:16
    |
 21 |     is_unpin::<Foo<PhantomPinned>>(); //~ ERROR E0277
-   |                ^^^^^^^^^^^^^^^^^^ within `_::__Origin<'_, PhantomPinned>`, the trait `Unpin` is not implemented for `PhantomPinned`, which is required by `Foo<PhantomPinned>: Unpin`
+   |                ^^^^^^^^^^^^^^^^^^ within `_::__Origin<'_, PhantomPinned>`, the trait `Unpin` is not implemented for `PhantomPinned`
    |
    = note: consider using the `pin!` macro
            consider using `Box::pin` if you need to access the pinned value outside of the current scope
diff --git a/crates/pin-project-lite/tests/ui/pin_project/packed.stderr b/crates/pin-project-lite/tests/ui/pin_project/packed.stderr
index b9025cc..65a1290 100644
--- a/crates/pin-project-lite/tests/ui/pin_project/packed.stderr
+++ b/crates/pin-project-lite/tests/ui/pin_project/packed.stderr
@@ -5,8 +5,7 @@
 6  | |     #[repr(packed, C)]
 7  | |     struct Packed {
 8  | |         #[pin]
-9  | |         field: u16,
-10 | |     }
+...  |
 11 | | }
    | |_^
    |
@@ -22,8 +21,7 @@
 6  | |     #[repr(packed, C)]
 7  | |     struct Packed {
 8  | |         #[pin]
-9  | |         field: u16,
-10 | |     }
+...  |
 11 | | }
    | |_^
    |
@@ -39,8 +37,7 @@
 6  | |     #[repr(packed, C)]
 7  | |     struct Packed {
 8  | |         #[pin]
-9  | |         field: u16,
-10 | |     }
+...  |
 11 | | }
    | |_^
    |
@@ -56,8 +53,7 @@
 14 | |     #[repr(packed(2))]
 15 | |     struct PackedN {
 16 | |         #[pin]
-17 | |         field: u32,
-18 | |     }
+...  |
 19 | | }
    | |_^
    |
@@ -73,8 +69,7 @@
 14 | |     #[repr(packed(2))]
 15 | |     struct PackedN {
 16 | |         #[pin]
-17 | |         field: u32,
-18 | |     }
+...  |
 19 | | }
    | |_^
    |
@@ -90,8 +85,7 @@
 14 | |     #[repr(packed(2))]
 15 | |     struct PackedN {
 16 | |         #[pin]
-17 | |         field: u32,
-18 | |     }
+...  |
 19 | | }
    | |_^
    |
diff --git a/crates/pin-project-lite/tests/ui/pin_project/unsupported.stderr b/crates/pin-project-lite/tests/ui/pin_project/unsupported.stderr
index 909a671..c74041d 100644
--- a/crates/pin-project-lite/tests/ui/pin_project/unsupported.stderr
+++ b/crates/pin-project-lite/tests/ui/pin_project/unsupported.stderr
@@ -1,4 +1,4 @@
-error: no rules expected the token `}`
+error: no rules expected `}`
  --> tests/ui/pin_project/unsupported.rs:5:1
   |
 5 | / pin_project! {
@@ -13,7 +13,7 @@
   |                 ^^^^^^^^^^^^^^
   = note: this error originates in the macro `$crate::__pin_project_expand` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
 
-error: no rules expected the token `}`
+error: no rules expected `}`
  --> tests/ui/pin_project/unsupported.rs:5:1
   |
 5 | / pin_project! {
@@ -28,7 +28,7 @@
   |                 ^^^^^^^^^^^^^^
   = note: this error originates in the macro `$crate::__pin_project_expand` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
 
-error: no rules expected the token `(`
+error: no rules expected `(`
   --> tests/ui/pin_project/unsupported.rs:10:19
    |
 10 |     struct Struct2(); //~ ERROR no rules expected the token `(`
@@ -40,7 +40,7 @@
    |         {
    |         ^
 
-error: no rules expected the token `;`
+error: no rules expected `;`
   --> tests/ui/pin_project/unsupported.rs:14:19
    |
 14 |     struct Struct3; //~ ERROR no rules expected the token `;`
@@ -52,7 +52,7 @@
    |         {
    |         ^
 
-error: no rules expected the token `(`
+error: no rules expected `(`
   --> tests/ui/pin_project/unsupported.rs:19:10
    |
 19 |         A(u8)
@@ -64,7 +64,7 @@
    |         }
    |         ^
 
-error: no rules expected the token `(`
+error: no rules expected `(`
   --> tests/ui/pin_project/unsupported.rs:19:10
    |
 19 |         A(u8)
@@ -76,7 +76,7 @@
    |         }
    |         ^
 
-error: no rules expected the token `union`
+error: no rules expected identifier `union`
   --> tests/ui/pin_project/unsupported.rs:23:1
    |
 23 | / pin_project! {
@@ -86,14 +86,14 @@
 27 | | }
    | |_^ no rules expected this token in macro call
    |
-note: while trying to match `struct`
+note: while trying to match keyword `struct`
   --> src/lib.rs
    |
    |         [$(#[$attrs:meta])* $vis:vis struct $ident:ident]
    |                                      ^^^^^^
    = note: this error originates in the macro `$crate::__pin_project_expand` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
 
-error: no rules expected the token `union`
+error: no rules expected identifier `union`
   --> tests/ui/pin_project/unsupported.rs:23:1
    |
 23 | / pin_project! {
@@ -103,7 +103,7 @@
 27 | | }
    | |_^ no rules expected this token in macro call
    |
-note: while trying to match `struct`
+note: while trying to match keyword `struct`
   --> src/lib.rs
    |
    |         [$(#[$attrs:meta])* $vis:vis struct $ident:ident]
diff --git a/crates/pin-project-lite/tests/ui/pinned_drop/call-drop-inner.stderr b/crates/pin-project-lite/tests/ui/pinned_drop/call-drop-inner.stderr
index 93f9d19..54a9b54 100644
--- a/crates/pin-project-lite/tests/ui/pinned_drop/call-drop-inner.stderr
+++ b/crates/pin-project-lite/tests/ui/pinned_drop/call-drop-inner.stderr
@@ -12,7 +12,6 @@
 7  | |         #[pin]
 8  | |         field: u8,
 ...  |
-14 | |     }
 15 | | }
    | |_^
    = note: this error originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/pin-project-lite/tests/ui/pinned_drop/conditional-drop-impl.stderr b/crates/pin-project-lite/tests/ui/pinned_drop/conditional-drop-impl.stderr
index b78ab75..c0df86d 100644
--- a/crates/pin-project-lite/tests/ui/pinned_drop/conditional-drop-impl.stderr
+++ b/crates/pin-project-lite/tests/ui/pinned_drop/conditional-drop-impl.stderr
@@ -18,7 +18,6 @@
 18 | |     struct PinnedDropImpl<T> {
 19 | |         #[pin]
 ...  |
-25 | |     }
 26 | | }
    | |_^
    |
@@ -30,7 +29,6 @@
 18 | |     struct PinnedDropImpl<T> {
 19 | |         #[pin]
 ...  |
-25 | |     }
 26 | | }
    | |_^
    = note: this error originates in the macro `$crate::__pin_project_make_drop_impl` which comes from the expansion of the macro `pin_project` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/crates/predicates-tree/.android-checksum.json b/crates/predicates-tree/.android-checksum.json
index fdcfd04..b44121d 100644
--- a/crates/predicates-tree/.android-checksum.json
+++ b/crates/predicates-tree/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"c15dd2517a91f8f063f015d933cde6285cb836546e0a516252a83af8606228a3","Android.bp":"163fc823a964b9e73afc5cea22420fd8464284382521f66e22f053302fc0325b","Cargo.lock":"793b1124375429034af7b57b58e014050f4ce848fac323d92c7fde8c5cbe363d","Cargo.toml":"b65774d511b288868769cec29cf70e6b05ad92cd3d0f9d81c97f04e224caac5c","LICENSE":"6a823c8069932f07af9f6632e29978de3af2c0d5ea8e71afc621547fb91edc29","LICENSE-APACHE":"6a823c8069932f07af9f6632e29978de3af2c0d5ea8e71afc621547fb91edc29","LICENSE-MIT":"b1d654eef14f674c63e128eacab0111ff6e9defc751341f764957f7947a25a7a","METADATA":"e7083346ada68cff7b0bc42c2716174954278baffd2330dded67ffc1f1a9b565","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"7b68e5c060fa7645281c4bf84bbf64e4605ce9de72966afeb9fb5877d143ca97","cargo_embargo.json":"48b90df621dbf12710f97f8c66bbe1682f5d0a9d4925ec8652ba6c52a7359ce5","examples/failures.rs":"8297001cf523bc4777695b6247cd50d42e7c7c2cc25574d630b56f54cba58374","src/lib.rs":"a999409271bfbde024e1f0e0b88130b295ebe5689e5c7b0ecef8d701825ba6c6"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"25dd3eb062b51cb6370332d71e2df8d6a1a85b3e2c5513d7d779dffc7cfb37f5","Android.bp":"84b5453b4096fa6d39a4a61a792ff5291494597c7f5107fb2f792391b27d24fd","Cargo.lock":"3dd28acf1ea9c6479bddef55c5ab7122a9246e13dc01da707f29a95c160838a8","Cargo.toml":"44e986d52267931eab5b2794a047c7d8f78f5717fe6514289cd789e45c827780","LICENSE":"90364369fcd32608226545dbeeff4401827c7305eabe4a022046cc03d078c9e9","LICENSE-APACHE":"90364369fcd32608226545dbeeff4401827c7305eabe4a022046cc03d078c9e9","LICENSE-MIT":"538f704e6bc384de6dd775d81e9df89f9d718f0e2808a24a789eaa03beb129d3","METADATA":"c51bf0323a728cd6eadea4eef5530fa055e2325ee361d695907f5fecee085001","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"7b68e5c060fa7645281c4bf84bbf64e4605ce9de72966afeb9fb5877d143ca97","cargo_embargo.json":"48b90df621dbf12710f97f8c66bbe1682f5d0a9d4925ec8652ba6c52a7359ce5","examples/failures.rs":"8297001cf523bc4777695b6247cd50d42e7c7c2cc25574d630b56f54cba58374","src/lib.rs":"b2c8586280d84ff534a0cf66e59fd8b13ad0986e2794dcb319c56eefc20edc70"}}
\ No newline at end of file
diff --git a/crates/predicates-tree/.cargo-checksum.json b/crates/predicates-tree/.cargo-checksum.json
index 58007c6..2f1f3cb 100644
--- a/crates/predicates-tree/.cargo-checksum.json
+++ b/crates/predicates-tree/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.lock":"00e7615c11a29d07b20354e6c2bbed48a24d226fa137bf3a6953f631b04ccafe","Cargo.toml":"b52f695e84927ad9887c19b0dc5b9a567d3ed28193fd68d682f207c3ccafbdac","LICENSE-APACHE":"a6cba85bc92e0cff7a450b1d873c0eaa2e9fc96bf472df0247a26bec77bf3ff9","LICENSE-MIT":"9d6bf646112f22f1dd5722fbf615ac184bc372727b615e5dff7e45fe8de3a99e","README.md":"2e96471579f50e44834a5e58f1f16466c0395661873754ac5b8b342ecd157786","examples/failures.rs":"e5c9bafb7649d2b8aad4b585c28385cfc2d55e32aa190da693c920fc61945275","src/lib.rs":"b784e62fc9cd370ce29955e3cbc35ba1456efa0324fb49c0cf705969f691b4ba"},"package":"368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"}
\ No newline at end of file
+{"files":{"Cargo.lock":"f82051c33a7cd8242f458b112faf17e51f4c8e25d7c300092abe630840c6e1d2","Cargo.toml":"6595246d690ca3b947a848aa806366145be709811ed3ae1c467ee006a17c3455","LICENSE-APACHE":"b40930bbcf80744c86c46a12bc9da056641d722716c378f5659b9e555ef833e1","LICENSE-MIT":"6efb0476a1cc085077ed49357026d8c173bf33017278ef440f222fb9cbcb66e6","README.md":"2e96471579f50e44834a5e58f1f16466c0395661873754ac5b8b342ecd157786","examples/failures.rs":"e5c9bafb7649d2b8aad4b585c28385cfc2d55e32aa190da693c920fc61945275","src/lib.rs":"d92dc9f3a6aebe337e152ee535dd034df0d373a50968af914aeb47a0816530e9"},"package":"41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13"}
\ No newline at end of file
diff --git a/crates/predicates-tree/Android.bp b/crates/predicates-tree/Android.bp
index 5b11105..2e78628 100644
--- a/crates/predicates-tree/Android.bp
+++ b/crates/predicates-tree/Android.bp
@@ -18,7 +18,7 @@
     host_supported: true,
     crate_name: "predicates_tree",
     cargo_env_compat: true,
-    cargo_pkg_version: "1.0.9",
+    cargo_pkg_version: "1.0.11",
     crate_root: "src/lib.rs",
     edition: "2021",
     rustlibs: [
diff --git a/crates/predicates-tree/Cargo.lock b/crates/predicates-tree/Cargo.lock
index 2bae5b1..3ec9853 100644
--- a/crates/predicates-tree/Cargo.lock
+++ b/crates/predicates-tree/Cargo.lock
@@ -4,18 +4,18 @@
 
 [[package]]
 name = "aho-corasick"
-version = "0.7.19"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
+checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "anstyle"
-version = "0.3.1"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80c697cc33851b02ab0c26b2e8a211684fbe627ff1cc506131f35026dd7686dd"
+checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
 
 [[package]]
 name = "autocfg"
@@ -30,12 +30,6 @@
 checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
 
 [[package]]
-name = "either"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797"
-
-[[package]]
 name = "float-cmp"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -45,15 +39,6 @@
 ]
 
 [[package]]
-name = "itertools"
-version = "0.10.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
-dependencies = [
- "either",
-]
-
-[[package]]
 name = "memchr"
 version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -67,23 +52,22 @@
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "predicates"
-version = "3.0.1"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ba7d6ead3e3966038f68caa9fc1f860185d95a793180bbcfe0d0da47b3961ed"
+checksum = "68b87bfd4605926cdfefc1c3b5f8fe560e3feca9d5552cf68c466d3d8236c7e8"
 dependencies = [
  "anstyle",
  "difflib",
  "float-cmp",
- "itertools",
  "normalize-line-endings",
  "predicates-core",
  "regex",
@@ -91,13 +75,13 @@
 
 [[package]]
 name = "predicates-core"
-version = "1.0.6"
+version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
+checksum = "ae8177bee8e75d6846599c6b9ff679ed51e882816914eec639944d7c9aa11931"
 
 [[package]]
 name = "predicates-tree"
-version = "1.0.9"
+version = "1.0.11"
 dependencies = [
  "predicates",
  "predicates-core",
@@ -106,9 +90,21 @@
 
 [[package]]
 name = "regex"
-version = "1.6.0"
+version = "1.9.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -117,9 +113,9 @@
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.27"
+version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
 
 [[package]]
 name = "termtree"
diff --git a/crates/predicates-tree/Cargo.toml b/crates/predicates-tree/Cargo.toml
index 4716753..a2ea4c7 100644
--- a/crates/predicates-tree/Cargo.toml
+++ b/crates/predicates-tree/Cargo.toml
@@ -11,10 +11,11 @@
 
 [package]
 edition = "2021"
-rust-version = "1.64.0"
+rust-version = "1.74"
 name = "predicates-tree"
-version = "1.0.9"
+version = "1.0.11"
 authors = ["Nick Stevens <[email protected]>"]
+build = false
 include = [
     "build.rs",
     "src/**/*",
@@ -24,6 +25,10 @@
     "benches/**/*",
     "examples/**/*",
 ]
+autobins = false
+autoexamples = false
+autotests = false
+autobenches = false
 description = "Render boolean-valued predicate functions results as a tree."
 homepage = "https://github.com/assert-rs/predicates-rs/tree/master/crates/tree"
 documentation = "https://docs.rs/predicates-tree"
@@ -42,40 +47,55 @@
 license = "MIT OR Apache-2.0"
 repository = "https://github.com/assert-rs/predicates-rs/tree/master/crates/tree"
 
+[package.metadata.docs.rs]
+all-features = true
+rustdoc-args = [
+    "--cfg",
+    "docsrs",
+]
+
 [[package.metadata.release.pre-release-replacements]]
 file = "CHANGELOG.md"
-search = "Unreleased"
+min = 1
 replace = "{{version}}"
-min = 1
+search = "Unreleased"
 
 [[package.metadata.release.pre-release-replacements]]
-file = "CHANGELOG.md"
-search = '\.\.\.HEAD'
-replace = "...{{tag_name}}"
 exactly = 1
+file = "CHANGELOG.md"
+replace = "...{{tag_name}}"
+search = '\.\.\.HEAD'
 
 [[package.metadata.release.pre-release-replacements]]
 file = "CHANGELOG.md"
-search = "ReleaseDate"
-replace = "{{date}}"
 min = 1
+replace = "{{date}}"
+search = "ReleaseDate"
 
 [[package.metadata.release.pre-release-replacements]]
+exactly = 1
 file = "CHANGELOG.md"
-search = "<!-- next-header -->"
 replace = """
 <!-- next-header -->
 ## [Unreleased] - ReleaseDate
 """
-exactly = 1
+search = "<!-- next-header -->"
 
 [[package.metadata.release.pre-release-replacements]]
+exactly = 1
 file = "CHANGELOG.md"
-search = "<!-- next-url -->"
 replace = """
 <!-- next-url -->
 [Unreleased]: https://github.com/assert-rs/predicates-rs/compare/{{tag_name}}...HEAD"""
-exactly = 1
+search = "<!-- next-url -->"
+
+[lib]
+name = "predicates_tree"
+path = "src/lib.rs"
+
+[[example]]
+name = "failures"
+path = "examples/failures.rs"
 
 [dependencies.predicates-core]
 version = "1.0"
@@ -84,5 +104,5 @@
 version = "0.4.1"
 
 [dev-dependencies.predicates]
-version = "3.0"
+version = "3.1"
 features = ["color"]
diff --git a/crates/predicates-tree/LICENSE-APACHE b/crates/predicates-tree/LICENSE-APACHE
index d9a10c0..8dada3e 100644
--- a/crates/predicates-tree/LICENSE-APACHE
+++ b/crates/predicates-tree/LICENSE-APACHE
@@ -174,3 +174,28 @@
       of your accepting any such warranty or additional liability.
 
    END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "{}"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright {yyyy} {name of copyright owner}
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/crates/predicates-tree/LICENSE-MIT b/crates/predicates-tree/LICENSE-MIT
index 51e7743..a2d0108 100644
--- a/crates/predicates-tree/LICENSE-MIT
+++ b/crates/predicates-tree/LICENSE-MIT
@@ -1,7 +1,4 @@
-MIT License
-
-Copyright (c) 2017 Nick Stevens
-
+Copyright (c) Individual contributors
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal
diff --git a/crates/predicates-tree/METADATA b/crates/predicates-tree/METADATA
index 195961f..6b2e993 100644
--- a/crates/predicates-tree/METADATA
+++ b/crates/predicates-tree/METADATA
@@ -1,17 +1,17 @@
 name: "predicates-tree"
 description: "Render boolean-valued predicate functions results as a tree."
 third_party {
-  version: "1.0.9"
+  version: "1.0.11"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2023
-    month: 11
-    day: 6
+    year: 2025
+    month: 1
+    day: 14
   }
   homepage: "https://crates.io/crates/predicates-tree"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/predicates-tree/predicates-tree-1.0.9.crate"
-    version: "1.0.9"
+    value: "https://static.crates.io/crates/predicates-tree/predicates-tree-1.0.11.crate"
+    version: "1.0.11"
   }
 }
diff --git a/crates/predicates-tree/src/lib.rs b/crates/predicates-tree/src/lib.rs
index f0d2fd5..9e5e132 100644
--- a/crates/predicates-tree/src/lib.rs
+++ b/crates/predicates-tree/src/lib.rs
@@ -8,6 +8,8 @@
 
 //! Render `Case` as a tree.
 
+#![cfg_attr(docsrs, feature(doc_auto_cfg))]
+
 use std::fmt;
 
 use predicates_core::reflection;
diff --git a/crates/proc-macro2/.android-checksum.json b/crates/proc-macro2/.android-checksum.json
index 73e601a..dafd093 100644
--- a/crates/proc-macro2/.android-checksum.json
+++ b/crates/proc-macro2/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"5d1decacc0306d630b68305b978c5e5ff9a6fc24b16d9d8278d6d7837aedb2b3","Android.bp":"9ea8e3a8f1d1fcaea8a793a61a1da0748691f3a8e771cab5c723680022baafa8","Cargo.toml":"35478b0959511fa6433d76cc8b96cc9e0bf2eaffeea0754685c84b00cc864a98","LICENSE":"50f827348bfd5def2df4f30cb41264072cf9c180bd9ed698437e8d85b2482754","LICENSE-APACHE":"50f827348bfd5def2df4f30cb41264072cf9c180bd9ed698437e8d85b2482754","LICENSE-MIT":"38620a3cfaeec97a9197e8c39e436ea7f0bc86699b1f1c35f1aa41785b6d4eac","METADATA":"5777d7b5df90ec9581a2d875c19fe198f056b374fcca580cbdab6a233a9cc79e","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"0eb4e869da628169d32db87e76e992fcd9b78ee1bb7d27c6793c0ecf7559d12b","TEST_MAPPING":"a3074a0541d6fbb452778d31b454a0f4375a6f8e617cdb11e6c4fb83d7ed03e3","build.rs":"fa102dc36b3331c971bdba6ebecb5993f22112ded95e35012f94598071d5fbd3","build/probe.rs":"be3bc6b0ade4a07f0e9e46a7a22e77af80e5e3c617eb243894ea97e81a96fa6c","cargo_embargo.json":"bcf30f407e7892155415865bc4706938d3cae2ff1d4c497d602c7f5ac4592870","rules.mk":"ca70abc107f26e179aebf4381e176ba5c3cf078ead0104cc44c453b85dac8e3c","rust-toolchain.toml":"25bc44c2a4cb625e0f16003c73ac0db2fc79a3b79a5b0e6d4b6175c6dbe5af69","src/detection.rs":"23d284f6e155e8180c2aedc3c72045a0252da8188a974cbbeca08ffe2e21db8e","src/extra.rs":"16da6308988791743c980182299ee2a32fd0f5d04f1e74b39a84409fd4c72b3d","src/fallback.rs":"727ae075658184a04f3d12b6cdf7a0c881ca90039feabf5fad0e0490c5fd149d","src/lib.rs":"87b3ad35cc3526dc5621036d8b2c0cd6ca0c750f45226a898b47ed4e26084fea","src/location.rs":"a39f56039d68a74d015ffe32e4015168e0499d0ba6a1d11a7c5f75ddfa4a7af1","src/marker.rs":"6045dbb4e41ea3f52e17ae34ac61be3079468742db83f7d615e19dc7afe2971d","src/parse.rs":"92d226f0c6e0fe7df6609ab13925ef35498bb6314e43aa9d6a0b13877c02d5e2","src/rcvec.rs":"ec60ea23d3a182938bb95f2632840de3c1c91c684b8cbd77f4f596f95fb07eb4","src/wrapper.rs":"47bfa8a42f438f9b0437ba1d97b7e94ae089ad98a166357ec7aa924d0b9e1a57","tests/comments.rs":"4ecc320b4f2c27a742639c26248ccc0af71fe22764eb01c376fe8c4708b1aa44","tests/features.rs":"c86a1102b3904fd6b0bf85033611c0648a9bd123b8a72732acc712dab076d1a9","tests/marker.rs":"cc4cc966997474206d873ecc8acd0650b7a0aabec968a39e305f28c12431f685","tests/test.rs":"94cf9e39484172ff169ae16dcd7a78052b2e7923273e268b6dec9e6843581e4a","tests/test_fmt.rs":"23b30ed29c81a4dcdcc057c754b7da83a105870e2490c80230bcd1f2d545c514","tests/test_size.rs":"c612d4d1b48cd1a04129624304bef381b82c9cc270164157c725bbfb99fe53e9"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"570c15dc7e1f15054a36b8186f23f86f08b096d19da6d62759237204b796930a","Android.bp":"560ea9def7d3453ca17815825bf2cdbf85e92dc9b5d12e6297888d095ae91d0e","Cargo.toml":"afac6ab8d14cd400e87cdc5cc5e9092c74425c7faca5eed460693fe547ed1ada","LICENSE":"50f827348bfd5def2df4f30cb41264072cf9c180bd9ed698437e8d85b2482754","LICENSE-APACHE":"50f827348bfd5def2df4f30cb41264072cf9c180bd9ed698437e8d85b2482754","LICENSE-MIT":"38620a3cfaeec97a9197e8c39e436ea7f0bc86699b1f1c35f1aa41785b6d4eac","METADATA":"6e5161b5d4bf26ae5f554b6566961cd5b4d76b5c70655e489672de3bba0f4d61","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"0eb4e869da628169d32db87e76e992fcd9b78ee1bb7d27c6793c0ecf7559d12b","TEST_MAPPING":"a3074a0541d6fbb452778d31b454a0f4375a6f8e617cdb11e6c4fb83d7ed03e3","build.rs":"fa102dc36b3331c971bdba6ebecb5993f22112ded95e35012f94598071d5fbd3","build/probe.rs":"be3bc6b0ade4a07f0e9e46a7a22e77af80e5e3c617eb243894ea97e81a96fa6c","cargo_embargo.json":"bcf30f407e7892155415865bc4706938d3cae2ff1d4c497d602c7f5ac4592870","rules.mk":"ca70abc107f26e179aebf4381e176ba5c3cf078ead0104cc44c453b85dac8e3c","rust-toolchain.toml":"25bc44c2a4cb625e0f16003c73ac0db2fc79a3b79a5b0e6d4b6175c6dbe5af69","src/detection.rs":"23d284f6e155e8180c2aedc3c72045a0252da8188a974cbbeca08ffe2e21db8e","src/extra.rs":"16da6308988791743c980182299ee2a32fd0f5d04f1e74b39a84409fd4c72b3d","src/fallback.rs":"e902d11353dab164e07a4ed7df4bcf8277fd7879d922b80f15ce973d8553a37a","src/lib.rs":"fc54d4feb1c87f97ec479386ce626032f631b76daedcc08b5e13f0f82fd07eb5","src/location.rs":"a39f56039d68a74d015ffe32e4015168e0499d0ba6a1d11a7c5f75ddfa4a7af1","src/marker.rs":"6045dbb4e41ea3f52e17ae34ac61be3079468742db83f7d615e19dc7afe2971d","src/parse.rs":"92d226f0c6e0fe7df6609ab13925ef35498bb6314e43aa9d6a0b13877c02d5e2","src/rcvec.rs":"3dba3df999395e68a7b9a6e6e6609b1fe5ef380fa897958c6461d4894177d5ab","src/wrapper.rs":"47bfa8a42f438f9b0437ba1d97b7e94ae089ad98a166357ec7aa924d0b9e1a57","tests/comments.rs":"4ecc320b4f2c27a742639c26248ccc0af71fe22764eb01c376fe8c4708b1aa44","tests/features.rs":"c86a1102b3904fd6b0bf85033611c0648a9bd123b8a72732acc712dab076d1a9","tests/marker.rs":"cc4cc966997474206d873ecc8acd0650b7a0aabec968a39e305f28c12431f685","tests/test.rs":"94cf9e39484172ff169ae16dcd7a78052b2e7923273e268b6dec9e6843581e4a","tests/test_fmt.rs":"23b30ed29c81a4dcdcc057c754b7da83a105870e2490c80230bcd1f2d545c514","tests/test_size.rs":"c612d4d1b48cd1a04129624304bef381b82c9cc270164157c725bbfb99fe53e9"}}
\ No newline at end of file
diff --git a/crates/proc-macro2/.cargo-checksum.json b/crates/proc-macro2/.cargo-checksum.json
index fac7fe6..8e99043 100644
--- a/crates/proc-macro2/.cargo-checksum.json
+++ b/crates/proc-macro2/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.toml":"d21381d5e881f303c6be26e599f61a5555550bf1fdaf81a0f3151b63cadc733a","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"c609b6865476d6c35879784e9155367a97a0da496aa5c3c61488440a20f59883","build.rs":"29344b7dbd94595f9fbcbc3f2be9b4bb52b5e8a26d21d4363714bab2a18f32ad","build/probe.rs":"df0d73191f20c207bb1051a4944fb6962e1f632d1e0535aba4b995aa7feba8d1","rust-toolchain.toml":"6bbb61302978c736b2da03e4fb40e3beab908f85d533ab46fd541e637b5f3e0f","src/detection.rs":"ed9a5f9a979ab01247d7a68eeb1afa3c13209334c5bfff0f9289cb07e5bb4e8b","src/extra.rs":"29f094473279a29b71c3cc9f5fa27c2e2c30c670390cf7e4b7cf451486cc857e","src/fallback.rs":"1c29625728cdb7640275c67618ee158c74ef01f3ec0a4e459f87fcbf48265563","src/lib.rs":"b065d710f2da40a401e375f4ea442d7a8692b1aea8e1712b864fcb7179eb1129","src/location.rs":"9225c5a55f03b56cce42bc55ceb509e8216a5e0b24c94aa1cd071b04e3d6c15f","src/marker.rs":"c11c5a1be8bdf18be3fcd224393f350a9aae7ce282e19ce583c84910c6903a8f","src/parse.rs":"2cceae010b4a8fabf83fde48467016eaff47e71ebd13acf2b82ec965e73868e5","src/rcvec.rs":"eedb1f09f7e3ede30c4162a19d0caa57f842653184bd905bb3e14c0f0b56c7c3","src/wrapper.rs":"b22daef9c9ac993e67a0354d859677789858ec202f13e25cd4d3beed01e403a0","tests/comments.rs":"31115b3a56c83d93eef2fb4c9566bf4543e302560732986161b98aef504785ed","tests/features.rs":"a86deb8644992a4eb64d9fd493eff16f9cf9c5cb6ade3a634ce0c990cf87d559","tests/marker.rs":"473e962ee1aa0633dd5cf9a973b3bbd0ef43b740d4b7f6d008ff455a6b89d386","tests/test.rs":"2e7106f582367d168638be7364d4e9aadbe0affca8b51dd80f0b3977cc2fcf83","tests/test_fmt.rs":"b7743b612af65f2c88cbe109d50a093db7aa7e87f9e37bf45b7bbaeb240aa020","tests/test_size.rs":"62d8373ea46b669b87bc90a9c49b6d02f90ff4c21f9a25acebf60c9926e01fb7"},"package":"37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"}
\ No newline at end of file
+{"files":{"Cargo.toml":"fae52299b02be7a1b3c62d22d10c64d2221435f93282276e22baa7a84265ceaa","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"c609b6865476d6c35879784e9155367a97a0da496aa5c3c61488440a20f59883","build.rs":"29344b7dbd94595f9fbcbc3f2be9b4bb52b5e8a26d21d4363714bab2a18f32ad","build/probe.rs":"df0d73191f20c207bb1051a4944fb6962e1f632d1e0535aba4b995aa7feba8d1","rust-toolchain.toml":"6bbb61302978c736b2da03e4fb40e3beab908f85d533ab46fd541e637b5f3e0f","src/detection.rs":"ed9a5f9a979ab01247d7a68eeb1afa3c13209334c5bfff0f9289cb07e5bb4e8b","src/extra.rs":"29f094473279a29b71c3cc9f5fa27c2e2c30c670390cf7e4b7cf451486cc857e","src/fallback.rs":"e66ff12f589c8274c1a41de5153e5a51f03eebe899ff786c81c933c3f20c4573","src/lib.rs":"9f26e82d81c6b8e6c816b5c6ac1bbc6dff648d66168f9b0b1272f4fac48d29fe","src/location.rs":"9225c5a55f03b56cce42bc55ceb509e8216a5e0b24c94aa1cd071b04e3d6c15f","src/marker.rs":"c11c5a1be8bdf18be3fcd224393f350a9aae7ce282e19ce583c84910c6903a8f","src/parse.rs":"2cceae010b4a8fabf83fde48467016eaff47e71ebd13acf2b82ec965e73868e5","src/rcvec.rs":"a159d246cac59aae2d51b899471ce34766f51f3c11c376ac36ee501ee3f12a7a","src/wrapper.rs":"b22daef9c9ac993e67a0354d859677789858ec202f13e25cd4d3beed01e403a0","tests/comments.rs":"31115b3a56c83d93eef2fb4c9566bf4543e302560732986161b98aef504785ed","tests/features.rs":"a86deb8644992a4eb64d9fd493eff16f9cf9c5cb6ade3a634ce0c990cf87d559","tests/marker.rs":"473e962ee1aa0633dd5cf9a973b3bbd0ef43b740d4b7f6d008ff455a6b89d386","tests/test.rs":"2e7106f582367d168638be7364d4e9aadbe0affca8b51dd80f0b3977cc2fcf83","tests/test_fmt.rs":"b7743b612af65f2c88cbe109d50a093db7aa7e87f9e37bf45b7bbaeb240aa020","tests/test_size.rs":"62d8373ea46b669b87bc90a9c49b6d02f90ff4c21f9a25acebf60c9926e01fb7"},"package":"60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"}
\ No newline at end of file
diff --git a/crates/proc-macro2/Android.bp b/crates/proc-macro2/Android.bp
index f3ec514..bcafedc 100644
--- a/crates/proc-macro2/Android.bp
+++ b/crates/proc-macro2/Android.bp
@@ -18,7 +18,7 @@
     host_cross_supported: false,
     crate_name: "proc_macro2",
     cargo_env_compat: true,
-    cargo_pkg_version: "1.0.92",
+    cargo_pkg_version: "1.0.93",
     crate_root: "src/lib.rs",
     edition: "2021",
     features: [
diff --git a/crates/proc-macro2/Cargo.toml b/crates/proc-macro2/Cargo.toml
index 44b4bb1..9da6d69 100644
--- a/crates/proc-macro2/Cargo.toml
+++ b/crates/proc-macro2/Cargo.toml
@@ -13,7 +13,7 @@
 edition = "2021"
 rust-version = "1.56"
 name = "proc-macro2"
-version = "1.0.92"
+version = "1.0.93"
 authors = [
     "David Tolnay <[email protected]>",
     "Alex Crichton <[email protected]>",
@@ -50,6 +50,12 @@
 [package.metadata.playground]
 features = ["span-locations"]
 
+[features]
+default = ["proc-macro"]
+nightly = []
+proc-macro = []
+span-locations = []
+
 [lib]
 name = "proc_macro2"
 path = "src/lib.rs"
@@ -97,9 +103,3 @@
 
 [dev-dependencies.tar]
 version = "0.4"
-
-[features]
-default = ["proc-macro"]
-nightly = []
-proc-macro = []
-span-locations = []
diff --git a/crates/proc-macro2/METADATA b/crates/proc-macro2/METADATA
index 0645f2d..432fbd1 100644
--- a/crates/proc-macro2/METADATA
+++ b/crates/proc-macro2/METADATA
@@ -1,17 +1,17 @@
 name: "proc-macro2"
 description: "A substitute implementation of the compiler\'s `proc_macro` API to decouple token-based libraries from the procedural macro use case."
 third_party {
-  version: "1.0.92"
+  version: "1.0.93"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2024
-    month: 12
-    day: 12
+    year: 2025
+    month: 1
+    day: 13
   }
   homepage: "https://crates.io/crates/proc-macro2"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.92.crate"
-    version: "1.0.92"
+    value: "https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.93.crate"
+    version: "1.0.93"
   }
 }
diff --git a/crates/proc-macro2/src/fallback.rs b/crates/proc-macro2/src/fallback.rs
index 92b342f..1acdf06 100644
--- a/crates/proc-macro2/src/fallback.rs
+++ b/crates/proc-macro2/src/fallback.rs
@@ -125,21 +125,32 @@
 // Nonrecursive to prevent stack overflow.
 impl Drop for TokenStream {
     fn drop(&mut self) {
-        let mut inner = match self.inner.get_mut() {
-            Some(inner) => inner,
+        let mut stack = Vec::new();
+        let mut current = match self.inner.get_mut() {
+            Some(inner) => inner.take().into_iter(),
             None => return,
         };
-        while let Some(token) = inner.pop() {
-            let group = match token {
-                TokenTree::Group(group) => group.inner,
-                _ => continue,
-            };
-            #[cfg(wrap_proc_macro)]
-            let group = match group {
-                crate::imp::Group::Fallback(group) => group,
-                crate::imp::Group::Compiler(_) => continue,
-            };
-            inner.extend(group.stream.take_inner());
+        loop {
+            while let Some(token) = current.next() {
+                let group = match token {
+                    TokenTree::Group(group) => group.inner,
+                    _ => continue,
+                };
+                #[cfg(wrap_proc_macro)]
+                let group = match group {
+                    crate::imp::Group::Fallback(group) => group,
+                    crate::imp::Group::Compiler(_) => continue,
+                };
+                let mut group = group;
+                if let Some(inner) = group.stream.inner.get_mut() {
+                    stack.push(current);
+                    current = inner.take().into_iter();
+                }
+            }
+            match stack.pop() {
+                Some(next) => current = next,
+                None => return,
+            }
         }
     }
 }
diff --git a/crates/proc-macro2/src/lib.rs b/crates/proc-macro2/src/lib.rs
index c73a271..b6df877 100644
--- a/crates/proc-macro2/src/lib.rs
+++ b/crates/proc-macro2/src/lib.rs
@@ -86,7 +86,7 @@
 //! a different thread.
 
 // Proc-macro2 types in rustdoc of other crates get linked to here.
-#![doc(html_root_url = "https://docs.rs/proc-macro2/1.0.92")]
+#![doc(html_root_url = "https://docs.rs/proc-macro2/1.0.93")]
 #![cfg_attr(any(proc_macro_span, super_unstable), feature(proc_macro_span))]
 #![cfg_attr(super_unstable, feature(proc_macro_def_site))]
 #![cfg_attr(docsrs, feature(doc_cfg))]
diff --git a/crates/proc-macro2/src/rcvec.rs b/crates/proc-macro2/src/rcvec.rs
index cde9f25..23edc77 100644
--- a/crates/proc-macro2/src/rcvec.rs
+++ b/crates/proc-macro2/src/rcvec.rs
@@ -102,13 +102,14 @@
         self.inner.extend(iter);
     }
 
-    pub(crate) fn pop(&mut self) -> Option<T> {
-        self.inner.pop()
-    }
-
     pub(crate) fn as_mut(&mut self) -> RcVecMut<T> {
         RcVecMut { inner: self.inner }
     }
+
+    pub(crate) fn take(self) -> RcVecBuilder<T> {
+        let vec = mem::take(self.inner);
+        RcVecBuilder { inner: vec }
+    }
 }
 
 impl<T> Clone for RcVec<T> {
diff --git a/crates/url/.android-checksum.json b/crates/url/.android-checksum.json
index 4909838..6b925bc 100644
--- a/crates/url/.android-checksum.json
+++ b/crates/url/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"0a9e9b63a282327b18f0f5eb847c4a7da101273ca72cdcfc72fd17e7d014b873","Android.bp":"0018fa9a595b042a19ffba2afd0f7af59237e99780057b0c307f2d2aeb1d2510","Cargo.toml":"4cbdf93133a4742e5bc045b451df6d4000f7ba1d5e72a7df2dbd6e94457fe7c3","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"deddd7dd9f80ec3543c05774ad3a5658e2f6b7cb55453e09d3131325589624f7","METADATA":"d023b3057b739c0f0bc11e0bf219d9669351507b05ba61c983771635080a634a","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"56778957be598e54c0deb26344d2e1436fbfcdc6f11c97dbb8026f8752e45331","TEST_MAPPING":"a2bb7cbc14986cf9c9fa3970683f5f9b2dbb974ad3e385162bc51df051887294","cargo_embargo.json":"18240e8ad1b44847f352e7fdf9ed13a5290db11959ed4f96ca6b549ae7d6c44c","src/host.rs":"64d68badf67b9b74b9d539168269ff3740b202302a9b2b6c91c392e42c7b4ca5","src/lib.rs":"82a1f70c485ce12ee0ff905f2e5060e29a7f902fce74f90e242b7bd8b463f68c","src/origin.rs":"dda7752ffdfceacf2e88dfa7d8e32723f90d8e118ce9c2ea4135b8d7e7db5caf","src/parser.rs":"921c34e9e7142c96589f0d23e3551cd4272dbb6f49ef54e47118267563cef580","src/path_segments.rs":"9354b137626fa9a0f5acfc665bc56bde6b56756ed3f5d5934e20f2bdf39ac017","src/quirks.rs":"8059aa0f782dd12dc2996aa0c6e081ddf7eb16fee8797f465802e96814b1fe67","src/slicing.rs":"f214d74f637a8bbff60f6e1be4225c5374f4254ed115d9eb34d130ca546e23a3","tests/expected_failures.txt":"3e2090342a0b1e22359e960a0e12d3777a2587bfe0870d26804e072fc7a3642a","tests/setters_tests.json":"0b29bb14bf75046a697f7ff018b57e64c39210c7c4e85a5a1874483f5519d3f4","tests/unit.rs":"cd57e15637f38016581bcc1eb606e63dd1cc4c5ab7801b2a6cba94ede7442ddd","tests/urltestdata.json":"3e2f00e307d2679fe7b85f5be0d56b7df78a2894d3514334ae53498c8b33bc52","tests/wpt.rs":"600d579e666fd265cae7ddea3a58d0aa68a48139c52df5d6139a992c146c45b5"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"0a9e9b63a282327b18f0f5eb847c4a7da101273ca72cdcfc72fd17e7d014b873","Android.bp":"0018fa9a595b042a19ffba2afd0f7af59237e99780057b0c307f2d2aeb1d2510","Cargo.toml":"4cbdf93133a4742e5bc045b451df6d4000f7ba1d5e72a7df2dbd6e94457fe7c3","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"deddd7dd9f80ec3543c05774ad3a5658e2f6b7cb55453e09d3131325589624f7","METADATA":"d023b3057b739c0f0bc11e0bf219d9669351507b05ba61c983771635080a634a","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"56778957be598e54c0deb26344d2e1436fbfcdc6f11c97dbb8026f8752e45331","TEST_MAPPING":"254b0924fbe7abd87552e3ef8197e3d49ff221b1ab0a49892dcf4cf4c96c070a","cargo_embargo.json":"18240e8ad1b44847f352e7fdf9ed13a5290db11959ed4f96ca6b549ae7d6c44c","src/host.rs":"64d68badf67b9b74b9d539168269ff3740b202302a9b2b6c91c392e42c7b4ca5","src/lib.rs":"82a1f70c485ce12ee0ff905f2e5060e29a7f902fce74f90e242b7bd8b463f68c","src/origin.rs":"dda7752ffdfceacf2e88dfa7d8e32723f90d8e118ce9c2ea4135b8d7e7db5caf","src/parser.rs":"921c34e9e7142c96589f0d23e3551cd4272dbb6f49ef54e47118267563cef580","src/path_segments.rs":"9354b137626fa9a0f5acfc665bc56bde6b56756ed3f5d5934e20f2bdf39ac017","src/quirks.rs":"8059aa0f782dd12dc2996aa0c6e081ddf7eb16fee8797f465802e96814b1fe67","src/slicing.rs":"f214d74f637a8bbff60f6e1be4225c5374f4254ed115d9eb34d130ca546e23a3","tests/expected_failures.txt":"3e2090342a0b1e22359e960a0e12d3777a2587bfe0870d26804e072fc7a3642a","tests/setters_tests.json":"0b29bb14bf75046a697f7ff018b57e64c39210c7c4e85a5a1874483f5519d3f4","tests/unit.rs":"cd57e15637f38016581bcc1eb606e63dd1cc4c5ab7801b2a6cba94ede7442ddd","tests/urltestdata.json":"3e2f00e307d2679fe7b85f5be0d56b7df78a2894d3514334ae53498c8b33bc52","tests/wpt.rs":"600d579e666fd265cae7ddea3a58d0aa68a48139c52df5d6139a992c146c45b5"}}
\ No newline at end of file
diff --git a/crates/url/TEST_MAPPING b/crates/url/TEST_MAPPING
index c6bc74c..f897dff 100644
--- a/crates/url/TEST_MAPPING
+++ b/crates/url/TEST_MAPPING
@@ -9,7 +9,7 @@
   ],
   "presubmit": [
     {
-      "name": "url_test_tests_data"
+      "name": "url_test_src_lib"
     },
     {
       "name": "url_test_tests_unit"
@@ -17,7 +17,7 @@
   ],
   "presubmit-rust": [
     {
-      "name": "url_test_tests_data"
+      "name": "url_test_src_lib"
     },
     {
       "name": "url_test_tests_unit"
diff --git a/crates/uuid/.android-checksum.json b/crates/uuid/.android-checksum.json
index 992053a..6be07f6 100644
--- a/crates/uuid/.android-checksum.json
+++ b/crates/uuid/.android-checksum.json
@@ -1 +1 @@
-{"package":null,"files":{".cargo-checksum.json":"e9976ee82200277ca3481dbcb59e7af15a29dd3c1c7f0348576177c7a2b63ee6","Android.bp":"0a66a7df4a2d1d498d3adc3252de213fcf87cab7872a236f3fe8aee126f28663","Cargo.toml":"a0913ff79b08d0f7230558bdc51ac36fc0d0a88b9760641eafc87e2f1c8a6bb0","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"08bc387e24ed88cdda3af9eb97d401d69c31dc98049e63a9c3dfd763dc45a29d","METADATA":"9b6cd4e225188b1ddc0b257ab148843562d8d2803476a54fb6fdf17895567314","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"e0eb9fc0d56401afc10884570fe65bc48121ea92f07357fecb1ff0d0dc15e809","TEST_MAPPING":"e93962d7a70966b064fcb2f8429feb4f97dca1cfaeb526f4ec56a44305c6de69","cargo_embargo.json":"3bf1a98721509650cb9f52cad8d9432fc466b69a9556fc24726caee458caaf0b","rules.mk":"c6a05070a68ecf74533aa73ac4cef3a8ada1f5ef3de138d4c98a79c48f863482","src/builder.rs":"4d97dd185ed044978f142653e35e1c2d7ed15f3640106cc3f24daa448ccb212d","src/error.rs":"a074f13c8ebaef5c563e961fae295134bf75386bfc44efbea5fefbbef7f44f24","src/external.rs":"d5b9021ea1db870ed29525e3290fae1d6ef89ab615d54548830c6632a1353d4c","src/external/arbitrary_support.rs":"f508e7015c8c14c8304a133eb275b60fb946a194c7e431642fe2fa0959a9990c","src/external/borsh_support.rs":"9b7f8438d29dad79dc79efd5db412e8a37e29d567ae21c76f4f3f37febabcd07","src/external/serde_support.rs":"15e735ff56d72b5a8bb846f429cf463361ba1e50d83118df27222ea01a8b0cb3","src/external/slog_support.rs":"9f7009bf65d8ca6961ad9b170c33a5eb787820155286a070324ff0d5fd3c09a2","src/fmt.rs":"80c5fa5eec2e2afcc4d8bfb045b63b3c796ac72fb0b7646d297cf35aa9eabd38","src/lib.rs":"41282650bd22c3c0d5ded9a75448eee3fc035412ec6ea5a59ff7e86288556110","src/macros.rs":"59262f55948d70b7ca0dcee15c990b6a3ad4fca47705d36ba1e90f88e53e8839","src/md5.rs":"5612c79b17b868220029baf52a87bff31530e607ac2522afdf8677eecb28e780","src/parser.rs":"a0d125589f80f3e30bca52897b58c2fce10473eecca1f2b5253ccc024f19162b","src/rng.rs":"158c5d6336c10007f7fa8ede586e7b2fccc9e28186109c8ca060f6e0086c5bb2","src/sha1.rs":"173b844e6a3975270ea36d235f5b7e406e9612ba95833d811b3602f5107589f0","src/timestamp.rs":"e456ee7e155815054977415219c694750f33de3a9af3f04ba912a38fe0f1a9b5","src/v1.rs":"e52a27d89e344036ffe4408a7b5b5fb326d6fb18ae06704a090c6399b7eb3611","src/v3.rs":"7af107a0c0339cae9b50b8b084c5339caf850fe0cd60bc1b129577ee2f140e67","src/v4.rs":"20ae5609a8f891dca1bd8fd99421121dfe452d9ce7f51d635a6d14b4a09889b5","src/v5.rs":"2e435575aa2f5f8971709ffac815407e5f245fe24f64a4666881549a516e30d8","src/v6.rs":"b0f8cf1bec6df06aa7c3d06a465c1a795f02a0bb41328b9509a4662c7b4cf89d","src/v7.rs":"3a4fdd96ad8e4374b621b81ba332023d4c4e11cfa1b4419134c47e0a12ad86b7","src/v8.rs":"25b49a2e5e947cffad78ac4b6da187b75469193814eb340eb8a1a9c644021106"}}
\ No newline at end of file
+{"package":null,"files":{".cargo-checksum.json":"c80812a1ec6a2a6a3f9957359095bf9c1e8cbcdae4a531775a783dd6266ed46d","Android.bp":"2bbcb0aaf870704ac5aecc4279bbed1d684ffa6747cf84a77daca1029e1a2338","Cargo.toml":"d735a31bccbca378268ebb919e4a742f885ea62643b5349a31d61ca83cf74a81","LICENSE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-APACHE":"3c7cd2396b5b772507febd2615d3d5a55b80103845037df77c87ba6e64872f2c","LICENSE-MIT":"08bc387e24ed88cdda3af9eb97d401d69c31dc98049e63a9c3dfd763dc45a29d","METADATA":"8e9891c6939ba8ab0c456a22f5eefd4accc485ceb747b34d3631bd234ed84a7a","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","README.md":"8f1b5b3db24ce08b2b90aa46eca37567be46d499a86a6ed5a4e108bae714b58c","TEST_MAPPING":"e93962d7a70966b064fcb2f8429feb4f97dca1cfaeb526f4ec56a44305c6de69","cargo_embargo.json":"3bf1a98721509650cb9f52cad8d9432fc466b69a9556fc24726caee458caaf0b","rules.mk":"c6a05070a68ecf74533aa73ac4cef3a8ada1f5ef3de138d4c98a79c48f863482","src/builder.rs":"bbfcd69aad7e4eaabe0e987febd3f6c5f30ff58d76701f8c890e42f641682546","src/error.rs":"a074f13c8ebaef5c563e961fae295134bf75386bfc44efbea5fefbbef7f44f24","src/external.rs":"d5b9021ea1db870ed29525e3290fae1d6ef89ab615d54548830c6632a1353d4c","src/external/arbitrary_support.rs":"f508e7015c8c14c8304a133eb275b60fb946a194c7e431642fe2fa0959a9990c","src/external/borsh_support.rs":"9b7f8438d29dad79dc79efd5db412e8a37e29d567ae21c76f4f3f37febabcd07","src/external/serde_support.rs":"15e735ff56d72b5a8bb846f429cf463361ba1e50d83118df27222ea01a8b0cb3","src/external/slog_support.rs":"9f7009bf65d8ca6961ad9b170c33a5eb787820155286a070324ff0d5fd3c09a2","src/fmt.rs":"80c5fa5eec2e2afcc4d8bfb045b63b3c796ac72fb0b7646d297cf35aa9eabd38","src/lib.rs":"2ebd885a33317ff2ca93be509b96816000799cc6bd5af9a3cf07f60270a341bc","src/macros.rs":"59262f55948d70b7ca0dcee15c990b6a3ad4fca47705d36ba1e90f88e53e8839","src/md5.rs":"5612c79b17b868220029baf52a87bff31530e607ac2522afdf8677eecb28e780","src/parser.rs":"a0d125589f80f3e30bca52897b58c2fce10473eecca1f2b5253ccc024f19162b","src/rng.rs":"158c5d6336c10007f7fa8ede586e7b2fccc9e28186109c8ca060f6e0086c5bb2","src/sha1.rs":"173b844e6a3975270ea36d235f5b7e406e9612ba95833d811b3602f5107589f0","src/timestamp.rs":"0e7db00a98d997bf8b3caa2ad3d97a892cecfcf56d5f19f34d3a392997292431","src/v1.rs":"e52a27d89e344036ffe4408a7b5b5fb326d6fb18ae06704a090c6399b7eb3611","src/v3.rs":"7af107a0c0339cae9b50b8b084c5339caf850fe0cd60bc1b129577ee2f140e67","src/v4.rs":"20ae5609a8f891dca1bd8fd99421121dfe452d9ce7f51d635a6d14b4a09889b5","src/v5.rs":"2e435575aa2f5f8971709ffac815407e5f245fe24f64a4666881549a516e30d8","src/v6.rs":"b0f8cf1bec6df06aa7c3d06a465c1a795f02a0bb41328b9509a4662c7b4cf89d","src/v7.rs":"13eb4cc951ac6359aa0d751172cc3f2155dc76a9c89e65d6d5a3f3817d0b2b7c","src/v8.rs":"25b49a2e5e947cffad78ac4b6da187b75469193814eb340eb8a1a9c644021106"}}
\ No newline at end of file
diff --git a/crates/uuid/.cargo-checksum.json b/crates/uuid/.cargo-checksum.json
index 3c67d65..0cad08a 100644
--- a/crates/uuid/.cargo-checksum.json
+++ b/crates/uuid/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"Cargo.toml":"2a7f9c6958b513e041d63dfa988f4f0b48f6634d654f6fd3241ee1fd9e680aa3","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"436bc5a105d8e57dcd8778730f3754f7bf39c14d2f530e4cde4bd2d17a83ec3d","README.md":"4e2fe3e90f75b929f05775e599470f4987e41c0423a7bcd6a7ee526c29354e9c","src/builder.rs":"aa0aaa943858ceea12b06025556c1332f3b57996f5c000545a5ce84c25aaa0ae","src/error.rs":"6a402cde971f7d186be3a184953bc6c89e8b8039fa95cd351e1e158fbe7378cb","src/external.rs":"a0640bdb98de1c24fcc9851a438a5abe6f7e3acb195885c817a64fac25521b9d","src/external/arbitrary_support.rs":"7e7fbcc4b8af5878b71858a1f5fa31e85d84fc2fd159614f8d450ba1fe06ac28","src/external/borsh_support.rs":"b49d82a59653445ba26db46a1515294b1ab480c0671dbe5499dfd1fb02588b3b","src/external/serde_support.rs":"b818f54e784143677146666a6737597bf95523d0de73fedc90b22d9c949b0997","src/external/slog_support.rs":"4fe1cc136b1eb5e27d8b308801bcd72872c129fd20ced1f2415af6760a83751b","src/fmt.rs":"3bf88d68d838bef81380a1e669a86eee46f24a8113effbd7b4e92da714ec97c7","src/lib.rs":"50eb1bd0151dea8bdc61a75f52c9144ddf7df6064dde50d0554af33921d37ebe","src/macros.rs":"dff4a00bcbc37912d38d58edc3edfb8552ba8bb936403b8b33fe7dc3c2041908","src/md5.rs":"316d65b760ffa58beb6aa678be24359eb21a744e9e143bc99c11fe1907659245","src/parser.rs":"838e4a5af613a1d9b9dd6ca4b3c13a42e65fdea35fc02c93c34a416387dbdb7c","src/rng.rs":"d9cdd08ca225f28c103276c985db0540bb8db877a4bcb5348cb4a2648b29883e","src/sha1.rs":"e1a9657e11f1ed1ede33c0655f9c2641059b7c24f17be4ac425c930cc216e019","src/timestamp.rs":"3e282b309e0e7f93518e8ac034e9c3a8e5edda6a6bc9bf3fb6105a8c5a50ff22","src/v1.rs":"9c8254742e58a1d75b8374260108516fc914e2641f83e3a8ada75f05a62a62d1","src/v3.rs":"287860f5376e35d5292959d65948bdb0bbdb4605e3d2e463742c5400075bbe76","src/v4.rs":"c2f2844791cdb2c9e0c90bf7d9d155b96572f1f77aa9586104ddb77d44a5aeea","src/v5.rs":"70799f332c043b3d3ddf4aee791aa448296a5e05122be434945076f9cb29517c","src/v6.rs":"7bd0a52aa316e145ad55b99b0ad46ad3234b0936ab61a4935300f053f2030a56","src/v7.rs":"5e38bf0068606c797f45bb0ad72133a18fc2a879ce595b4b205e75a66266d5e3","src/v8.rs":"15a4c3b81afcca4ec406192f2099fac0ad43d734e12672b02a693ddcc38b6684"},"package":"f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a"}
\ No newline at end of file
+{"files":{"Cargo.toml":"3e129d39ba3ad1910e2492c75c2596faa848683660bcb0d443bd7b7a1a5ef726","LICENSE-APACHE":"a60eea817514531668d7e00765731449fe14d059d3249e0bc93b36de45f759f2","LICENSE-MIT":"436bc5a105d8e57dcd8778730f3754f7bf39c14d2f530e4cde4bd2d17a83ec3d","README.md":"383cbe6804afa72e448883bd0419087e2afd1e0ea7c5d66fdedfb228d1dc8e8a","src/builder.rs":"2f46ba8b4f9b333b0edc926a05c2a9a2d5bf3629cdad05a058532005e71ecc29","src/error.rs":"6a402cde971f7d186be3a184953bc6c89e8b8039fa95cd351e1e158fbe7378cb","src/external.rs":"a0640bdb98de1c24fcc9851a438a5abe6f7e3acb195885c817a64fac25521b9d","src/external/arbitrary_support.rs":"7e7fbcc4b8af5878b71858a1f5fa31e85d84fc2fd159614f8d450ba1fe06ac28","src/external/borsh_support.rs":"b49d82a59653445ba26db46a1515294b1ab480c0671dbe5499dfd1fb02588b3b","src/external/serde_support.rs":"b818f54e784143677146666a6737597bf95523d0de73fedc90b22d9c949b0997","src/external/slog_support.rs":"4fe1cc136b1eb5e27d8b308801bcd72872c129fd20ced1f2415af6760a83751b","src/fmt.rs":"3bf88d68d838bef81380a1e669a86eee46f24a8113effbd7b4e92da714ec97c7","src/lib.rs":"e005d6b2ffaa8e0e253a1e565878653bfb642dd4aa5d01cab5c2b368ca591880","src/macros.rs":"dff4a00bcbc37912d38d58edc3edfb8552ba8bb936403b8b33fe7dc3c2041908","src/md5.rs":"316d65b760ffa58beb6aa678be24359eb21a744e9e143bc99c11fe1907659245","src/parser.rs":"838e4a5af613a1d9b9dd6ca4b3c13a42e65fdea35fc02c93c34a416387dbdb7c","src/rng.rs":"d9cdd08ca225f28c103276c985db0540bb8db877a4bcb5348cb4a2648b29883e","src/sha1.rs":"e1a9657e11f1ed1ede33c0655f9c2641059b7c24f17be4ac425c930cc216e019","src/timestamp.rs":"b53c7ec88c4be2d73100d1300cfb684b3d0d93173f93e9fdcde54b75d463f661","src/v1.rs":"9c8254742e58a1d75b8374260108516fc914e2641f83e3a8ada75f05a62a62d1","src/v3.rs":"287860f5376e35d5292959d65948bdb0bbdb4605e3d2e463742c5400075bbe76","src/v4.rs":"c2f2844791cdb2c9e0c90bf7d9d155b96572f1f77aa9586104ddb77d44a5aeea","src/v5.rs":"70799f332c043b3d3ddf4aee791aa448296a5e05122be434945076f9cb29517c","src/v6.rs":"7bd0a52aa316e145ad55b99b0ad46ad3234b0936ab61a4935300f053f2030a56","src/v7.rs":"3ec7d26bbb457347f4c282f3feb90f123d18e62f81753b81196c995034c28256","src/v8.rs":"15a4c3b81afcca4ec406192f2099fac0ad43d734e12672b02a693ddcc38b6684"},"package":"b913a3b5fe84142e269d63cc62b64319ccaf89b748fc31fe025177f767a756c4"}
\ No newline at end of file
diff --git a/crates/uuid/Android.bp b/crates/uuid/Android.bp
index 59d4211..7642834 100644
--- a/crates/uuid/Android.bp
+++ b/crates/uuid/Android.bp
@@ -18,7 +18,7 @@
     host_supported: true,
     crate_name: "uuid",
     cargo_env_compat: true,
-    cargo_pkg_version: "1.11.0",
+    cargo_pkg_version: "1.11.1",
     crate_root: "src/lib.rs",
     edition: "2018",
     features: [
@@ -47,7 +47,7 @@
     host_supported: true,
     crate_name: "uuid",
     cargo_env_compat: true,
-    cargo_pkg_version: "1.11.0",
+    cargo_pkg_version: "1.11.1",
     crate_root: "src/lib.rs",
     test_suites: ["general-tests"],
     auto_gen_config: true,
@@ -81,7 +81,7 @@
     name: "libuuid_nostd",
     crate_name: "uuid",
     cargo_env_compat: true,
-    cargo_pkg_version: "1.11.0",
+    cargo_pkg_version: "1.11.1",
     crate_root: "src/lib.rs",
     edition: "2018",
     apex_available: [
diff --git a/crates/uuid/Cargo.toml b/crates/uuid/Cargo.toml
index 4355c0b..0065894 100644
--- a/crates/uuid/Cargo.toml
+++ b/crates/uuid/Cargo.toml
@@ -11,9 +11,9 @@
 
 [package]
 edition = "2018"
-rust-version = "1.60.0"
+rust-version = "1.63.0"
 name = "uuid"
-version = "1.11.0"
+version = "1.11.1"
 authors = [
     "Ashley Mannix<[email protected]>",
     "Dylan DPC<[email protected]>",
@@ -26,6 +26,7 @@
     "LICENSE-APACHE",
     "LICENSE-MIT",
 ]
+autolib = false
 autobins = false
 autoexamples = false
 autotests = false
@@ -140,7 +141,7 @@
 optional = true
 
 [dependencies.uuid-macro-internal]
-version = "1.11.0"
+version = "1.11.1"
 optional = true
 
 [dependencies.zerocopy]
diff --git a/crates/uuid/METADATA b/crates/uuid/METADATA
index 6bea850..80f6f51 100644
--- a/crates/uuid/METADATA
+++ b/crates/uuid/METADATA
@@ -1,17 +1,17 @@
 name: "uuid"
 description: "A library to generate and parse UUIDs."
 third_party {
-  version: "1.11.0"
+  version: "1.11.1"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2024
-    month: 12
-    day: 20
+    year: 2025
+    month: 1
+    day: 13
   }
   homepage: "https://crates.io/crates/uuid"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/uuid/uuid-1.11.0.crate"
-    version: "1.11.0"
+    value: "https://static.crates.io/crates/uuid/uuid-1.11.1.crate"
+    version: "1.11.1"
   }
 }
diff --git a/crates/uuid/README.md b/crates/uuid/README.md
index feff9cf..bc85103 100644
--- a/crates/uuid/README.md
+++ b/crates/uuid/README.md
@@ -28,7 +28,7 @@
 
 ```toml
 [dependencies.uuid]
-version = "1.11.0"
+version = "1.11.1"
 features = [
     "v4",                # Lets you generate random UUIDs
     "fast-rng",          # Use a faster (but still sufficiently random) RNG
@@ -65,11 +65,11 @@
 If you'd like to parse UUIDs _really_ fast, check out the [`uuid-simd`](https://github.com/nugine/uuid-simd)
 library.
 
-For more details on using `uuid`, [see the library documentation](https://docs.rs/uuid/1.11.0/uuid).
+For more details on using `uuid`, [see the library documentation](https://docs.rs/uuid/1.11.1/uuid).
 
 ## References
 
-* [`uuid` library docs](https://docs.rs/uuid/1.11.0/uuid).
+* [`uuid` library docs](https://docs.rs/uuid/1.11.1/uuid).
 * [Wikipedia: Universally Unique Identifier](http://en.wikipedia.org/wiki/Universally_unique_identifier).
 * [RFC 9562: Universally Unique IDentifiers (UUID)](https://www.ietf.org/rfc/rfc9562.html).
 
diff --git a/crates/uuid/src/builder.rs b/crates/uuid/src/builder.rs
index e59cb43..f1b6811 100644
--- a/crates/uuid/src/builder.rs
+++ b/crates/uuid/src/builder.rs
@@ -909,7 +909,7 @@
 #[doc(hidden)]
 impl Builder {
     #[deprecated(
-        since = "1.11.0",
+        since = "1.11.1",
         note = "use `Builder::from_gregorian_timestamp(ticks, counter, node_id)`"
     )]
     pub const fn from_rfc4122_timestamp(ticks: u64, counter: u16, node_id: &[u8; 6]) -> Self {
@@ -917,7 +917,7 @@
     }
 
     #[deprecated(
-        since = "1.11.0",
+        since = "1.11.1",
         note = "use `Builder::from_sorted_gregorian_timestamp(ticks, counter, node_id)`"
     )]
     pub const fn from_sorted_rfc4122_timestamp(
diff --git a/crates/uuid/src/lib.rs b/crates/uuid/src/lib.rs
index 1316d62..7d9ed42 100644
--- a/crates/uuid/src/lib.rs
+++ b/crates/uuid/src/lib.rs
@@ -38,7 +38,7 @@
 //!
 //! ```toml
 //! [dependencies.uuid]
-//! version = "1.11.0"
+//! version = "1.11.1"
 //! features = [
 //!     "v4",                # Lets you generate random UUIDs
 //!     "fast-rng",          # Use a faster (but still sufficiently random) RNG
@@ -138,7 +138,7 @@
 //!
 //! ```toml
 //! [dependencies.uuid]
-//! version = "1.11.0"
+//! version = "1.11.1"
 //! features = [
 //!     "v4",
 //!     "v7",
@@ -153,7 +153,7 @@
 //!
 //! ```toml
 //! [dependencies.uuid]
-//! version = "1.11.0"
+//! version = "1.11.1"
 //! default-features = false
 //! ```
 //!
@@ -211,7 +211,7 @@
 #![doc(
     html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
     html_favicon_url = "https://www.rust-lang.org/favicon.ico",
-    html_root_url = "https://docs.rs/uuid/1.11.0"
+    html_root_url = "https://docs.rs/uuid/1.11.1"
 )]
 
 #[cfg(any(feature = "std", test))]
diff --git a/crates/uuid/src/timestamp.rs b/crates/uuid/src/timestamp.rs
index d147199..56262f1 100644
--- a/crates/uuid/src/timestamp.rs
+++ b/crates/uuid/src/timestamp.rs
@@ -165,12 +165,12 @@
 
 #[doc(hidden)]
 impl Timestamp {
-    #[deprecated(since = "1.11.0", note = "use `Timestamp::from_gregorian(ticks, counter)`")]
+    #[deprecated(since = "1.11.1", note = "use `Timestamp::from_gregorian(ticks, counter)`")]
     pub const fn from_rfc4122(ticks: u64, counter: u16) -> Self {
         Timestamp::from_gregorian(ticks, counter)
     }
 
-    #[deprecated(since = "1.11.0", note = "use `Timestamp::to_gregorian()`")]
+    #[deprecated(since = "1.11.1", note = "use `Timestamp::to_gregorian()`")]
     pub const fn to_rfc4122(&self) -> (u64, u16) {
         self.to_gregorian()
     }
diff --git a/crates/uuid/src/v7.rs b/crates/uuid/src/v7.rs
index 44227b5..c2b4a22 100644
--- a/crates/uuid/src/v7.rs
+++ b/crates/uuid/src/v7.rs
@@ -31,7 +31,8 @@
     /// # Examples
     ///
     /// A v7 UUID can be created from a unix [`Timestamp`] plus a 128 bit
-    /// random number. When supplied as such, the data will be
+    /// random number. When supplied as such, the data will be combined 
+    /// to ensure uniqueness and sortability at millisecond granularity.
     ///
     /// ```rust
     /// # use uuid::{Uuid, Timestamp, NoContext};
diff --git a/pseudo_crate/Cargo.lock b/pseudo_crate/Cargo.lock
index afdc1f7..d870e6a 100644
--- a/pseudo_crate/Cargo.lock
+++ b/pseudo_crate/Cargo.lock
@@ -339,7 +339,7 @@
  "predicates-core",
  "predicates-tree",
  "prettyplease 0.2.25",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "protobuf 3.2.0",
  "protobuf-codegen",
  "protobuf-json-mapping",
@@ -633,7 +633,7 @@
 checksum = "56df0aeedf6b7a2fc67d06db35b09684c3e8da0c95f8f27685cb17e08413d87a"
 dependencies = [
  "argh_shared",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -676,7 +676,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -693,7 +693,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -848,7 +848,7 @@
  "lazycell",
  "log",
  "peeking_take_while",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "regex",
  "rustc-hash",
@@ -868,7 +868,7 @@
  "lazy_static",
  "lazycell",
  "peeking_take_while",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "regex",
  "rustc-hash",
@@ -891,7 +891,7 @@
  "lazycell",
  "log",
  "prettyplease 0.2.25",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "regex",
  "rustc-hash",
@@ -997,11 +997,11 @@
 
 [[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",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -1222,7 +1222,7 @@
 checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47"
 dependencies = [
  "heck",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -1562,7 +1562,7 @@
 dependencies = [
  "fnv",
  "ident_case",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "strsim 0.11.1",
  "syn 2.0.96",
@@ -1626,7 +1626,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -1646,7 +1646,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "30542c1ad912e0e3d22a1935c290e12e8a29d704a420177a31faad4a601a0800"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -1695,7 +1695,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -1799,7 +1799,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -1890,7 +1890,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1ab7934152eaf26aa5aa9f7371408ad5af4c31357073c9e84c3b9d7f11ad639a"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 1.0.109",
 ]
@@ -2125,7 +2125,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -2312,7 +2312,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f5070fa86976044fe2b004d874c10af5d1aed6d8f6a72ff93a6eb29cc87048bc"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -2982,7 +2982,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "279a77bf40c85a08513aca203635b96610ebf0e37a92cb0cee76e04da100a426"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -3001,6 +3001,15 @@
 
 [[package]]
 name = "litrs"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b487d13a3f4b465df87895a37b24e364907019afa12d943528df5b7abe0836f1"
+dependencies = [
+ "proc-macro2 1.0.93",
+]
+
+[[package]]
+name = "litrs"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5"
@@ -3103,7 +3112,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5cf92c10c7e361d6b99666ec1c6f9805b0bea2c3bd8c78dc6fe98ac5bd78db11"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -3149,7 +3158,7 @@
 checksum = "209d075476da2e63b4b29e72a2ef627b840589588e71400a25e3565c4f849d07"
 dependencies = [
  "proc-macro-error",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 1.0.109",
 ]
@@ -3172,7 +3181,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49e7bc1560b95a3c4a25d03de42fe76ca718ab92d1a22a55b9b4cf67b3ae635c"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -3267,7 +3276,7 @@
 checksum = "264e7261ff5d3d0d0bbc3af01df1d294727440861bf9ce3d30e93c90191ab9f3"
 dependencies = [
  "darling",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -3334,7 +3343,7 @@
 checksum = "af7cbce79ec385a1d4f54baa90a76401eb15d9cab93685f62e7e9f942aa00ae2"
 dependencies = [
  "cfg-if",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -3346,7 +3355,7 @@
 checksum = "25ca3004c2efe9011bd4e461bd8256445052b9615405b4f7ea43fc8ca5c20898"
 dependencies = [
  "cfg-if",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -3413,7 +3422,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f7da86466fe446079286ef4b2f6d789755b610a9d85da8477633f734d2697e8"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -3476,7 +3485,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 1.0.109",
 ]
@@ -3525,7 +3534,7 @@
 checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56"
 dependencies = [
  "proc-macro-crate 3.1.0",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -3597,7 +3606,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8d1296fab5231654a5aec8bf9e87ba4e3938c502fc4c3c0425a00084c78944be"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -3623,7 +3632,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.90",
 ]
@@ -3682,7 +3691,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e6085210d8ec9bcbdf38b5c8e97bccef1877f3f291eae48b65388ca979f5314e"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 1.0.109",
 ]
@@ -3776,7 +3785,7 @@
  "pest",
  "pest_derive",
  "prettyplease 0.2.25",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "serde",
  "serde_json",
@@ -3849,7 +3858,7 @@
 dependencies = [
  "pest",
  "pest_meta",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -3890,16 +3899,16 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff"
+checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
 
 [[package]]
 name = "pin-utils"
@@ -4055,9 +4064,9 @@
 
 [[package]]
 name = "predicates-tree"
-version = "1.0.9"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
+checksum = "41b740d195ed3166cd147c8047ec98db0e22ec019eb8eeb76d343b795304fb13"
 dependencies = [
  "predicates-core",
  "termtree",
@@ -4069,7 +4078,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "syn 1.0.109",
 ]
 
@@ -4079,7 +4088,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "syn 2.0.96",
 ]
 
@@ -4109,7 +4118,7 @@
 checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
 dependencies = [
  "proc-macro-error-attr",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 1.0.109",
  "version_check",
@@ -4121,7 +4130,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "version_check",
 ]
@@ -4137,9 +4146,9 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.92"
+version = "1.0.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0"
+checksum = "60946a68e5f9d28b0dc1c21bb8a97ee7d018a8b322fa57838ba31cc878e22d99"
 dependencies = [
  "unicode-ident",
 ]
@@ -4236,7 +4245,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bca9224df2e20e7c5548aeb5f110a0f3b77ef05f8585139b7148b59056168ed2"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 1.0.109",
 ]
@@ -4294,7 +4303,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
 ]
 
 [[package]]
@@ -4408,7 +4417,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "46aef80f842736de545ada6ec65b81ee91504efd6853f4b96de7414c42ae7443"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -4578,7 +4587,7 @@
 dependencies = [
  "heck",
  "proc-macro-error",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
  "thiserror 1.0.49",
@@ -4592,7 +4601,7 @@
 dependencies = [
  "macro_rules_attribute",
  "prettyplease 0.1.25",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 1.0.109",
 ]
@@ -4673,7 +4682,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -4917,7 +4926,7 @@
 checksum = "43cf89a0cc9131279235baf8599b0e073fbcb096419204de0cc5d1a48ae73f74"
 dependencies = [
  "proc-macro-crate 3.1.0",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "rand",
  "syn 1.0.109",
@@ -4954,7 +4963,7 @@
 checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
 dependencies = [
  "heck",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "rustversion",
  "syn 2.0.96",
@@ -4983,7 +4992,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "unicode-ident",
 ]
@@ -4994,7 +5003,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "unicode-ident",
 ]
@@ -5005,7 +5014,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b5dc35bb08dd1ca3dfb09dce91fd2d13294d6711c88897d9a9d60acf39bce049"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -5028,7 +5037,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -5105,7 +5114,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -5116,7 +5125,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -5256,7 +5265,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -5451,7 +5460,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -5575,7 +5584,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9b24e77d3fc1e617051e630f99da24bcae6328abab37b8f9216bb68d06804f9a"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -5705,7 +5714,7 @@
  "camino",
  "fs-err",
  "once_cell",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "serde",
  "syn 2.0.96",
@@ -5808,9 +5817,9 @@
 
 [[package]]
 name = "uuid"
-version = "1.11.0"
+version = "1.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a"
+checksum = "b913a3b5fe84142e269d63cc62b64319ccaf89b748fc31fe025177f767a756c4"
 
 [[package]]
 name = "valuable"
@@ -6005,7 +6014,7 @@
  "objc",
  "once_cell",
  "parking_lot",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "regex",
  "serde",
@@ -6023,7 +6032,7 @@
 checksum = "895b8a2cac1e7650d2d0552f2392da0970a358515ac11a34adaf19bfdc771b98"
 dependencies = [
  "proc-macro-crate 1.3.1",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 1.0.109",
 ]
@@ -6073,7 +6082,7 @@
  "bumpalo",
  "log",
  "once_cell",
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
  "wasm-bindgen-shared",
@@ -6095,7 +6104,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
  "wasm-bindgen-backend",
@@ -6128,7 +6137,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d7b56f89937f1cf2ee1f1259cf2936a17a1f45d8f0aa1019fae6d470d304cfa6"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quick-xml",
  "quote 1.0.37",
 ]
@@ -6496,7 +6505,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "15bd7679c15e22924f53aee34d4e448c45b674feb6129689af88593e129f8f42"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 1.0.109",
 ]
@@ -6574,7 +6583,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -6585,7 +6594,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d3931cb58c62c13adec22e38686b559c86a30565e16ad6e8510a337cedc611e1"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
@@ -6605,7 +6614,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
- "proc-macro2 1.0.92",
+ "proc-macro2 1.0.93",
  "quote 1.0.37",
  "syn 2.0.96",
 ]
diff --git a/pseudo_crate/Cargo.toml b/pseudo_crate/Cargo.toml
index bcc6c96..4faa13d 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"
@@ -241,7 +241,7 @@
 petgraph = "=0.6.5"
 pin-project = "=1.1.3"
 pin-project-internal = "=1.1.3"
-pin-project-lite = "=0.2.15"
+pin-project-lite = "=0.2.16"
 pin-utils = "=0.1.0"
 pkcs1 = "=0.7.5"
 pkcs8 = "=0.10.2"
@@ -252,9 +252,9 @@
 ppv-lite86 = "=0.2.17"
 predicates = "=3.1.3"
 predicates-core = "=1.0.9"
-predicates-tree = "=1.0.9"
+predicates-tree = "=1.0.11"
 prettyplease = "=0.2.25"
-proc-macro2 = "=1.0.92"
+proc-macro2 = "=1.0.93"
 protobuf = "=3.2.0"
 protobuf-codegen = "=3.2.0"
 protobuf-json-mapping = "=3.2.0"
@@ -372,7 +372,7 @@
 userfaultfd = "=0.8.1"
 userfaultfd-sys = "=0.5.0"
 utf-8 = "=0.7.6"
-uuid = "=1.11.0"
+uuid = "=1.11.1"
 vhost = "=0.8.1"
 vhost-user-backend = "=0.10.1"
 virtio-bindings = "=0.2.2"