From 903e2c8afe6907b8828202345f2677a8e14f78fa Mon Sep 17 00:00:00 2001 From: QuietMisdreavus Date: Fri, 15 Jun 2018 14:47:07 -0500 Subject: [PATCH] turn expect_full_def_from_use into an iterator --- src/librustc/hir/lowering.rs | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/src/librustc/hir/lowering.rs b/src/librustc/hir/lowering.rs index 261473a446c..f31af7785a5 100644 --- a/src/librustc/hir/lowering.rs +++ b/src/librustc/hir/lowering.rs @@ -574,19 +574,13 @@ fn expect_full_def(&mut self, id: NodeId) -> Def { }) } - fn expect_full_def_from_use(&mut self, id: NodeId) -> Vec { - let mut ret = self.resolver.get_import(id).present_items().map(|pr| { + fn expect_full_def_from_use(&mut self, id: NodeId) -> impl Iterator { + self.resolver.get_import(id).present_items().map(|pr| { if pr.unresolved_segments() != 0 { bug!("path not fully resolved: {:?}", pr); } pr.base_def() - }).collect::>(); - - if ret.is_empty() { - ret.push(Def::Err); - } - - ret + }) } fn diagnostic(&self) -> &errors::Handler { @@ -2407,7 +2401,7 @@ fn lower_use_tree( } let parent_def_index = self.current_hir_id_owner.last().unwrap().0; - let mut defs = self.expect_full_def_from_use(id).into_iter(); + let mut defs = self.expect_full_def_from_use(id); // we want to return *something* from this function, so hang onto the first item // for later let mut ret_def = defs.next().unwrap_or(Def::Err); @@ -2746,7 +2740,6 @@ fn lower_item_id_use_tree(&mut self, UseTreeKind::Glob => {} UseTreeKind::Simple(_, id1, id2) => { for (_, &id) in self.expect_full_def_from_use(base_id) - .into_iter() .skip(1) .zip([id1, id2].iter()) { -- 2.44.0