File tree 1 file changed +5
-0
lines changed
src/librustc_trait_selection/traits
1 file changed +5
-0
lines changed Original file line number Diff line number Diff line change @@ -73,6 +73,9 @@ pub struct FulfillmentContext<'tcx> {
73
73
#[ derive( Clone , Debug ) ]
74
74
pub struct PendingPredicateObligation < ' tcx > {
75
75
pub obligation : PredicateObligation < ' tcx > ,
76
+ // FIXME(eddyb) look into whether this could be a `SmallVec`.
77
+ // Judging by the comment in `process_obligation`, the 1-element case
78
+ // is common so this could be a `SmallVec<[TyOrConstInferVar<'tcx>; 1]>`.
76
79
pub stalled_on : Vec < TyOrConstInferVar < ' tcx > > ,
77
80
}
78
81
@@ -538,6 +541,8 @@ fn trait_ref_type_vars<'a, 'tcx>(
538
541
// FIXME(eddyb) walk over `GenericArg` to support const infer vars.
539
542
. input_types ( )
540
543
. map ( |ty| selcx. infcx ( ) . resolve_vars_if_possible ( & ty) )
544
+ // FIXME(eddyb) try using `maybe_walk` to skip *all* subtrees that
545
+ // don't contain inference variables, not just the outermost level.
541
546
// FIXME(eddyb) use `has_infer_types_or_const`.
542
547
. filter ( |ty| ty. has_infer_types ( ) )
543
548
. flat_map ( |ty| ty. walk ( ) )
You can’t perform that action at this time.
0 commit comments