@@ -7,7 +7,7 @@ use rustc_arena::DroplessArena;
77use rustc_hir:: def:: DefKind ;
88use rustc_hir:: def_id:: { DefId , LocalDefId } ;
99use rustc_middle:: query:: Providers ;
10- use rustc_middle:: ty:: { self , CrateVariancesMap , ImplTraitInTraitData , SubstsRef , Ty , TyCtxt } ;
10+ use rustc_middle:: ty:: { self , CrateVariancesMap , SubstsRef , Ty , TyCtxt } ;
1111use rustc_middle:: ty:: { TypeSuperVisitable , TypeVisitable } ;
1212use std:: ops:: ControlFlow ;
1313
@@ -59,13 +59,6 @@ fn variances_of(tcx: TyCtxt<'_>, item_def_id: LocalDefId) -> &[ty::Variance] {
5959 DefKind :: OpaqueTy | DefKind :: ImplTraitPlaceholder => {
6060 return variance_of_opaque ( tcx, item_def_id) ;
6161 }
62- DefKind :: AssocTy => {
63- if let Some ( ImplTraitInTraitData :: Trait { .. } ) =
64- tcx. opt_rpitit_info ( item_def_id. to_def_id ( ) )
65- {
66- return variance_of_opaque ( tcx, item_def_id) ;
67- }
68- }
6962 _ => { }
7063 }
7164
@@ -125,7 +118,8 @@ fn variance_of_opaque(tcx: TyCtxt<'_>, item_def_id: LocalDefId) -> &[ty::Varianc
125118 // FIXME(-Zlower-impl-trait-in-trait-to-assoc-ty) check whether this is necessary
126119 // at all for RPITITs.
127120 ty:: Alias ( _, ty:: AliasTy { def_id, substs, .. } )
128- if self . tcx . is_impl_trait_in_trait ( * def_id) =>
121+ if self . tcx . is_impl_trait_in_trait ( * def_id)
122+ && !self . tcx . lower_impl_trait_in_trait_to_assoc_ty ( ) =>
129123 {
130124 self . visit_opaque ( * def_id, substs)
131125 }
0 commit comments