diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2019-12-03 12:58:44 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2019-12-03 12:58:44 +0000 |
commit | c5be0cedf3a9d56c17d988ce6354599b85198fb8 (patch) | |
tree | 70e3d0e36efa9568fb7f510f44bd65ff675122a2 /crates/ra_hir_def/src/body.rs | |
parent | 3376c08052a563a5d2db487c458972378edebf44 (diff) | |
parent | 18f25acb89304b2eb0a822b7b49b5e66a439ada7 (diff) |
Merge #2463
2463: More correct method resolution r=flodiebold a=flodiebold
This should fix the order in which candidates for method resolution are considered, i.e. `(&Foo).clone()` should now be of type `Foo` instead of `&Foo`. It also checks for inherent candidates that the self type unifies properly with the self type in the impl (i.e. `impl Foo<u32>` methods will only be considered for `Foo<u32>`).
To be able to get the correct receiver type to check in the method resolution, I needed the unification logic, so I extracted it to the `unify.rs` module.
Should fix #2435.
Co-authored-by: Florian Diebold <[email protected]>
Diffstat (limited to 'crates/ra_hir_def/src/body.rs')
0 files changed, 0 insertions, 0 deletions