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.rs18
1 files changed, 12 insertions, 6 deletions
diff --git a/crates/ide/src/hover/render.rs b/crates/ide/src/hover/render.rs
index 51a7728345..d9ddc2d015 100644
--- a/crates/ide/src/hover/render.rs
+++ b/crates/ide/src/hover/render.rs
@@ -486,13 +486,19 @@ pub(super) fn definition(
}
}
Definition::Static(it) => {
- let source = it.source(db)?;
- let mut body = source.value.body()?.syntax().clone();
- if let Some(macro_file) = source.file_id.macro_file() {
- let span_map = db.expansion_span_map(macro_file);
- body = prettify_macro_expansion(db, body, &span_map, it.krate(db).into());
+ let body = it.render_eval(db, edition);
+ match body {
+ Ok(it) => Some(it),
+ Err(_) => {
+ let source = it.source(db)?;
+ let mut body = source.value.body()?.syntax().clone();
+ if let Some(macro_file) = source.file_id.macro_file() {
+ let span_map = db.expansion_span_map(macro_file);
+ body = prettify_macro_expansion(db, body, &span_map, it.krate(db).into());
+ }
+ Some(body.to_string())
+ }
}
- Some(body.to_string())
}
_ => None,
};