@@ -5,9 +5,7 @@ use crate::span::MemberSpan;
5
5
use proc_macro2:: TokenStream ;
6
6
use quote:: { format_ident, quote, quote_spanned, ToTokens } ;
7
7
use std:: collections:: BTreeSet as Set ;
8
- use syn:: {
9
- Data , DeriveInput , GenericArgument , Member , PathArguments , Result , Token , Type , Visibility ,
10
- } ;
8
+ use syn:: { DeriveInput , GenericArgument , Member , PathArguments , Result , Token , Type } ;
11
9
12
10
pub fn derive ( node : & DeriveInput ) -> Result < TokenStream > {
13
11
let input = Input :: from_syn ( node) ?;
@@ -168,7 +166,6 @@ fn impl_struct(input: Struct) -> TokenStream {
168
166
}
169
167
} ) ;
170
168
171
- let error_trait = spanned_error_trait ( input. original ) ;
172
169
if input. generics . type_params ( ) . next ( ) . is_some ( ) {
173
170
let self_token = <Token ! [ Self ] >:: default ( ) ;
174
171
error_inferred_bounds. insert ( self_token, Trait :: Debug ) ;
@@ -178,7 +175,7 @@ fn impl_struct(input: Struct) -> TokenStream {
178
175
179
176
quote ! {
180
177
#[ allow( unused_qualifications) ]
181
- impl #impl_generics #error_trait for #ty #ty_generics #error_where_clause {
178
+ impl #impl_generics std :: error :: Error for #ty #ty_generics #error_where_clause {
182
179
#source_method
183
180
#provide_method
184
181
}
@@ -425,7 +422,6 @@ fn impl_enum(input: Enum) -> TokenStream {
425
422
} )
426
423
} ) ;
427
424
428
- let error_trait = spanned_error_trait ( input. original ) ;
429
425
if input. generics . type_params ( ) . next ( ) . is_some ( ) {
430
426
let self_token = <Token ! [ Self ] >:: default ( ) ;
431
427
error_inferred_bounds. insert ( self_token, Trait :: Debug ) ;
@@ -435,7 +431,7 @@ fn impl_enum(input: Enum) -> TokenStream {
435
431
436
432
quote ! {
437
433
#[ allow( unused_qualifications) ]
438
- impl #impl_generics #error_trait for #ty #ty_generics #error_where_clause {
434
+ impl #impl_generics std :: error :: Error for #ty #ty_generics #error_where_clause {
439
435
#source_method
440
436
#provide_method
441
437
}
@@ -528,21 +524,3 @@ fn type_parameter_of_option(ty: &Type) -> Option<&Type> {
528
524
_ => None ,
529
525
}
530
526
}
531
-
532
- fn spanned_error_trait ( input : & DeriveInput ) -> TokenStream {
533
- let vis_span = match & input. vis {
534
- Visibility :: Public ( vis) => Some ( vis. span ) ,
535
- Visibility :: Restricted ( vis) => Some ( vis. pub_token . span ) ,
536
- Visibility :: Inherited => None ,
537
- } ;
538
- let data_span = match & input. data {
539
- Data :: Struct ( data) => data. struct_token . span ,
540
- Data :: Enum ( data) => data. enum_token . span ,
541
- Data :: Union ( data) => data. union_token . span ,
542
- } ;
543
- let first_span = vis_span. unwrap_or ( data_span) ;
544
- let last_span = input. ident . span ( ) ;
545
- let path = quote_spanned ! ( first_span=> std:: error:: ) ;
546
- let error = quote_spanned ! ( last_span=> Error ) ;
547
- quote ! ( #path #error)
548
- }
0 commit comments