diff options
| author | QuietMisdreavus <grey@quietmisdreavus.net> | 2018-06-15 14:47:07 -0500 |
|---|---|---|
| committer | QuietMisdreavus <grey@quietmisdreavus.net> | 2018-06-15 14:47:07 -0500 |
| commit | 903e2c8afe6907b8828202345f2677a8e14f78fa (patch) | |
| tree | 90107b1989e50c6bdf8ecfc3a26e892f72bd559c | |
| parent | 02121f36e88ad21cadae1d7222bd2f4a795684d2 (diff) | |
| download | rust-903e2c8afe6907b8828202345f2677a8e14f78fa.tar.gz rust-903e2c8afe6907b8828202345f2677a8e14f78fa.zip | |
turn expect_full_def_from_use into an iterator
| -rw-r--r-- | src/librustc/hir/lowering.rs | 15 |
1 files 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 @@ impl<'a> LoweringContext<'a> { }) } - fn expect_full_def_from_use(&mut self, id: NodeId) -> Vec<Def> { - let mut ret = self.resolver.get_import(id).present_items().map(|pr| { + fn expect_full_def_from_use(&mut self, id: NodeId) -> impl Iterator<Item=Def> { + self.resolver.get_import(id).present_items().map(|pr| { if pr.unresolved_segments() != 0 { bug!("path not fully resolved: {:?}", pr); } pr.base_def() - }).collect::<Vec<_>>(); - - if ret.is_empty() { - ret.push(Def::Err); - } - - ret + }) } fn diagnostic(&self) -> &errors::Handler { @@ -2407,7 +2401,7 @@ impl<'a> LoweringContext<'a> { } 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 @@ impl<'a> LoweringContext<'a> { 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()) { |
