chiark / gitweb /
hidden: Refactor describe_occulter
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 13 Feb 2021 23:08:38 +0000 (23:08 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 14 Feb 2021 16:03:30 +0000 (16:03 +0000)
* Do not rely on shadowing of variables - very fragile
* Break out `bad`

No functional change.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/hidden.rs

index b40d3687be6baf2e2a1afb00796ffaa4523cebdd..86cae4b4f8c61af9d5b3d7da9f1765225108d611 100644 (file)
@@ -305,13 +305,12 @@ pub fn recalculate_occultation(
     let describe_occulter = |oni| {
       let h = occulteds[oni].as_ref().ok_or_else(
         || internal_logic_error("most obscure not obscure"))?;
-      let piece = h.occ.occulter;
-      let ipc = ipieces.get(h.occ.occulter).ok_or_else(
-        || internal_logic_error(
+      let opiece = h.occ.occulter;
+      let bad = || internal_logic_error(
           format!("missing occulter piece {:?} for occid {:?}",
-                  piece, h.occid)
-        ))?;
-      Ok::<_,IE>(ipc.describe_html(None))
+                  opiece, h.occid));
+      let oipc = ipieces.get(opiece).ok_or_else(bad)?;
+      Ok::<_,IE>(oipc.describe_html(None))
     };
 
     let most_obscure = most_obscure.unwrap_or(&OccK::Visible); // no players!