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 {