summaryrefslogtreecommitdiffstats
path: root/tests/ui/lint/unused
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:50 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-18 02:49:50 +0000
commit9835e2ae736235810b4ea1c162ca5e65c547e770 (patch)
tree3fcebf40ed70e581d776a8a4c65923e8ec20e026 /tests/ui/lint/unused
parentReleasing progress-linux version 1.70.0+dfsg2-1~progress7.99u1. (diff)
downloadrustc-9835e2ae736235810b4ea1c162ca5e65c547e770.tar.xz
rustc-9835e2ae736235810b4ea1c162ca5e65c547e770.zip
Merging upstream version 1.71.1+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/lint/unused')
-rw-r--r--tests/ui/lint/unused/issue-54538-unused-parens-lint.fixed19
-rw-r--r--tests/ui/lint/unused/issue-54538-unused-parens-lint.rs19
-rw-r--r--tests/ui/lint/unused/issue-54538-unused-parens-lint.stderr62
-rw-r--r--tests/ui/lint/unused/lint-unused-mut-variables.rs8
-rw-r--r--tests/ui/lint/unused/lint-unused-mut-variables.stderr10
-rw-r--r--tests/ui/lint/unused/lint-unused-variables.stderr12
6 files changed, 100 insertions, 30 deletions
diff --git a/tests/ui/lint/unused/issue-54538-unused-parens-lint.fixed b/tests/ui/lint/unused/issue-54538-unused-parens-lint.fixed
index 71ebaea8e..9c52ca557 100644
--- a/tests/ui/lint/unused/issue-54538-unused-parens-lint.fixed
+++ b/tests/ui/lint/unused/issue-54538-unused-parens-lint.fixed
@@ -21,17 +21,32 @@ fn lint_on_top_level() {
let _ = |a: u8| 0; //~ ERROR unnecessary parentheses around pattern
}
-fn _no_lint_attr() {
+fn no_lint_attr() {
let _x = #[allow(dead_code)] (1 + 2);
}
-fn _no_lint_yeet() -> Result<(), ()> {
+fn no_lint_yeet() -> Result<(), ()> {
#[allow(unreachable_code)]
if (do yeet) {}
Ok(())
}
+fn no_lint_ops() {
+ #![allow(unreachable_code, irrefutable_let_patterns)]
+ if ((..{}) == ..{}) {}
+ if (!return) {}
+ loop { match (() = () = () = break {}) {} }
+ while let () = (*&mut false |= true && return) {}
+}
+
+fn lint_break_if_not_followed_by_block() {
+ #![allow(unreachable_code)]
+ loop { if break {} } //~ ERROR unnecessary parentheses
+ loop { if break ({ println!("hello") }) {} } //~ ERROR unnecessary parentheses
+ loop { if (break { println!("hello") }) {} }
+}
+
// Don't lint in these cases (#64106).
fn or_patterns_no_lint() {
match Box::new(0) {
diff --git a/tests/ui/lint/unused/issue-54538-unused-parens-lint.rs b/tests/ui/lint/unused/issue-54538-unused-parens-lint.rs
index 28b662dd0..196ecf0c1 100644
--- a/tests/ui/lint/unused/issue-54538-unused-parens-lint.rs
+++ b/tests/ui/lint/unused/issue-54538-unused-parens-lint.rs
@@ -21,17 +21,32 @@ fn lint_on_top_level() {
let _ = |(a): u8| 0; //~ ERROR unnecessary parentheses around pattern
}
-fn _no_lint_attr() {
+fn no_lint_attr() {
let _x = #[allow(dead_code)] (1 + 2);
}
-fn _no_lint_yeet() -> Result<(), ()> {
+fn no_lint_yeet() -> Result<(), ()> {
#[allow(unreachable_code)]
if (do yeet) {}
Ok(())
}
+fn no_lint_ops() {
+ #![allow(unreachable_code, irrefutable_let_patterns)]
+ if ((..{}) == ..{}) {}
+ if (!return) {}
+ loop { match (() = () = () = break {}) {} }
+ while let () = (*&mut false |= true && return) {}
+}
+
+fn lint_break_if_not_followed_by_block() {
+ #![allow(unreachable_code)]
+ loop { if (break) {} } //~ ERROR unnecessary parentheses
+ loop { if (break ({ println!("hello") })) {} } //~ ERROR unnecessary parentheses
+ loop { if (break { println!("hello") }) {} }
+}
+
// Don't lint in these cases (#64106).
fn or_patterns_no_lint() {
match Box::new(0) {
diff --git a/tests/ui/lint/unused/issue-54538-unused-parens-lint.stderr b/tests/ui/lint/unused/issue-54538-unused-parens-lint.stderr
index a5e69e6d9..f916bba81 100644
--- a/tests/ui/lint/unused/issue-54538-unused-parens-lint.stderr
+++ b/tests/ui/lint/unused/issue-54538-unused-parens-lint.stderr
@@ -75,8 +75,32 @@ LL - let _ = |(a): u8| 0;
LL + let _ = |a: u8| 0;
|
+error: unnecessary parentheses around `if` condition
+ --> $DIR/issue-54538-unused-parens-lint.rs:45:15
+ |
+LL | loop { if (break) {} }
+ | ^ ^
+ |
+help: remove these parentheses
+ |
+LL - loop { if (break) {} }
+LL + loop { if break {} }
+ |
+
+error: unnecessary parentheses around `if` condition
+ --> $DIR/issue-54538-unused-parens-lint.rs:46:15
+ |
+LL | loop { if (break ({ println!("hello") })) {} }
+ | ^ ^
+ |
+help: remove these parentheses
+ |
+LL - loop { if (break ({ println!("hello") })) {} }
+LL + loop { if break ({ println!("hello") }) {} }
+ |
+
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:56:12
+ --> $DIR/issue-54538-unused-parens-lint.rs:71:12
|
LL | if let (0 | 1) = 0 {}
| ^ ^
@@ -88,7 +112,7 @@ LL + if let 0 | 1 = 0 {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:57:13
+ --> $DIR/issue-54538-unused-parens-lint.rs:72:13
|
LL | if let ((0 | 1),) = (0,) {}
| ^ ^
@@ -100,7 +124,7 @@ LL + if let (0 | 1,) = (0,) {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:58:13
+ --> $DIR/issue-54538-unused-parens-lint.rs:73:13
|
LL | if let [(0 | 1)] = [0] {}
| ^ ^
@@ -112,7 +136,7 @@ LL + if let [0 | 1] = [0] {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:59:16
+ --> $DIR/issue-54538-unused-parens-lint.rs:74:16
|
LL | if let 0 | (1 | 2) = 0 {}
| ^ ^
@@ -124,7 +148,7 @@ LL + if let 0 | 1 | 2 = 0 {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:61:15
+ --> $DIR/issue-54538-unused-parens-lint.rs:76:15
|
LL | if let TS((0 | 1)) = TS(0) {}
| ^ ^
@@ -136,7 +160,7 @@ LL + if let TS(0 | 1) = TS(0) {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:63:20
+ --> $DIR/issue-54538-unused-parens-lint.rs:78:20
|
LL | if let NS { f: (0 | 1) } = (NS { f: 0 }) {}
| ^ ^
@@ -148,7 +172,7 @@ LL + if let NS { f: 0 | 1 } = (NS { f: 0 }) {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:73:9
+ --> $DIR/issue-54538-unused-parens-lint.rs:88:9
|
LL | (_) => {}
| ^ ^
@@ -160,7 +184,7 @@ LL + _ => {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:74:9
+ --> $DIR/issue-54538-unused-parens-lint.rs:89:9
|
LL | (y) => {}
| ^ ^
@@ -172,7 +196,7 @@ LL + y => {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:75:9
+ --> $DIR/issue-54538-unused-parens-lint.rs:90:9
|
LL | (ref r) => {}
| ^ ^
@@ -184,7 +208,7 @@ LL + ref r => {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:76:9
+ --> $DIR/issue-54538-unused-parens-lint.rs:91:9
|
LL | (e @ 1...2) => {}
| ^ ^
@@ -196,7 +220,7 @@ LL + e @ 1...2 => {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:82:9
+ --> $DIR/issue-54538-unused-parens-lint.rs:97:9
|
LL | (e @ &(1...2)) => {}
| ^ ^
@@ -208,7 +232,7 @@ LL + e @ &(1...2) => {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:83:10
+ --> $DIR/issue-54538-unused-parens-lint.rs:98:10
|
LL | &(_) => {}
| ^ ^
@@ -220,7 +244,7 @@ LL + &_ => {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:94:9
+ --> $DIR/issue-54538-unused-parens-lint.rs:109:9
|
LL | (_) => {}
| ^ ^
@@ -232,7 +256,7 @@ LL + _ => {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:95:9
+ --> $DIR/issue-54538-unused-parens-lint.rs:110:9
|
LL | (y) => {}
| ^ ^
@@ -244,7 +268,7 @@ LL + y => {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:96:9
+ --> $DIR/issue-54538-unused-parens-lint.rs:111:9
|
LL | (ref r) => {}
| ^ ^
@@ -256,7 +280,7 @@ LL + ref r => {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:97:9
+ --> $DIR/issue-54538-unused-parens-lint.rs:112:9
|
LL | (e @ 1..=2) => {}
| ^ ^
@@ -268,7 +292,7 @@ LL + e @ 1..=2 => {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:103:9
+ --> $DIR/issue-54538-unused-parens-lint.rs:118:9
|
LL | (e @ &(1..=2)) => {}
| ^ ^
@@ -280,7 +304,7 @@ LL + e @ &(1..=2) => {}
|
error: unnecessary parentheses around pattern
- --> $DIR/issue-54538-unused-parens-lint.rs:104:10
+ --> $DIR/issue-54538-unused-parens-lint.rs:119:10
|
LL | &(_) => {}
| ^ ^
@@ -291,5 +315,5 @@ LL - &(_) => {}
LL + &_ => {}
|
-error: aborting due to 24 previous errors
+error: aborting due to 26 previous errors
diff --git a/tests/ui/lint/unused/lint-unused-mut-variables.rs b/tests/ui/lint/unused/lint-unused-mut-variables.rs
index 67ec7facf..5334ab582 100644
--- a/tests/ui/lint/unused/lint-unused-mut-variables.rs
+++ b/tests/ui/lint/unused/lint-unused-mut-variables.rs
@@ -205,3 +205,11 @@ fn bar() {
let mut b = vec![2]; //~ ERROR: variable does not need to be mutable
}
+
+struct Arg(i32);
+
+// Regression test for https://github.com/rust-lang/rust/issues/110849
+fn write_through_reference(mut arg: &mut Arg) {
+ //~^ WARN: variable does not need to be mutable
+ arg.0 = 1
+}
diff --git a/tests/ui/lint/unused/lint-unused-mut-variables.stderr b/tests/ui/lint/unused/lint-unused-mut-variables.stderr
index 805ed2b40..5f66c0315 100644
--- a/tests/ui/lint/unused/lint-unused-mut-variables.stderr
+++ b/tests/ui/lint/unused/lint-unused-mut-variables.stderr
@@ -218,5 +218,13 @@ note: the lint level is defined here
LL | #[deny(unused_mut)]
| ^^^^^^^^^^
-error: aborting due to previous error; 25 warnings emitted
+warning: variable does not need to be mutable
+ --> $DIR/lint-unused-mut-variables.rs:212:28
+ |
+LL | fn write_through_reference(mut arg: &mut Arg) {
+ | ----^^^
+ | |
+ | help: remove this `mut`
+
+error: aborting due to previous error; 26 warnings emitted
diff --git a/tests/ui/lint/unused/lint-unused-variables.stderr b/tests/ui/lint/unused/lint-unused-variables.stderr
index fd9a5bcbf..09729eeba 100644
--- a/tests/ui/lint/unused/lint-unused-variables.stderr
+++ b/tests/ui/lint/unused/lint-unused-variables.stderr
@@ -10,12 +10,6 @@ note: the lint level is defined here
LL | #![deny(unused_variables)]
| ^^^^^^^^^^^^^^^^
-error: unused variable: `b`
- --> $DIR/lint-unused-variables.rs:14:5
- |
-LL | b: i32,
- | ^ help: if this is intentional, prefix it with an underscore: `_b`
-
error: unused variable: `a`
--> $DIR/lint-unused-variables.rs:22:9
|
@@ -23,6 +17,12 @@ LL | a: i32,
| ^ help: if this is intentional, prefix it with an underscore: `_a`
error: unused variable: `b`
+ --> $DIR/lint-unused-variables.rs:14:5
+ |
+LL | b: i32,
+ | ^ help: if this is intentional, prefix it with an underscore: `_b`
+
+error: unused variable: `b`
--> $DIR/lint-unused-variables.rs:29:9
|
LL | b: i32,