File tree 1 file changed +4
-11
lines changed
1 file changed +4
-11
lines changed Original file line number Diff line number Diff line change @@ -574,19 +574,13 @@ impl<'a> LoweringContext<'a> {
574
574
} )
575
575
}
576
576
577
- fn expect_full_def_from_use ( & mut self , id : NodeId ) -> Vec < Def > {
578
- let mut ret = self . resolver . get_import ( id) . present_items ( ) . map ( |pr| {
577
+ fn expect_full_def_from_use ( & mut self , id : NodeId ) -> impl Iterator < Item = Def > {
578
+ self . resolver . get_import ( id) . present_items ( ) . map ( |pr| {
579
579
if pr. unresolved_segments ( ) != 0 {
580
580
bug ! ( "path not fully resolved: {:?}" , pr) ;
581
581
}
582
582
pr. base_def ( )
583
- } ) . collect :: < Vec < _ > > ( ) ;
584
-
585
- if ret. is_empty ( ) {
586
- ret. push ( Def :: Err ) ;
587
- }
588
-
589
- ret
583
+ } )
590
584
}
591
585
592
586
fn diagnostic ( & self ) -> & errors:: Handler {
@@ -2407,7 +2401,7 @@ impl<'a> LoweringContext<'a> {
2407
2401
}
2408
2402
2409
2403
let parent_def_index = self . current_hir_id_owner . last ( ) . unwrap ( ) . 0 ;
2410
- let mut defs = self . expect_full_def_from_use ( id) . into_iter ( ) ;
2404
+ let mut defs = self . expect_full_def_from_use ( id) ;
2411
2405
// we want to return *something* from this function, so hang onto the first item
2412
2406
// for later
2413
2407
let mut ret_def = defs. next ( ) . unwrap_or ( Def :: Err ) ;
@@ -2746,7 +2740,6 @@ impl<'a> LoweringContext<'a> {
2746
2740
UseTreeKind :: Glob => { }
2747
2741
UseTreeKind :: Simple ( _, id1, id2) => {
2748
2742
for ( _, & id) in self . expect_full_def_from_use ( base_id)
2749
- . into_iter ( )
2750
2743
. skip ( 1 )
2751
2744
. zip ( [ id1, id2] . iter ( ) )
2752
2745
{
You can’t perform that action at this time.
0 commit comments