@@ -74,9 +74,6 @@ fn unused_generic_params(tcx: TyCtxt<'_>, def_id: DefId) -> FiniteBitSet<u32> {
74
74
vis. visit_body ( body) ;
75
75
debug ! ( "unused_generic_params: (after visitor) unused_parameters={:?}" , unused_parameters) ;
76
76
77
- mark_used_by_predicates ( tcx, def_id, & mut unused_parameters) ;
78
- debug ! ( "unused_generic_params: (end) unused_parameters={:?}" , unused_parameters) ;
79
-
80
77
// Emit errors for debugging and testing if enabled.
81
78
if !unused_parameters. is_empty ( ) {
82
79
emit_unused_generic_params_error ( tcx, def_id, generics, & unused_parameters) ;
@@ -113,47 +110,6 @@ fn mark_used_by_default_parameters<'tcx>(
113
110
}
114
111
}
115
112
116
- /// Search the predicates on used generic parameters for any unused generic parameters, and mark
117
- /// those as used.
118
- fn mark_used_by_predicates < ' tcx > (
119
- tcx : TyCtxt < ' tcx > ,
120
- def_id : DefId ,
121
- unused_parameters : & mut FiniteBitSet < u32 > ,
122
- ) {
123
- let def_id = tcx. closure_base_def_id ( def_id) ;
124
- let predicates = tcx. explicit_predicates_of ( def_id) ;
125
- debug ! ( "mark_used_by_predicates: predicates_of={:?}" , predicates) ;
126
-
127
- let mut current_unused_parameters = FiniteBitSet :: new_empty ( ) ;
128
- // Run to a fixed point to support `where T: Trait<U>, U: Trait<V>`, starting with an empty
129
- // bit set so that this is skipped if all parameters are already used.
130
- while current_unused_parameters != * unused_parameters {
131
- debug ! (
132
- "mark_used_by_predicates: current_unused_parameters={:?} = unused_parameters={:?}" ,
133
- current_unused_parameters, unused_parameters
134
- ) ;
135
- current_unused_parameters = * unused_parameters;
136
-
137
- for ( predicate, _) in predicates. predicates {
138
- // Consider all generic params in a predicate as used if any other parameter in the
139
- // predicate is used.
140
- let any_param_used = {
141
- let mut vis = HasUsedGenericParams { unused_parameters } ;
142
- predicate. visit_with ( & mut vis) . is_break ( )
143
- } ;
144
-
145
- if any_param_used {
146
- let mut vis = MarkUsedGenericParams { tcx, def_id, unused_parameters } ;
147
- predicate. visit_with ( & mut vis) ;
148
- }
149
- }
150
- }
151
-
152
- if let Some ( parent) = predicates. parent {
153
- mark_used_by_predicates ( tcx, parent, unused_parameters) ;
154
- }
155
- }
156
-
157
113
/// Emit errors for the function annotated by `#[rustc_polymorphize_error]`, labelling each generic
158
114
/// parameter which was unused.
159
115
fn emit_unused_generic_params_error < ' tcx > (
0 commit comments