From cf66eccb753f3cf28928de7536cd9c51b48166ab Mon Sep 17 00:00:00 2001 From: Olexorus <olexorus@gmail.com> Date: Tue, 15 Mar 2022 16:34:56 +0100 Subject: [PATCH 1/2] Use Rust 2021 postfix .into_iter() --- common/systems/src/phys.rs | 6 +++--- world/src/sim/mod.rs | 27 +++++++++++++++------------ 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/common/systems/src/phys.rs b/common/systems/src/phys.rs index e45fe28a60..4ad86edfed 100644 --- a/common/systems/src/phys.rs +++ b/common/systems/src/phys.rs @@ -1972,13 +1972,13 @@ fn closest_points(n: LineSegment2<f32>, m: LineSegment2<f32>) -> (Vec2<f32>, Vec // Check to see whether the lines are parallel if !t.is_finite() || !u.is_finite() { - // TODO: can use postfix .into_iter() when switching to Rust 2021 - IntoIterator::into_iter([ + [ (n.projected_point(m.start), m.start), (n.projected_point(m.end), m.end), (n.start, m.projected_point(n.start)), (n.end, m.projected_point(n.end)), - ]) + ] + .into_iter() .min_by_key(|(a, b)| ordered_float::OrderedFloat(a.distance_squared(*b))) .expect("Lines had non-finite elements") } else { diff --git a/world/src/sim/mod.rs b/world/src/sim/mod.rs index e050f0d048..bf9d7becb6 100644 --- a/world/src/sim/mod.rs +++ b/world/src/sim/mod.rs @@ -2130,18 +2130,21 @@ impl WorldSim { /// them spawning). pub fn get_near_trees(&self, wpos: Vec2<i32>) -> impl Iterator<Item = TreeAttr> + '_ { // Deterministic based on wpos - // TODO: can use postfix .into_iter() when switching to Rust 2021 - let normal_trees = IntoIterator::into_iter(self.gen_ctx.structure_gen.get(wpos)) - .filter_map(move |(wpos, seed)| { - let lottery = self.make_forest_lottery(wpos); - Some(TreeAttr { - pos: wpos, - seed, - scale: 1.0, - forest_kind: *lottery.choose_seeded(seed).as_ref()?, - inhabited: false, - }) - }); + let normal_trees = + self.gen_ctx + .structure_gen + .get(wpos) + .into_iter() + .filter_map(move |(wpos, seed)| { + let lottery = self.make_forest_lottery(wpos); + Some(TreeAttr { + pos: wpos, + seed, + scale: 1.0, + forest_kind: *lottery.choose_seeded(seed).as_ref()?, + inhabited: false, + }) + }); // // For testing // let giant_trees = From 2212c3d70cb295df9201729452d7bea8dd1dd393 Mon Sep 17 00:00:00 2001 From: Olexorus <olexorus@gmail.com> Date: Tue, 15 Mar 2022 16:49:03 +0100 Subject: [PATCH 2/2] Remove borrow-checker appeasing code that's no longer necessary in Rust 2021 --- voxygen/src/render/renderer.rs | 16 ++++++++++------ voxygen/src/ui/graphic/mod.rs | 8 ++------ voxygen/src/ui/widgets/item_tooltip.rs | 6 +++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/voxygen/src/render/renderer.rs b/voxygen/src/render/renderer.rs index 1ce1db0668..4f8a17baf2 100644 --- a/voxygen/src/render/renderer.rs +++ b/voxygen/src/render/renderer.rs @@ -647,19 +647,23 @@ impl Renderer { ); self.views = views; - // appease borrow check (TODO: remove after Rust 2021) - let device = &self.device; - let queue = &self.queue; - let views = &self.views; let bloom_params = self .views .bloom_tgts .as_ref() .map(|tgts| locals::BloomParams { locals: bloom_sizes.map(|size| { - Self::create_consts_inner(device, queue, &[bloom::Locals::new(size)]) + Self::create_consts_inner(&self.device, &self.queue, &[bloom::Locals::new( + size, + )]) }), - src_views: [&views.tgt_color_pp, &tgts[1], &tgts[2], &tgts[3], &tgts[4]], + src_views: [ + &self.views.tgt_color_pp, + &tgts[1], + &tgts[2], + &tgts[3], + &tgts[4], + ], final_tgt_view: &tgts[0], }); diff --git a/voxygen/src/ui/graphic/mod.rs b/voxygen/src/ui/graphic/mod.rs index b92cd96352..1ece067e4f 100644 --- a/voxygen/src/ui/graphic/mod.rs +++ b/voxygen/src/ui/graphic/mod.rs @@ -181,19 +181,15 @@ impl GraphicCache { return; } - // TODO: remove with Rust 2021 edition - let cache_map = &mut self.cache_map; - let textures = &mut self.textures; - // Remove from caches // Maybe make this more efficient if replace graphic is used more often - cache_map.retain(|&(key_id, _key_dims), details| { + self.cache_map.retain(|&(key_id, _key_dims), details| { // If the entry does not reference id, or it does but we can successfully // invalidate, retain the entry; otherwise, discard this entry completely. key_id != id || details .invalidate() - .map_err(|index| textures.remove(index)) + .map_err(|index| self.textures.remove(index)) .is_ok() }); } diff --git a/voxygen/src/ui/widgets/item_tooltip.rs b/voxygen/src/ui/widgets/item_tooltip.rs index bde83ebd0f..9d76661775 100644 --- a/voxygen/src/ui/widgets/item_tooltip.rs +++ b/voxygen/src/ui/widgets/item_tooltip.rs @@ -125,13 +125,13 @@ impl ItemTooltipManager { { let mp_h = MOUSE_PAD_Y / self.logical_scale_factor; - let tooltip_ids = &mut self.tooltip_ids; // TODO: remove with Rust 2021 - let mut id_walker = tooltip_ids.walk(); + let mut id_walker = self.tooltip_ids.walk(); let tooltip = |transparency, mouse_pos: [f64; 2], ui: &mut UiCell| { let mut prev_id = None; for item in items { - let tooltip_id = id_walker.next(tooltip_ids, &mut ui.widget_id_generator()); + let tooltip_id = + id_walker.next(&mut self.tooltip_ids, &mut ui.widget_id_generator()); // Fill in text and the potential image beforehand to get an accurate size for // spacing let tooltip = tooltip