From 8a9992cef414c51b4660fbb374ae1a2a1a771236 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Tue, 28 Jan 2025 14:34:47 +0100 Subject: [PATCH] Disable `Receiver` based autoderef temporarily --- crates/hir-ty/src/autoderef.rs | 6 +++++- crates/hir-ty/src/tests/method_resolution.rs | 4 ++-- crates/ide-completion/src/completions/dot.rs | 4 +--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/crates/hir-ty/src/autoderef.rs b/crates/hir-ty/src/autoderef.rs index 62feca5f8cbb..e0e366f45019 100644 --- a/crates/hir-ty/src/autoderef.rs +++ b/crates/hir-ty/src/autoderef.rs @@ -194,7 +194,11 @@ pub(crate) fn deref_by_trait( } let trait_id = || { - if use_receiver_trait { + // FIXME: Remove the `false` once `Receiver` needs to be stabilized, doing so will + // effectively bump the MSRV of rust-analyzer to 1.84 due to 1.83 and below lacking the + // blanked impl on `Deref`. + #[expect(clippy::overly_complex_bool_expr)] + if use_receiver_trait && false { if let Some(receiver) = db.lang_item(table.trait_env.krate, LangItem::Receiver).and_then(|l| l.as_trait()) { diff --git a/crates/hir-ty/src/tests/method_resolution.rs b/crates/hir-ty/src/tests/method_resolution.rs index 8866de22dfb9..e5f791ea6ffc 100644 --- a/crates/hir-ty/src/tests/method_resolution.rs +++ b/crates/hir-ty/src/tests/method_resolution.rs @@ -2163,9 +2163,9 @@ impl Receiver for Bar { fn main() { let bar = Bar; let _v1 = bar.foo1(); - //^^^ type: i32 + //^^^ type: {unknown} let _v2 = bar.foo2(); - //^^^ type: bool + //^^^ type: {unknown} } "#, ); diff --git a/crates/ide-completion/src/completions/dot.rs b/crates/ide-completion/src/completions/dot.rs index 0557265f235c..b38b9ac1f539 100644 --- a/crates/ide-completion/src/completions/dot.rs +++ b/crates/ide-completion/src/completions/dot.rs @@ -1500,9 +1500,7 @@ fn main() { bar.$0 } "#, - expect![[r#" - me foo() fn(self: Bar) -"#]], + expect![[r#""#]], ); }