@@ -29,9 +29,7 @@ use rustc_infer::infer::TyCtxtInferExt;
2929use rustc_middle:: hir:: nested_filter;
3030use rustc_middle:: ty:: query:: Providers ;
3131use rustc_middle:: ty:: util:: { Discr , IntTypeExt } ;
32- use rustc_middle:: ty:: {
33- self , AdtKind , Const , IsSuggestable , ToPredicate , Ty , TyCtxt , TypeVisitable ,
34- } ;
32+ use rustc_middle:: ty:: { self , AdtKind , Const , IsSuggestable , ToPredicate , Ty , TyCtxt } ;
3533use rustc_span:: symbol:: { kw, sym, Ident , Symbol } ;
3634use rustc_span:: Span ;
3735use rustc_target:: spec:: abi;
@@ -1270,7 +1268,7 @@ fn suggest_impl_iterator<'tcx>(
12701268 if !tcx
12711269 . infer_ctxt ( )
12721270 . build ( )
1273- . type_implements_trait ( iter_trait, [ ret_ty] , tcx. param_env ( iter_trait ) )
1271+ . type_implements_trait ( iter_trait, [ ret_ty] , tcx. param_env ( def_id ) )
12741272 . must_apply_modulo_regions ( )
12751273 {
12761274 return None ;
@@ -1296,8 +1294,7 @@ fn suggest_impl_iterator<'tcx>(
12961294 ) ) ;
12971295 if ocx. select_where_possible ( ) . is_empty ( )
12981296 && let item_ty = infcx. resolve_vars_if_possible ( ty_var)
1299- && !item_ty. references_error ( )
1300- && !item_ty. has_placeholders ( )
1297+ && item_ty. is_suggestable ( tcx, false )
13011298 {
13021299 return Some ( item_ty) ;
13031300 }
0 commit comments