about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDaniel Eades <danieleades@hotmail.com>2023-01-10 08:28:28 +0000
committerDaniel Eades <danieleades@hotmail.com>2023-01-10 08:28:28 +0000
commit6153ea8dce1dcd60ecff446332c2639be8a6b452 (patch)
tree0e1080396669639500d3df9d7c1ce4c11c7a16d0
parent368e0bb32f1178cf162c2ce5f7e10b7ae211eb26 (diff)
downloadrust-6153ea8dce1dcd60ecff446332c2639be8a6b452.tar.gz
rust-6153ea8dce1dcd60ecff446332c2639be8a6b452.zip
loop-that-never-loops
-rw-r--r--crates/hir-def/src/attr.rs18
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)