Skip to content

Commit e9a9085

Browse files
authored
Merge pull request #396 from dtolnay/deprecatedfrom
Suppress deprecation warning on generated From impls
2 parents f1f159d + 6e8c724 commit e9a9085

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

impl/src/expand.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,9 @@ fn impl_struct(input: Struct) -> TokenStream {
170170
let source_var = Ident::new("source", span);
171171
let body = from_initializer(from_field, backtrace_field, &source_var);
172172
quote_spanned! {span=>
173-
#[allow(unused_qualifications, clippy::needless_lifetimes)]
173+
#[allow(deprecated, unused_qualifications, clippy::needless_lifetimes)]
174174
#[automatically_derived]
175175
impl #impl_generics ::core::convert::From<#from> for #ty #ty_generics #where_clause {
176-
#[allow(deprecated)]
177176
fn from(#source_var: #from) -> Self {
178177
#ty #body
179178
}
@@ -435,10 +434,9 @@ fn impl_enum(input: Enum) -> TokenStream {
435434
let source_var = Ident::new("source", span);
436435
let body = from_initializer(from_field, backtrace_field, &source_var);
437436
Some(quote_spanned! {span=>
438-
#[allow(unused_qualifications, clippy::needless_lifetimes)]
437+
#[allow(deprecated, unused_qualifications, clippy::needless_lifetimes)]
439438
#[automatically_derived]
440439
impl #impl_generics ::core::convert::From<#from> for #ty #ty_generics #where_clause {
441-
#[allow(deprecated)]
442440
fn from(#source_var: #from) -> Self {
443441
#ty::#variant #body
444442
}

tests/test_lints.rs

+10
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,16 @@ fn test_deprecated() {
6464
Variant,
6565
}
6666

67+
#[derive(Error, Debug)]
68+
pub enum DeprecatedFrom {
69+
#[error(transparent)]
70+
Variant(
71+
#[from]
72+
#[allow(deprecated)]
73+
DeprecatedStruct,
74+
),
75+
}
76+
6777
#[allow(deprecated)]
6878
let _: DeprecatedStruct;
6979
#[allow(deprecated)]

0 commit comments

Comments
 (0)