From 6eba9cd92c295c5389944f6adda1f1e83b2cb008 Mon Sep 17 00:00:00 2001 From: John Turner Date: Sat, 15 Nov 2025 20:18:36 +0000 Subject: Squashed 'subprojects/thiserror/' content from commit 247eab5 git-subtree-dir: subprojects/thiserror git-subtree-split: 247eab5d79e27ad28859afdf8bc600a4242829b7 --- impl/src/fallback.rs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 impl/src/fallback.rs (limited to 'impl/src/fallback.rs') diff --git a/impl/src/fallback.rs b/impl/src/fallback.rs new file mode 100644 index 0000000..9914aa5 --- /dev/null +++ b/impl/src/fallback.rs @@ -0,0 +1,33 @@ +use crate::expand::call_site_ident; +use crate::private; +use proc_macro2::TokenStream; +use quote::quote; +use syn::DeriveInput; + +pub(crate) fn expand(input: &DeriveInput, error: syn::Error) -> TokenStream { + let ty = call_site_ident(&input.ident); + let (impl_generics, ty_generics, where_clause) = input.generics.split_for_impl(); + + let error = error.to_compile_error(); + + quote! { + #error + + #[allow(unused_qualifications)] + #[automatically_derived] + impl #impl_generics ::thiserror::#private::Error for #ty #ty_generics #where_clause + where + // Work around trivial bounds being unstable. + // https://github.com/rust-lang/rust/issues/48214 + for<'workaround> #ty #ty_generics: ::core::fmt::Debug, + {} + + #[allow(unused_qualifications)] + #[automatically_derived] + impl #impl_generics ::core::fmt::Display for #ty #ty_generics #where_clause { + fn fmt(&self, __formatter: &mut ::core::fmt::Formatter) -> ::core::fmt::Result { + ::core::unreachable!() + } + } + } +} -- cgit v1.2.3