summaryrefslogtreecommitdiffstats
path: root/tests/ui/lint/noop-method-call.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:59:35 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-30 03:59:35 +0000
commitd1b2d29528b7794b41e66fc2136e395a02f8529b (patch)
treea4a17504b260206dec3cf55b2dca82929a348ac2 /tests/ui/lint/noop-method-call.rs
parentReleasing progress-linux version 1.72.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-d1b2d29528b7794b41e66fc2136e395a02f8529b.tar.xz
rustc-d1b2d29528b7794b41e66fc2136e395a02f8529b.zip
Merging upstream version 1.73.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/lint/noop-method-call.rs')
-rw-r--r--tests/ui/lint/noop-method-call.rs30
1 files changed, 13 insertions, 17 deletions
diff --git a/tests/ui/lint/noop-method-call.rs b/tests/ui/lint/noop-method-call.rs
index dbcf2a513..9569a0dfc 100644
--- a/tests/ui/lint/noop-method-call.rs
+++ b/tests/ui/lint/noop-method-call.rs
@@ -1,7 +1,7 @@
// check-pass
+// run-rustfix
#![allow(unused)]
-#![warn(noop_method_call)]
use std::borrow::Borrow;
use std::ops::Deref;
@@ -11,45 +11,41 @@ struct PlainType<T>(T);
#[derive(Clone)]
struct CloneType<T>(T);
+fn check(mut encoded: &[u8]) {
+ let _ = &mut encoded.clone();
+ //~^ WARN call to `.clone()` on a reference in this situation does nothing
+ let _ = &encoded.clone();
+ //~^ WARN call to `.clone()` on a reference in this situation does nothing
+}
+
fn main() {
let non_clone_type_ref = &PlainType(1u32);
let non_clone_type_ref_clone: &PlainType<u32> = non_clone_type_ref.clone();
- //~^ WARNING call to `.clone()` on a reference in this situation does nothing
+ //~^ WARN call to `.clone()` on a reference in this situation does nothing
let clone_type_ref = &CloneType(1u32);
let clone_type_ref_clone: CloneType<u32> = clone_type_ref.clone();
- let clone_type_ref = &&CloneType(1u32);
- let clone_type_ref_clone: &CloneType<u32> = clone_type_ref.clone();
- //~^ WARNING using `.clone()` on a double reference, which returns `&CloneType<u32>`
let non_deref_type = &PlainType(1u32);
let non_deref_type_deref: &PlainType<u32> = non_deref_type.deref();
- //~^ WARNING call to `.deref()` on a reference in this situation does nothing
-
- let non_deref_type = &&PlainType(1u32);
- let non_deref_type_deref: &PlainType<u32> = non_deref_type.deref();
- //~^ WARNING using `.deref()` on a double reference, which returns `&PlainType<u32>`
+ //~^ WARN call to `.deref()` on a reference in this situation does nothing
let non_borrow_type = &PlainType(1u32);
let non_borrow_type_borrow: &PlainType<u32> = non_borrow_type.borrow();
- //~^ WARNING call to `.borrow()` on a reference in this situation does nothing
+ //~^ WARN call to `.borrow()` on a reference in this situation does nothing
// Borrowing a &&T does not warn since it has collapsed the double reference
let non_borrow_type = &&PlainType(1u32);
let non_borrow_type_borrow: &PlainType<u32> = non_borrow_type.borrow();
-
- let xs = ["a", "b", "c"];
- let _v: Vec<&str> = xs.iter().map(|x| x.clone()).collect(); // could use `*x` instead
- //~^ WARNING using `.clone()` on a double reference, which returns `&str`
}
fn generic<T>(non_clone_type: &PlainType<T>) {
non_clone_type.clone();
- //~^ WARNING call to `.clone()` on a reference in this situation does nothing
+ //~^ WARN call to `.clone()` on a reference in this situation does nothing
}
fn non_generic(non_clone_type: &PlainType<u32>) {
non_clone_type.clone();
- //~^ WARNING call to `.clone()` on a reference in this situation does nothing
+ //~^ WARN call to `.clone()` on a reference in this situation does nothing
}