Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide/src/hover/render.rs')
-rw-r--r--crates/ide/src/hover/render.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/crates/ide/src/hover/render.rs b/crates/ide/src/hover/render.rs
index abedbff831..3f0fc85134 100644
--- a/crates/ide/src/hover/render.rs
+++ b/crates/ide/src/hover/render.rs
@@ -101,7 +101,7 @@ pub(super) fn try_expr(
if let Some((inner, body)) = error_type_args {
inner_ty = inner;
body_ty = body;
- s = "Try Error".to_owned();
+ "Try Error".clone_into(&mut s);
}
}
}
@@ -403,6 +403,7 @@ pub(super) fn definition(
def: Definition,
famous_defs: Option<&FamousDefs<'_, '_>>,
notable_traits: &[(Trait, Vec<(Option<Type>, Name)>)],
+ macro_arm: Option<u32>,
config: &HoverConfig,
) -> Markup {
let mod_path = definition_mod_path(db, &def);
@@ -413,6 +414,13 @@ pub(super) fn definition(
Definition::Adt(Adt::Struct(struct_)) => {
struct_.display_limited(db, config.max_struct_field_count).to_string()
}
+ Definition::Macro(it) => {
+ let mut label = it.display(db).to_string();
+ if let Some(macro_arm) = macro_arm {
+ format_to!(label, " // matched arm #{}", macro_arm);
+ }
+ label
+ }
_ => def.label(db),
};
let docs = def.docs(db, famous_defs);
@@ -637,7 +645,7 @@ fn closure_ty(
})
.join("\n");
if captures_rendered.trim().is_empty() {
- captures_rendered = "This closure captures nothing".to_owned();
+ "This closure captures nothing".clone_into(&mut captures_rendered);
}
let mut targets: Vec<hir::ModuleDef> = Vec::new();
let mut push_new_def = |item: hir::ModuleDef| {