diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-03-24 22:37:48 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2021-03-24 22:37:48 +0000 |
commit | d7db38fff9c251c36d0796309b43678bdf9e5bd8 (patch) | |
tree | 83b422d45c28e3ae9a2eac550ce8a6048bf5fd71 /crates/hir | |
parent | 9d81618f11eb403cc0644a22f30648393ec77cf6 (diff) | |
parent | d1156bb52e900c015afd490f509d744c7a5adf10 (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')
-rw-r--r-- | crates/hir/src/lib.rs | 2 |
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()), |