@@ -2,6 +2,7 @@ use core::ops::ControlFlow;
2
2
3
3
use rustc_abi:: { FieldIdx , VariantIdx } ;
4
4
use rustc_apfloat:: Float ;
5
+ use rustc_attr_data_structures:: { AttributeKind , find_attr} ;
5
6
use rustc_data_structures:: fx:: FxHashSet ;
6
7
use rustc_errors:: Diag ;
7
8
use rustc_hir as hir;
@@ -15,7 +16,7 @@ use rustc_middle::ty::{
15
16
} ;
16
17
use rustc_middle:: { mir, span_bug} ;
17
18
use rustc_span:: def_id:: DefId ;
18
- use rustc_span:: { DUMMY_SP , Span , sym } ;
19
+ use rustc_span:: { DUMMY_SP , Span } ;
19
20
use rustc_trait_selection:: traits:: ObligationCause ;
20
21
use rustc_trait_selection:: traits:: query:: evaluate_obligation:: InferCtxtExt ;
21
22
use tracing:: { debug, instrument, trace} ;
@@ -495,7 +496,8 @@ fn type_has_partial_eq_impl<'tcx>(
495
496
let mut structural_peq = false ;
496
497
let mut impl_def_id = None ;
497
498
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 ( ..) ) ;
499
501
impl_def_id = Some ( def_id) ;
500
502
}
501
503
for _ in tcx. non_blanket_impls_for_ty ( structural_partial_eq_trait_id, ty) {
0 commit comments