Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/pretty.rs')
-rw-r--r--crates/hir-def/src/pretty.rs15
1 files changed, 9 insertions, 6 deletions
diff --git a/crates/hir-def/src/pretty.rs b/crates/hir-def/src/pretty.rs
index f4f5541e37..d3135bba96 100644
--- a/crates/hir-def/src/pretty.rs
+++ b/crates/hir-def/src/pretty.rs
@@ -39,11 +39,9 @@ pub(crate) fn print_path(db: &dyn DefDatabase, path: &Path, buf: &mut dyn Write)
LangItemTarget::Trait(it) => {
write!(buf, "{}", db.trait_data(it).name.display(db.upcast()))?
}
- LangItemTarget::EnumVariant(it) => write!(
- buf,
- "{}",
- db.enum_data(it.parent).variants[it.local_id].name.display(db.upcast())
- )?,
+ LangItemTarget::EnumVariant(it) => {
+ write!(buf, "{}", db.enum_variant_data(it).name.display(db.upcast()))?
+ }
}
if let Some(s) = s {
@@ -194,12 +192,17 @@ pub(crate) fn print_type_ref(
print_type_ref(db, elem, buf)?;
write!(buf, "]")?;
}
- TypeRef::Fn(args_and_ret, varargs, is_unsafe) => {
+ TypeRef::Fn(args_and_ret, varargs, is_unsafe, abi) => {
let ((_, return_type), args) =
args_and_ret.split_last().expect("TypeRef::Fn is missing return type");
if *is_unsafe {
write!(buf, "unsafe ")?;
}
+ if let Some(abi) = abi {
+ buf.write_str("extern ")?;
+ buf.write_str(abi)?;
+ buf.write_char(' ')?;
+ }
write!(buf, "fn(")?;
for (i, (_, typeref)) in args.iter().enumerate() {
if i != 0 {