Unnamed repository; edit this file 'description' to name the repository.
Merge pull request #19061 from Veykril/push-rwyqqtqmnput
Disable `Receiver` based autoderef temporarily
Lukas Wirth 2025-01-28
parent a995319 · parent 8a9992c · commit 1f86729
-rw-r--r--crates/hir-ty/src/autoderef.rs6
-rw-r--r--crates/hir-ty/src/tests/method_resolution.rs4
-rw-r--r--crates/ide-completion/src/completions/dot.rs4
3 files changed, 8 insertions, 6 deletions
diff --git a/crates/hir-ty/src/autoderef.rs b/crates/hir-ty/src/autoderef.rs
index 62feca5f8c..e0e366f450 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 8866de22df..e5f791ea6f 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 0557265f23..b38b9ac1f5 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#""#]],
);
}