Skip to content

Commit 9e87dd9

Browse files
authored
Rollup merge of #105505 - WaffleLapkin:yeet_unused_parens_lint, r=fee1-dead
Don't warn about unused parens when they are used by yeet expr Don't even get me started on how I've found this.
2 parents 947fe7e + 84a4635 commit 9e87dd9

File tree

4 files changed

+38
-21
lines changed

4 files changed

+38
-21
lines changed

compiler/rustc_lint/src/unused.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,10 @@ trait UnusedDelimLint {
617617
lhs_needs_parens
618618
|| (followed_by_block
619619
&& match &inner.kind {
620-
ExprKind::Ret(_) | ExprKind::Break(..) | ExprKind::Yield(..) => true,
620+
ExprKind::Ret(_)
621+
| ExprKind::Break(..)
622+
| ExprKind::Yield(..)
623+
| ExprKind::Yeet(..) => true,
621624
ExprKind::Range(_lhs, Some(rhs), _limits) => {
622625
matches!(rhs.kind, ExprKind::Block(..))
623626
}

src/test/ui/lint/unused/issue-54538-unused-parens-lint.fixed

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// run-rustfix
22

3-
#![feature(box_patterns, stmt_expr_attributes)]
3+
#![feature(box_patterns, stmt_expr_attributes, yeet_expr)]
44

55
#![allow(
66
dead_code,
@@ -25,6 +25,13 @@ fn _no_lint_attr() {
2525
let _x = #[allow(dead_code)] (1 + 2);
2626
}
2727

28+
fn _no_lint_yeet() -> Result<(), ()> {
29+
#[allow(unreachable_code)]
30+
if (do yeet) {}
31+
32+
Ok(())
33+
}
34+
2835
// Don't lint in these cases (#64106).
2936
fn or_patterns_no_lint() {
3037
match Box::new(0) {

src/test/ui/lint/unused/issue-54538-unused-parens-lint.rs

+8-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// run-rustfix
22

3-
#![feature(box_patterns, stmt_expr_attributes)]
3+
#![feature(box_patterns, stmt_expr_attributes, yeet_expr)]
44

55
#![allow(
66
dead_code,
@@ -25,6 +25,13 @@ fn _no_lint_attr() {
2525
let _x = #[allow(dead_code)] (1 + 2);
2626
}
2727

28+
fn _no_lint_yeet() -> Result<(), ()> {
29+
#[allow(unreachable_code)]
30+
if (do yeet) {}
31+
32+
Ok(())
33+
}
34+
2835
// Don't lint in these cases (#64106).
2936
fn or_patterns_no_lint() {
3037
match Box::new(0) {

src/test/ui/lint/unused/issue-54538-unused-parens-lint.stderr

+18-18
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ LL + let _ = |a: u8| 0;
7676
|
7777

7878
error: unnecessary parentheses around pattern
79-
--> $DIR/issue-54538-unused-parens-lint.rs:49:12
79+
--> $DIR/issue-54538-unused-parens-lint.rs:56:12
8080
|
8181
LL | if let (0 | 1) = 0 {}
8282
| ^ ^
@@ -88,7 +88,7 @@ LL + if let 0 | 1 = 0 {}
8888
|
8989

9090
error: unnecessary parentheses around pattern
91-
--> $DIR/issue-54538-unused-parens-lint.rs:50:13
91+
--> $DIR/issue-54538-unused-parens-lint.rs:57:13
9292
|
9393
LL | if let ((0 | 1),) = (0,) {}
9494
| ^ ^
@@ -100,7 +100,7 @@ LL + if let (0 | 1,) = (0,) {}
100100
|
101101

102102
error: unnecessary parentheses around pattern
103-
--> $DIR/issue-54538-unused-parens-lint.rs:51:13
103+
--> $DIR/issue-54538-unused-parens-lint.rs:58:13
104104
|
105105
LL | if let [(0 | 1)] = [0] {}
106106
| ^ ^
@@ -112,7 +112,7 @@ LL + if let [0 | 1] = [0] {}
112112
|
113113

114114
error: unnecessary parentheses around pattern
115-
--> $DIR/issue-54538-unused-parens-lint.rs:52:16
115+
--> $DIR/issue-54538-unused-parens-lint.rs:59:16
116116
|
117117
LL | if let 0 | (1 | 2) = 0 {}
118118
| ^ ^
@@ -124,7 +124,7 @@ LL + if let 0 | 1 | 2 = 0 {}
124124
|
125125

126126
error: unnecessary parentheses around pattern
127-
--> $DIR/issue-54538-unused-parens-lint.rs:54:15
127+
--> $DIR/issue-54538-unused-parens-lint.rs:61:15
128128
|
129129
LL | if let TS((0 | 1)) = TS(0) {}
130130
| ^ ^
@@ -136,7 +136,7 @@ LL + if let TS(0 | 1) = TS(0) {}
136136
|
137137

138138
error: unnecessary parentheses around pattern
139-
--> $DIR/issue-54538-unused-parens-lint.rs:56:20
139+
--> $DIR/issue-54538-unused-parens-lint.rs:63:20
140140
|
141141
LL | if let NS { f: (0 | 1) } = (NS { f: 0 }) {}
142142
| ^ ^
@@ -148,7 +148,7 @@ LL + if let NS { f: 0 | 1 } = (NS { f: 0 }) {}
148148
|
149149

150150
error: unnecessary parentheses around pattern
151-
--> $DIR/issue-54538-unused-parens-lint.rs:66:9
151+
--> $DIR/issue-54538-unused-parens-lint.rs:73:9
152152
|
153153
LL | (_) => {}
154154
| ^ ^
@@ -160,7 +160,7 @@ LL + _ => {}
160160
|
161161

162162
error: unnecessary parentheses around pattern
163-
--> $DIR/issue-54538-unused-parens-lint.rs:67:9
163+
--> $DIR/issue-54538-unused-parens-lint.rs:74:9
164164
|
165165
LL | (y) => {}
166166
| ^ ^
@@ -172,7 +172,7 @@ LL + y => {}
172172
|
173173

174174
error: unnecessary parentheses around pattern
175-
--> $DIR/issue-54538-unused-parens-lint.rs:68:9
175+
--> $DIR/issue-54538-unused-parens-lint.rs:75:9
176176
|
177177
LL | (ref r) => {}
178178
| ^ ^
@@ -184,7 +184,7 @@ LL + ref r => {}
184184
|
185185

186186
error: unnecessary parentheses around pattern
187-
--> $DIR/issue-54538-unused-parens-lint.rs:69:9
187+
--> $DIR/issue-54538-unused-parens-lint.rs:76:9
188188
|
189189
LL | (e @ 1...2) => {}
190190
| ^ ^
@@ -196,7 +196,7 @@ LL + e @ 1...2 => {}
196196
|
197197

198198
error: unnecessary parentheses around pattern
199-
--> $DIR/issue-54538-unused-parens-lint.rs:75:9
199+
--> $DIR/issue-54538-unused-parens-lint.rs:82:9
200200
|
201201
LL | (e @ &(1...2)) => {}
202202
| ^ ^
@@ -208,7 +208,7 @@ LL + e @ &(1...2) => {}
208208
|
209209

210210
error: unnecessary parentheses around pattern
211-
--> $DIR/issue-54538-unused-parens-lint.rs:76:10
211+
--> $DIR/issue-54538-unused-parens-lint.rs:83:10
212212
|
213213
LL | &(_) => {}
214214
| ^ ^
@@ -220,7 +220,7 @@ LL + &_ => {}
220220
|
221221

222222
error: unnecessary parentheses around pattern
223-
--> $DIR/issue-54538-unused-parens-lint.rs:87:9
223+
--> $DIR/issue-54538-unused-parens-lint.rs:94:9
224224
|
225225
LL | (_) => {}
226226
| ^ ^
@@ -232,7 +232,7 @@ LL + _ => {}
232232
|
233233

234234
error: unnecessary parentheses around pattern
235-
--> $DIR/issue-54538-unused-parens-lint.rs:88:9
235+
--> $DIR/issue-54538-unused-parens-lint.rs:95:9
236236
|
237237
LL | (y) => {}
238238
| ^ ^
@@ -244,7 +244,7 @@ LL + y => {}
244244
|
245245

246246
error: unnecessary parentheses around pattern
247-
--> $DIR/issue-54538-unused-parens-lint.rs:89:9
247+
--> $DIR/issue-54538-unused-parens-lint.rs:96:9
248248
|
249249
LL | (ref r) => {}
250250
| ^ ^
@@ -256,7 +256,7 @@ LL + ref r => {}
256256
|
257257

258258
error: unnecessary parentheses around pattern
259-
--> $DIR/issue-54538-unused-parens-lint.rs:90:9
259+
--> $DIR/issue-54538-unused-parens-lint.rs:97:9
260260
|
261261
LL | (e @ 1..=2) => {}
262262
| ^ ^
@@ -268,7 +268,7 @@ LL + e @ 1..=2 => {}
268268
|
269269

270270
error: unnecessary parentheses around pattern
271-
--> $DIR/issue-54538-unused-parens-lint.rs:96:9
271+
--> $DIR/issue-54538-unused-parens-lint.rs:103:9
272272
|
273273
LL | (e @ &(1..=2)) => {}
274274
| ^ ^
@@ -280,7 +280,7 @@ LL + e @ &(1..=2) => {}
280280
|
281281

282282
error: unnecessary parentheses around pattern
283-
--> $DIR/issue-54538-unused-parens-lint.rs:97:10
283+
--> $DIR/issue-54538-unused-parens-lint.rs:104:10
284284
|
285285
LL | &(_) => {}
286286
| ^ ^

0 commit comments

Comments
 (0)