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