mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-23 15:23:46 +00:00
Improve diagnostic for cases where autoderef is used
This commit is contained in:
parent
6178ddaded
commit
0411edfbbd
@ -75,7 +75,7 @@ pub fn check_fn(
|
||||
}
|
||||
};
|
||||
|
||||
let ty = cx.typeck_results().expr_ty(self_data);
|
||||
let ty = cx.typeck_results().expr_ty_adjusted(self_data);
|
||||
|
||||
let def = {
|
||||
let mut kind = ty.kind();
|
||||
@ -102,7 +102,7 @@ pub fn check_fn(
|
||||
|
||||
let Some(used_field) = used_field else {
|
||||
// FIXME: This can be reached if the field access uses autoderef.
|
||||
// `dec.all_fields()` should be replaced by something that uses autoderef.
|
||||
// `dec.all_fields()` should be replaced by something that uses autoderef on the unajusted type of `self_data`
|
||||
return;
|
||||
};
|
||||
|
||||
|
@ -126,5 +126,23 @@ LL | | &mut self.a
|
||||
LL | | }
|
||||
| |_____^
|
||||
|
||||
error: aborting due to 14 previous errors
|
||||
error: getter function appears to return the wrong field
|
||||
--> $DIR/misnamed_getters.rs:92:5
|
||||
|
|
||||
LL | / unsafe fn a(&self) -> &u8 {
|
||||
LL | | &self.inner.b
|
||||
| | ------------- help: consider using: `&self.inner.a`
|
||||
LL | | }
|
||||
| |_____^
|
||||
|
||||
error: getter function appears to return the wrong field
|
||||
--> $DIR/misnamed_getters.rs:95:5
|
||||
|
|
||||
LL | / unsafe fn a_mut(&mut self) -> &mut u8 {
|
||||
LL | | &mut self.inner.b
|
||||
| | ----------------- help: consider using: `&mut self.inner.a`
|
||||
LL | | }
|
||||
| |_____^
|
||||
|
||||
error: aborting due to 16 previous errors
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user