-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Accessing fields through a Deref
impl leads to confusing error messages
#81365
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Comments
@rustbot claim |
@Aaron1011 How can I check if a |
@1000teslas: You should be able to adapt this code: rust/compiler/rustc_mir/src/borrow_check/diagnostics/mod.rs Lines 798 to 893 in 0677d97
and re-use the
|
@Aaron1011 It doesn't look like |
Uh oh!
There was an error while loading. Please reload this page.
The following code:
causes the following error message:
This error is caused by the fact that
&self.target_field
does through theDeref
impl onContainer
. As a result,&self
is borrowed, not just the desired field. Changing this line tolet first = &self.target.target_field
makes the code compile.However, the error message doesn't explain any of this. It claims that the usage of
self
is a borrow ofself.container_field
, without noting that this is due to theDeref
impl.We should do something similar to #75304 for borrows, and make it clear when lifetimes are being affected by implicit
Deref
calls.The text was updated successfully, but these errors were encountered: