about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMark Rousskov <mark.simulacrum@gmail.com>2019-08-10 18:39:50 -0400
committerMark Rousskov <mark.simulacrum@gmail.com>2019-08-11 10:47:58 -0400
commit3b8a24d193a3b2d9e7a888338d0c2bb478892ec2 (patch)
tree34a9ee89029e3ce375e86480b2553c81d82ddb46
parent1aa0964b543e0e21cadee2fed6a7725b594e92be (diff)
downloadrust-3b8a24d193a3b2d9e7a888338d0c2bb478892ec2.tar.gz
rust-3b8a24d193a3b2d9e7a888338d0c2bb478892ec2.zip
Reduce nesting in externalfiles implementation
Utilize `?` instead of and_then/map operators
-rw-r--r--src/librustdoc/externalfiles.rs42
1 files changed, 14 insertions, 28 deletions
diff --git a/src/librustdoc/externalfiles.rs b/src/librustdoc/externalfiles.rs
index 8254bc800ca..56f1191feed 100644
--- a/src/librustdoc/externalfiles.rs
+++ b/src/librustdoc/externalfiles.rs
@@ -25,34 +25,20 @@ impl ExternalHtml {
                 id_map: &mut IdMap, edition: Edition, playground: &Option<Playground>)
             -> Option<ExternalHtml> {
         let codes = ErrorCodes::from(UnstableFeatures::from_environment().is_nightly_build());
-        load_external_files(in_header, diag)
-            .and_then(|ih|
-                load_external_files(before_content, diag)
-                    .map(|bc| (ih, bc))
-            )
-            .and_then(|(ih, bc)|
-                load_external_files(md_before_content, diag)
-                    .map(|m_bc| (ih,
-                            format!("{}{}", bc, Markdown(&m_bc, &[], id_map,
-                                    codes, edition, playground).to_string())))
-            )
-            .and_then(|(ih, bc)|
-                load_external_files(after_content, diag)
-                    .map(|ac| (ih, bc, ac))
-            )
-            .and_then(|(ih, bc, ac)|
-                load_external_files(md_after_content, diag)
-                    .map(|m_ac| (ih, bc,
-                            format!("{}{}", ac, Markdown(&m_ac, &[], id_map,
-                                    codes, edition, playground).to_string())))
-            )
-            .map(|(ih, bc, ac)|
-                ExternalHtml {
-                    in_header: ih,
-                    before_content: bc,
-                    after_content: ac,
-                }
-            )
+        let ih = load_external_files(in_header, diag)?;
+        let bc = load_external_files(before_content, diag)?;
+        let m_bc = load_external_files(md_before_content, diag)?;
+        let bc = format!("{}{}", bc, Markdown(&m_bc, &[], id_map,
+                                    codes, edition, playground).to_string());
+        let ac = load_external_files(after_content, diag)?;
+        let m_ac = load_external_files(md_after_content, diag)?;
+        let ac = format!("{}{}", ac, Markdown(&m_ac, &[], id_map,
+                                    codes, edition, playground).to_string());
+        Some(ExternalHtml {
+            in_header: ih,
+            before_content: bc,
+            after_content: ac,
+        })
     }
 }