move loop index inside iterator

This commit is contained in:
daniel.eades 2023-01-11 16:07:35 +00:00
parent 6153ea8dce
commit a3114c3697

View file

@ -251,19 +251,18 @@ impl Attrs {
let enum_ = &item_tree[loc.id.value]; let enum_ = &item_tree[loc.id.value];
let cfg_options = &crate_graph[krate].cfg_options; let cfg_options = &crate_graph[krate].cfg_options;
let mut idx = 0;
let Some(variant) = enum_.variants.clone().find(|variant| { let Some(variant) = enum_.variants.clone().filter(|variant| {
let attrs = item_tree.attrs(db, krate, (*variant).into()); let attrs = item_tree.attrs(db, krate, (*variant).into());
if attrs.is_cfg_enabled(cfg_options) { attrs.is_cfg_enabled(cfg_options)
if it.local_id == Idx::from_raw(RawIdx::from(idx)) { })
return true .zip(0u32..)
} .find(|(_variant, idx)| it.local_id == Idx::from_raw(RawIdx::from(*idx)))
idx += 1; .map(|(variant, _idx)| variant)
} else {
false
}) else {
return Arc::new(res); return Arc::new(res);
}; };
(item_tree[variant].fields.clone(), item_tree, krate) (item_tree[variant].fields.clone(), item_tree, krate)
} }
VariantId::StructId(it) => { VariantId::StructId(it) => {