about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume.gomez@huawei.com>2023-03-30 17:59:35 +0200
committerGuillaume Gomez <guillaume.gomez@huawei.com>2023-03-30 22:56:52 +0200
commitbcf8a8b58ccdced38a3b7e9d1f3f219df782cf07 (patch)
tree5172762f8dd7c92d020f97fcca022ec6ef0e6642 /src
parentfa2824aef4541230c1cd0c39e307a789bd0820a8 (diff)
downloadrust-bcf8a8b58ccdced38a3b7e9d1f3f219df782cf07.tar.gz
rust-bcf8a8b58ccdced38a3b7e9d1f3f219df782cf07.zip
Improve code
Diffstat (limited to 'src')
-rw-r--r--src/librustdoc/clean/types.rs19
1 files changed, 5 insertions, 14 deletions
diff --git a/src/librustdoc/clean/types.rs b/src/librustdoc/clean/types.rs
index fe4186babfd..ffa13ebb77c 100644
--- a/src/librustdoc/clean/types.rs
+++ b/src/librustdoc/clean/types.rs
@@ -262,20 +262,11 @@ impl ExternalCrate {
         // duplicately for the same primitive. This is handled later on when
         // rendering by delegating everything to a hash map.
         let as_primitive = |res: Res<!>| {
-            if let Res::Def(DefKind::Mod, def_id) = res {
-                let mut prim = None;
-                for attr in tcx.get_attrs(def_id, sym::rustc_doc_primitive) {
-                    if let Some(v) = attr.value_str() {
-                        prim = PrimitiveType::from_symbol(v);
-                        if prim.is_some() {
-                            break;
-                        }
-                        // FIXME: should warn on unknown primitives?
-                    }
-                }
-                return prim.map(|p| (def_id, p));
-            }
-            None
+            let Res::Def(DefKind::Mod, def_id) = res else { return None };
+            tcx.get_attrs(def_id, sym::rustc_doc_primitive).find_map(|attr| {
+                // FIXME: should warn on unknown primitives?
+                Some((def_id, PrimitiveType::from_symbol(attr.value_str()?)?))
+            })
         };
 
         if root.is_local() {