@@ -2,6 +2,7 @@ use core::ops::ControlFlow;
22
33use rustc_abi:: { FieldIdx , VariantIdx } ;
44use rustc_apfloat:: Float ;
5+ use rustc_attr_data_structures:: { AttributeKind , find_attr} ;
56use rustc_data_structures:: fx:: FxHashSet ;
67use rustc_errors:: Diag ;
78use rustc_hir as hir;
@@ -15,7 +16,7 @@ use rustc_middle::ty::{
1516} ;
1617use rustc_middle:: { mir, span_bug} ;
1718use rustc_span:: def_id:: DefId ;
18- use rustc_span:: { DUMMY_SP , Span , sym } ;
19+ use rustc_span:: { DUMMY_SP , Span } ;
1920use rustc_trait_selection:: traits:: ObligationCause ;
2021use rustc_trait_selection:: traits:: query:: evaluate_obligation:: InferCtxtExt ;
2122use tracing:: { debug, instrument, trace} ;
@@ -495,7 +496,8 @@ fn type_has_partial_eq_impl<'tcx>(
495496 let mut structural_peq = false ;
496497 let mut impl_def_id = None ;
497498 for def_id in tcx. non_blanket_impls_for_ty ( partial_eq_trait_id, ty) {
498- automatically_derived = tcx. has_attr ( def_id, sym:: automatically_derived) ;
499+ automatically_derived =
500+ find_attr ! ( tcx. get_all_attrs( def_id) , AttributeKind :: AutomaticallyDerived ( ..) ) ;
499501 impl_def_id = Some ( def_id) ;
500502 }
501503 for _ in tcx. non_blanket_impls_for_ty ( structural_partial_eq_trait_id, ty) {
0 commit comments