Skip to content

Commit 0d4912b

Browse files
committed
Add parenthesis where necessary in end of range
1 parent 90a58bd commit 0d4912b

4 files changed

+47
-20
lines changed

clippy_lints/src/methods/map_with_unused_argument_over_ranges.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use crate::methods::MAP_WITH_UNUSED_ARGUMENT_OVER_RANGES;
22
use clippy_config::msrvs::{self, Msrv};
33
use clippy_utils::diagnostics::span_lint_and_then;
44
use clippy_utils::source::snippet_with_applicability;
5+
use clippy_utils::sugg::Sugg;
56
use clippy_utils::{eager_or_lazy, higher, usage};
67
use rustc_ast::ast::RangeLimits;
78
use rustc_ast::LitKind;
@@ -39,7 +40,9 @@ fn extract_count_with_applicability(
3940
};
4041
return Some(format!("{count}"));
4142
}
42-
let end_snippet = snippet_with_applicability(cx, end.span, "...", applicability).into_owned();
43+
let end_snippet = Sugg::hir_with_applicability(cx, end, "...", applicability)
44+
.maybe_par()
45+
.into_string();
4346
if lower_bound == 0 {
4447
if range.limits == RangeLimits::Closed {
4548
return Some(format!("{end_snippet} + 1"));

tests/ui/map_with_unused_argument_over_ranges.fixed

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
#![allow(unused, clippy::redundant_closure, clippy::reversed_empty_ranges)]
1+
#![allow(
2+
unused,
3+
clippy::redundant_closure,
4+
clippy::reversed_empty_ranges,
5+
clippy::identity_op
6+
)]
27
#![warn(clippy::map_with_unused_argument_over_ranges)]
38

49
fn do_something() -> usize {
@@ -38,6 +43,7 @@ fn main() {
3843
(-3..9).map(|_| do_something());
3944
std::iter::repeat_with(|| do_something()).take(0);
4045
std::iter::repeat_with(|| do_something()).take(1);
46+
std::iter::repeat_with(|| do_something()).take((1 << 4) - 0);
4147
// These should not be raised
4248
gen!();
4349
let lower = 2;

tests/ui/map_with_unused_argument_over_ranges.rs

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1-
#![allow(unused, clippy::redundant_closure, clippy::reversed_empty_ranges)]
1+
#![allow(
2+
unused,
3+
clippy::redundant_closure,
4+
clippy::reversed_empty_ranges,
5+
clippy::identity_op
6+
)]
27
#![warn(clippy::map_with_unused_argument_over_ranges)]
38

