aboutsummaryrefslogtreecommitdiff
path: root/crates/hir/src
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-03-24 22:37:48 +0000
committerGitHub <[email protected]>2021-03-24 22:37:48 +0000
commitd7db38fff9c251c36d0796309b43678bdf9e5bd8 (patch)
tree83b422d45c28e3ae9a2eac550ce8a6048bf5fd71 /crates/hir/src
parent9d81618f11eb403cc0644a22f30648393ec77cf6 (diff)
parentd1156bb52e900c015afd490f509d744c7a5adf10 (diff)
Merge #7907
7907: Autoderef with visibility r=cynecx a=cynecx Fixes https://github.com/rust-analyzer/rust-analyzer/issues/7841. I am not sure about the general approach here. Right now this simply tries to check whether the autoderef candidate is reachable from the current module. ~~However this doesn't exactly work with traits (see the `tests::macros::infer_derive_clone_in_core` test, which fails right now).~~ see comment below Refs: - `rustc_typeck` checking fields: https://github.com/rust-lang/rust/blob/66ec64ccf31883cd2c28d045912a76179c0c6ed2/compiler/rustc_typeck/src/check/expr.rs#L1610 r? @flodiebold Co-authored-by: cynecx <[email protected]>
Diffstat (limited to 'crates/hir/src')
-rw-r--r--crates/hir/src/lib.rs2
1 files changed, 2 insertions, 0 deletions
diff --git a/crates/hir/src/lib.rs b/crates/hir/src/lib.rs
index eb7865c84..6fa676c4d 100644
--- a/crates/hir/src/lib.rs
+++ b/crates/hir/src/lib.rs
@@ -1999,6 +1999,7 @@ impl Type {
1999 env, 1999 env,
2000 krate, 2000 krate,
2001 traits_in_scope, 2001 traits_in_scope,
2002 None,
2002 name, 2003 name,
2003 method_resolution::LookupMode::MethodCall, 2004 method_resolution::LookupMode::MethodCall,
2004 |ty, it| match it { 2005 |ty, it| match it {
@@ -2031,6 +2032,7 @@ impl Type {
2031 env, 2032 env,
2032 krate, 2033 krate,
2033 traits_in_scope, 2034 traits_in_scope,
2035 None,
2034 name, 2036 name,
2035 method_resolution::LookupMode::Path, 2037 method_resolution::LookupMode::Path,
2036 |ty, it| callback(ty, it.into()), 2038 |ty, it| callback(ty, it.into()),