@@ -89,9 +89,6 @@ fn unused_generic_params(tcx: TyCtxt<'_>, def_id: DefId) -> FiniteBitSet<u32> {
89
89
} ;
90
90
let mut vis = MarkUsedGenericParams { tcx, def_id, unused_parameters : & mut unused_parameters } ;
91
91
vis. visit_body ( body) ;
92
- debug ! ( ?unused_parameters, "(after visitor)" ) ;
93
-
94
- mark_used_by_predicates ( tcx, def_id, & mut unused_parameters) ;
95
92
debug ! ( ?unused_parameters, "(end)" ) ;
96
93
97
94
// Emit errors for debugging and testing if enabled.
@@ -161,44 +158,6 @@ fn mark_used_by_default_parameters<'tcx>(
161
158
}
162
159
}
163
160
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
-
202
161
/// Emit errors for the function annotated by `#[rustc_polymorphize_error]`, labelling each generic
203
162
/// parameter which was unused.
204
163
#[ instrument( level = "debug" , skip( tcx, generics) ) ]
0 commit comments