49
fn do_something() -> usize {
@@ -38,6 +43,7 @@ fn main() {
3843
(-3..9).map(|_| do_something());
3944
(9..3).map(|_| do_something());
4045
(9..=9).map(|_| do_something());
46+
(1..=1 << 4).map(|_| do_something());
4147
// These should not be raised
4248
gen!();
4349
let lower = 2;

tests/ui/map_with_unused_argument_over_ranges.stderr

+29-17
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error: map of a closure that does not depend on its parameter over a range
2-
--> tests/ui/map_with_unused_argument_over_ranges.rs:20:5
2+
--> tests/ui/map_with_unused_argument_over_ranges.rs:25:5
33
|
44
LL | (0..10).map(|_| do_something());
55
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -13,7 +13,7 @@ LL + std::iter::repeat_with(|| do_something()).take(10);
1313
|
1414

1515
error: map of a closure that does not depend on its parameter over a range
16-
--> tests/ui/map_with_unused_argument_over_ranges.rs:21:5
16+
--> tests/ui/map_with_unused_argument_over_ranges.rs:26:5
1717
|
1818
LL | (0..10).map(|_foo| do_something());
1919
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -25,7 +25,7 @@ LL + std::iter::repeat_with(|| do_something()).take(10);
2525
|
2626

2727
error: map of a closure that does not depend on its parameter over a range
28-
--> tests/ui/map_with_unused_argument_over_ranges.rs:22:5
28+
--> tests/ui/map_with_unused_argument_over_ranges.rs:27:5
2929
|
3030
LL | (0..=10).map(|_| do_something());
3131
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -37,7 +37,7 @@ LL + std::iter::repeat_with(|| do_something()).take(11);
3737
|
3838

3939
error: map of a closure that does not depend on its parameter over a range
40-
--> tests/ui/map_with_unused_argument_over_ranges.rs:23:5
40+
--> tests/ui/map_with_unused_argument_over_ranges.rs:28:5
4141
|
4242
LL | (3..10).map(|_| do_something());
4343
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -49,7 +49,7 @@ LL + std::iter::repeat_with(|| do_something()).take(7);
4949
|
5050

5151
error: map of a closure that does not depend on its parameter over a range
52-
--> tests/ui/map_with_unused_argument_over_ranges.rs:24:5
52+
--> tests/ui/map_with_unused_argument_over_ranges.rs:29:5
5353
|
5454
LL | (3..=10).map(|_| do_something());
5555
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -61,7 +61,7 @@ LL + std::iter::repeat_with(|| do_something()).take(8);
6161
|
6262

6363
error: map of a closure that does not depend on its parameter over a range
64-
--> tests/ui/map_with_unused_argument_over_ranges.rs:25:5
64+
--> tests/ui/map_with_unused_argument_over_ranges.rs:30:5
6565
|
6666
LL | (0..10).map(|_| 3);
6767
| ^^^^^^^^^^^^^^^^^^
@@ -72,7 +72,7 @@ LL | std::iter::repeat(3).take(10);
7272
| ~~~~~~~~~~~~~~~~~ ~ +++++++++
7373

7474
error: map of a closure that does not depend on its parameter over a range
75-
--> tests/ui/map_with_unused_argument_over_ranges.rs:26:5
75+
--> tests/ui/map_with_unused_argument_over_ranges.rs:31:5
7676
|
7777
LL | / (0..10).map(|_| {
7878
LL | | let x = 3;
@@ -89,7 +89,7 @@ LL ~ }).take(10);
8989
|
9090

9191
error: map of a closure that does not depend on its parameter over a range
92-
--> tests/ui/map_with_unused_argument_over_ranges.rs:30:5
92+
--> tests/ui/map_with_unused_argument_over_ranges.rs:35:5
9393
|
9494
LL | (0..10).map(|_| do_something()).collect::<Vec<_>>();
9595
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -101,7 +101,7 @@ LL + std::iter::repeat_with(|| do_something()).take(10).collect::<Vec<_>>();
101101
|
102102

103103
error: map of a closure that does not depend on its parameter over a range
104-
--> tests/ui/map_with_unused_argument_over_ranges.rs:32:5
104+
--> tests/ui/map_with_unused_argument_over_ranges.rs:37:5
105105
|
106106
LL | (0..upper).map(|_| do_something());
107107
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -113,7 +113,7 @@ LL + std::iter::repeat_with(|| do_something()).take(upper);
113113
|
114114

115115
error: map of a closure that does not depend on its parameter over a range
116-
--> tests/ui/map_with_unused_argument_over_ranges.rs:34:5
116+
--> tests/ui/map_with_unused_argument_over_ranges.rs:39:5
117117
|
118118
LL | (0..upper_fn()).map(|_| do_something());
119119
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -125,7 +125,7 @@ LL + std::iter::repeat_with(|| do_something()).take(upper_fn());
125125
|
126126

127127
error: map of a closure that does not depend on its parameter over a range
128-
--> tests/ui/map_with_unused_argument_over_ranges.rs:35:5
128+
--> tests/ui/map_with_unused_argument_over_ranges.rs:40:5
129129
|
130130
LL | (0..=upper_fn()).map(|_| do_something());
131131
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -137,7 +137,7 @@ LL + std::iter::repeat_with(|| do_something()).take(upper_fn() + 1);
137137
|
138138

139139
error: map of a closure that does not depend on its parameter over a range
140-
--> tests/ui/map_with_unused_argument_over_ranges.rs:36:5
140+
--> tests/ui/map_with_unused_argument_over_ranges.rs:41:5
141141
|
142142
LL | (2..upper_fn()).map(|_| do_something());
143143
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -149,7 +149,7 @@ LL + std::iter::repeat_with(|| do_something()).take(upper_fn() - 2);
149149
|
150150

151151
error: map of a closure that does not depend on its parameter over a range
152-
--> tests/ui/map_with_unused_argument_over_ranges.rs:37:5
152+
--> tests/ui/map_with_unused_argument_over_ranges.rs:42:5
153153
|
154154
LL | (2..=upper_fn()).map(|_| do_something());
155155
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -161,7 +161,7 @@ LL + std::iter::repeat_with(|| do_something()).take(upper_fn() - 1);
161161
|
162162

163163
error: map of a closure that does not depend on its parameter over a range
164-
--> tests/ui/map_with_unused_argument_over_ranges.rs:39:5
164+
--> tests/ui/map_with_unused_argument_over_ranges.rs:44:5
165165
|
166166
LL | (9..3).map(|_| do_something());
167167
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -173,7 +173,7 @@ LL + std::iter::repeat_with(|| do_something()).take(0);
173173
|
174174

175175
error: map of a closure that does not depend on its parameter over a range
176-
--> tests/ui/map_with_unused_argument_over_ranges.rs:40:5
176+
--> tests/ui/map_with_unused_argument_over_ranges.rs:45:5
177177
|
178178
LL | (9..=9).map(|_| do_something());
179179
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -185,7 +185,19 @@ LL + std::iter::repeat_with(|| do_something()).take(1);
185185
|
186186

187187
error: map of a closure that does not depend on its parameter over a range
188-
--> tests/ui/map_with_unused_argument_over_ranges.rs:59:5
188+
--> tests/ui/map_with_unused_argument_over_ranges.rs:46:5
189+
|
190+
LL | (1..=1 << 4).map(|_| do_something());
191+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
192+
|
193+
help: remove the explicit range and use `repeat_with` and `take`
194+
|
195+
LL - (1..=1 << 4).map(|_| do_something());
196+
LL + std::iter::repeat_with(|| do_something()).take((1 << 4) - 0);
197+
|
198+
199+
error: map of a closure that does not depend on its parameter over a range
200+
--> tests/ui/map_with_unused_argument_over_ranges.rs:65:5
189201
|
190202
LL | (0..10).map(|_| do_something());
191203
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -196,5 +208,5 @@ LL - (0..10).map(|_| do_something());
196208
LL + std::iter::repeat_with(|| do_something()).take(10);
197209
|
198210

199-
error: aborting due to 16 previous errors
211+
error: aborting due to 17 previous errors
200212

0 commit comments

Comments
 (0)