about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustdoc/clean/cfg.rs7
-rw-r--r--src/librustdoc/clean/types.rs5
2 files changed, 4 insertions, 8 deletions
diff --git a/src/librustdoc/clean/cfg.rs b/src/librustdoc/clean/cfg.rs
index afa02f1e5c7..b72d2624177 100644
--- a/src/librustdoc/clean/cfg.rs
+++ b/src/librustdoc/clean/cfg.rs
@@ -87,11 +87,8 @@ impl Cfg {
                 }),
             },
             MetaItemKind::List(ref items) => {
-                let sub_cfgs = items.iter().filter_map(|i| match Cfg::parse_nested(i, exclude) {
-                    Ok(Some(c)) => Some(Ok(c)),
-                    Err(e) => Some(Err(e)),
-                    _ => None,
-                });
+                let sub_cfgs =
+                    items.iter().filter_map(|i| Cfg::parse_nested(i, exclude).transpose());
                 let ret = match name {
                     sym::all => sub_cfgs.fold(Ok(Cfg::True), |x, y| Ok(x? & y?)),
                     sym::any => sub_cfgs.fold(Ok(Cfg::False), |x, y| Ok(x? | y?)),
diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs
index 92e8b893115..7ae7b940f26 100644
--- a/src/librustdoc/clean/types.rs
+++ b/src/librustdoc/clean/types.rs
@@ -831,9 +831,8 @@ impl AttributesExt for [ast::Attribute] {
                 self.iter()
                     .filter(|attr| attr.has_name(sym::cfg))
                     .filter_map(|attr| single(attr.meta_item_list()?))
-                    .filter_map(|attr| match Cfg::parse_without(attr.meta_item()?, hidden_cfg) {
-                        Ok(Some(c)) => Some(c),
-                        _ => None,
+                    .filter_map(|attr| {
+                        Cfg::parse_without(attr.meta_item()?, hidden_cfg).ok().flatten()
                     })
                     .fold(Cfg::True, |cfg, new_cfg| cfg & new_cfg)
             } else {