Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/lib.rs')
-rw-r--r--crates/hir-ty/src/lib.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/crates/hir-ty/src/lib.rs b/crates/hir-ty/src/lib.rs
index 9c63d67ab1..782a8ab4aa 100644
--- a/crates/hir-ty/src/lib.rs
+++ b/crates/hir-ty/src/lib.rs
@@ -576,10 +576,14 @@ where
}
pub fn callable_sig_from_fnonce(
- self_ty: &Ty,
+ mut self_ty: &Ty,
env: Arc<TraitEnvironment>,
db: &dyn HirDatabase,
) -> Option<CallableSig> {
+ if let Some((ty, _, _)) = self_ty.as_reference() {
+ // This will happen when it implements fn or fn mut, since we add a autoborrow adjustment
+ self_ty = ty;
+ }
let krate = env.krate;
let fn_once_trait = FnTrait::FnOnce.get_id(db, krate)?;
let output_assoc_type = db.trait_data(fn_once_trait).associated_type_by_name(&name![Output])?;