@@ -7,7 +7,7 @@ use rustc_arena::DroplessArena;
7
7
use rustc_hir:: def:: DefKind ;
8
8
use rustc_hir:: def_id:: { DefId , LocalDefId } ;
9
9
use 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 } ;
11
11
use rustc_middle:: ty:: { TypeSuperVisitable , TypeVisitable } ;
12
12
use std:: ops:: ControlFlow ;
13
13
@@ -59,13 +59,6 @@ fn variances_of(tcx: TyCtxt<'_>, item_def_id: LocalDefId) -> &[ty::Variance] {
59
59
DefKind :: OpaqueTy | DefKind :: ImplTraitPlaceholder => {
60
60
return variance_of_opaque ( tcx, item_def_id) ;
61
61
}
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
- }
69
62
_ => { }
70
63
}
71
64
@@ -125,7 +118,8 @@ fn variance_of_opaque(tcx: TyCtxt<'_>, item_def_id: LocalDefId) -> &[ty::Varianc
125
118
// FIXME(-Zlower-impl-trait-in-trait-to-assoc-ty) check whether this is necessary
126
119
// at all for RPITITs.
127
120
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 ( ) =>
129
123
{
130
124
self . visit_opaque ( * def_id, substs)
131
125
}
0 commit comments