@@ -89,9 +89,6 @@ fn unused_generic_params(tcx: TyCtxt<'_>, def_id: DefId) -> FiniteBitSet<u32> {
8989 } ;
9090 let mut vis = MarkUsedGenericParams { tcx, def_id, unused_parameters : & mut unused_parameters } ;
9191 vis. visit_body ( body) ;
92- debug ! ( ?unused_parameters, "(after visitor)" ) ;
93-
94- mark_used_by_predicates ( tcx, def_id, & mut unused_parameters) ;
9592 debug ! ( ?unused_parameters, "(end)" ) ;
9693
9794 // Emit errors for debugging and testing if enabled.
@@ -161,44 +158,6 @@ fn mark_used_by_default_parameters<'tcx>(
161158 }
162159}
163160
164- /// Search the predicates on used generic parameters for any unused generic parameters, and mark
165- /// those as used.
166- #[ instrument( level = "debug" , skip( tcx, def_id) ) ]
167- fn mark_used_by_predicates < ' tcx > (
168- tcx : TyCtxt < ' tcx > ,
169- def_id : DefId ,
170- unused_parameters : & mut FiniteBitSet < u32 > ,
171- ) {
172- let def_id = tcx. closure_base_def_id ( def_id) ;
173- let predicates = tcx. explicit_predicates_of ( def_id) ;
174-
175- let mut current_unused_parameters = FiniteBitSet :: new_empty ( ) ;
176- // Run to a fixed point to support `where T: Trait<U>, U: Trait<V>`, starting with an empty
177- // bit set so that this is skipped if all parameters are already used.
178- while current_unused_parameters != * unused_parameters {
179- debug ! ( ?current_unused_parameters, ?unused_parameters) ;
180- current_unused_parameters = * unused_parameters;
181-
182- for ( predicate, _) in predicates. predicates {
183- // Consider all generic params in a predicate as used if any other parameter in the
184- // predicate is used.
185- let any_param_used = {
186- let mut vis = HasUsedGenericParams { tcx, unused_parameters } ;
187- predicate. visit_with ( & mut vis) . is_break ( )
188- } ;
189-
190- if any_param_used {
191- let mut vis = MarkUsedGenericParams { tcx, def_id, unused_parameters } ;
192- predicate. visit_with ( & mut vis) ;
193- }
194- }
195- }
196-
197- if let Some ( parent) = predicates. parent {
198- mark_used_by_predicates ( tcx, parent, unused_parameters) ;
199- }
200- }
201-
202161/// Emit errors for the function annotated by `#[rustc_polymorphize_error]`, labelling each generic
203162/// parameter which was unused.
204163#[ instrument( level = "debug" , skip( tcx, generics) ) ]
0 commit comments