Don't lint needless_borrow in method receiver positions

This commit is contained in:
Jason Newcomb 2022-02-16 23:14:39 -05:00
parent b34cd79c0c
commit a135b52102
4 changed files with 8 additions and 26 deletions

View File

@ -528,7 +528,7 @@ fn is_auto_reborrow_position(parent: Option<Node<'_>>) -> bool {
fn is_auto_borrow_position(parent: Option<Node<'_>>, child_id: HirId) -> bool { fn is_auto_borrow_position(parent: Option<Node<'_>>, child_id: HirId) -> bool {
if let Some(Node::Expr(parent)) = parent { if let Some(Node::Expr(parent)) = parent {
match parent.kind { match parent.kind {
ExprKind::MethodCall(_, [self_arg, ..], _) => self_arg.hir_id == child_id, // ExprKind::MethodCall(_, [self_arg, ..], _) => self_arg.hir_id == child_id,
ExprKind::Field(..) => true, ExprKind::Field(..) => true,
ExprKind::Call(f, _) => f.hir_id == child_id, ExprKind::Call(f, _) => f.hir_id == child_id,
_ => false, _ => false,

View File

@ -64,9 +64,9 @@ fn main() {
*x = 5; *x = 5;
let s = String::new(); let s = String::new();
let _ = s.len(); // let _ = (&s).len();
let _ = s.capacity(); // let _ = (&s).capacity();
let _ = s.capacity(); // let _ = (&&s).capacity();
let x = (1, 2); let x = (1, 2);
let _ = x.0; let _ = x.0;

View File

@ -64,9 +64,9 @@ fn main() {
*x = 5; *x = 5;
let s = String::new(); let s = String::new();
let _ = (&s).len(); // let _ = (&s).len();
let _ = (&s).capacity(); // let _ = (&s).capacity();
let _ = (&&s).capacity(); // let _ = (&&s).capacity();
let x = (1, 2); let x = (1, 2);
let _ = (&x).0; let _ = (&x).0;

View File

@ -84,24 +84,6 @@ error: this expression creates a reference which is immediately dereferenced by
LL | let y: &mut i32 = &mut &mut x; LL | let y: &mut i32 = &mut &mut x;
| ^^^^^^^^^^^ help: change this to: `x` | ^^^^^^^^^^^ help: change this to: `x`
error: this expression borrows a value the compiler would automatically borrow
--> $DIR/needless_borrow.rs:67:13
|
LL | let _ = (&s).len();
| ^^^^ help: change this to: `s`
error: this expression borrows a value the compiler would automatically borrow
--> $DIR/needless_borrow.rs:68:13
|
LL | let _ = (&s).capacity();
| ^^^^ help: change this to: `s`
error: this expression creates a reference which is immediately dereferenced by the compiler
--> $DIR/needless_borrow.rs:69:13
|
LL | let _ = (&&s).capacity();
| ^^^^^ help: change this to: `s`
error: this expression borrows a value the compiler would automatically borrow error: this expression borrows a value the compiler would automatically borrow
--> $DIR/needless_borrow.rs:72:13 --> $DIR/needless_borrow.rs:72:13
| |
@ -114,5 +96,5 @@ error: this expression borrows a value the compiler would automatically borrow
LL | let _ = unsafe { (&*x).0 }; LL | let _ = unsafe { (&*x).0 };
| ^^^^^ help: change this to: `(*x)` | ^^^^^ help: change this to: `(*x)`
error: aborting due to 19 previous errors error: aborting due to 16 previous errors