Show TyKind::FnDef as a fn pointer in source code

This commit is contained in:
Ryo Yoshida 2023-07-28 19:09:38 +09:00
parent 037844c8a0
commit b517aeeca5
No known key found for this signature in database
GPG key ID: E25698A930586171
3 changed files with 27 additions and 2 deletions

View file

@ -885,6 +885,13 @@ impl HirDisplay for Ty {
TyKind::FnDef(def, parameters) => {
let def = from_chalk(db, *def);
let sig = db.callable_item_signature(def).substitute(Interner, parameters);
if f.display_target.is_source_code() {
// `FnDef` is anonymous and there's no surface syntax for it. Show it as a
// function pointer type.
return sig.hir_fmt(f);
}
f.start_location_link(def.into());
match def {
CallableDefId::FunctionId(ff) => {