diff options
| author | Daniel Eades <danieleades@hotmail.com> | 2023-01-10 08:28:28 +0000 |
|---|---|---|
| committer | Daniel Eades <danieleades@hotmail.com> | 2023-01-10 08:28:28 +0000 |
| commit | 6153ea8dce1dcd60ecff446332c2639be8a6b452 (patch) | |
| tree | 0e1080396669639500d3df9d7c1ce4c11c7a16d0 | |
| parent | 368e0bb32f1178cf162c2ce5f7e10b7ae211eb26 (diff) | |
| download | rust-6153ea8dce1dcd60ecff446332c2639be8a6b452.tar.gz rust-6153ea8dce1dcd60ecff446332c2639be8a6b452.zip | |
loop-that-never-loops
| -rw-r--r-- | crates/hir-def/src/attr.rs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/crates/hir-def/src/attr.rs b/crates/hir-def/src/attr.rs index ab5d180e1bb..fb1e72b0d0d 100644 --- a/crates/hir-def/src/attr.rs +++ b/crates/hir-def/src/attr.rs @@ -251,17 +251,17 @@ impl Attrs { let enum_ = &item_tree[loc.id.value]; let cfg_options = &crate_graph[krate].cfg_options; - let variant = 'tri: loop { - let mut idx = 0; - for variant in enum_.variants.clone() { - let attrs = item_tree.attrs(db, krate, variant.into()); - if attrs.is_cfg_enabled(cfg_options) { - if it.local_id == Idx::from_raw(RawIdx::from(idx)) { - break 'tri variant; - } - idx += 1; + let mut idx = 0; + let Some(variant) = enum_.variants.clone().find(|variant| { + let attrs = item_tree.attrs(db, krate, (*variant).into()); + if attrs.is_cfg_enabled(cfg_options) { + if it.local_id == Idx::from_raw(RawIdx::from(idx)) { + return true } + idx += 1; } + false + }) else { return Arc::new(res); }; (item_tree[variant].fields.clone(), item_tree, krate) |
