@@ -2,7 +2,7 @@ use std::collections::BTreeMap;
2
2
3
3
use super :: NormalizeExt ;
4
4
use super :: { ObligationCause , PredicateObligation , SelectionContext } ;
5
- use rustc_data_structures:: fx:: { FxHashSet , FxIndexMap } ;
5
+ use rustc_data_structures:: fx:: FxIndexMap ;
6
6
use rustc_errors:: Diag ;
7
7
use rustc_hir:: def_id:: DefId ;
8
8
use rustc_infer:: infer:: { InferCtxt , InferOk } ;
@@ -161,43 +161,6 @@ impl<'tcx> Iterator for TraitAliasExpander<'tcx> {
161
161
}
162
162
}
163
163
164
- ///////////////////////////////////////////////////////////////////////////
165
- // Iterator over def-IDs of supertraits
166
- ///////////////////////////////////////////////////////////////////////////
167
-
168
- pub struct SupertraitDefIds < ' tcx > {
169
- tcx : TyCtxt < ' tcx > ,
170
- stack : Vec < DefId > ,
171
- visited : FxHashSet < DefId > ,
172
- }
173
-
174
- pub fn supertrait_def_ids ( tcx : TyCtxt < ' _ > , trait_def_id : DefId ) -> SupertraitDefIds < ' _ > {
175
- SupertraitDefIds {
176
- tcx,
177
- stack : vec ! [ trait_def_id] ,
178
- visited : Some ( trait_def_id) . into_iter ( ) . collect ( ) ,
179
- }
180
- }
181
-
182
- impl Iterator for SupertraitDefIds < ' _ > {
183
- type Item = DefId ;
184
-
185
- fn next ( & mut self ) -> Option < DefId > {
186
- let def_id = self . stack . pop ( ) ?;
187
- let predicates = self . tcx . super_predicates_of ( def_id) ;
188
- let visited = & mut self . visited ;
189
- self . stack . extend (
190
- predicates
191
- . predicates
192
- . iter ( )
193
- . filter_map ( |( pred, _) | pred. as_trait_clause ( ) )
194
- . map ( |trait_ref| trait_ref. def_id ( ) )
195
- . filter ( |& super_def_id| visited. insert ( super_def_id) ) ,
196
- ) ;
197
- Some ( def_id)
198
- }
199
- }
200
-
201
164
///////////////////////////////////////////////////////////////////////////
202
165
// Other
203
166
///////////////////////////////////////////////////////////////////////////
0 commit comments