Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 0409306

Browse files
committed
Implement support for implicit start and end
1 parent 2e6903c commit 0409306

File tree

4 files changed

+32
-12
lines changed

4 files changed

+32
-12
lines changed

clippy_lints/src/needless_parens_on_range_literal.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,13 @@ fn check_for_parens(cx: &LateContext<'_>, e: &Expr<'_>, is_start: bool) {
7575

7676
impl<'tcx> LateLintPass<'tcx> for NeedlessParensOnRangeLiteral {
7777
fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'_>) {
78-
// if let higher::Range { start, end, limits } = &e.kind {
79-
if let Some(higher::Range {
80-
start: Some(start),
81-
end: Some(end),
82-
..
83-
}) = higher::Range::hir(expr)
84-
{
85-
check_for_parens(cx, start, true);
86-
check_for_parens(cx, end, false);
78+
if let Some(higher::Range { start, end, .. }) = higher::Range::hir(expr) {
79+
if let Some(start) = start {
80+
check_for_parens(cx, start, true);
81+
}
82+
if let Some(end) = end {
83+
check_for_parens(cx, end, false);
84+
}
8785
}
8886
}
8987
}

tests/ui/needless_parens_on_range_literal.fixed

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66

77
fn main() {
88
let _ = 'a'..='z';
9-
let _ = 'a'..='z';
9+
let _ = 'a'..'z';
1010
let _ = (1.)..2.;
1111
let _ = (1.)..2.;
12+
let _ = 'a'..;
13+
let _ = ..'z';
1214
}

tests/ui/needless_parens_on_range_literal.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66

77
fn main() {
88
let _ = ('a')..=('z');
9-
let _ = 'a'..='z';
9+
let _ = 'a'..('z');
1010
let _ = (1.)..2.;
1111
let _ = (1.)..(2.);
12+
let _ = ('a')..;
13+
let _ = ..('z');
1214
}

tests/ui/needless_parens_on_range_literal.stderr

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,29 @@ error: needless parenthesis on range literal can be removed
1212
LL | let _ = ('a')..=('z');
1313
| ^^^^^ help: try: `'z'`
1414

15+
error: needless parenthesis on range literal can be removed
16+
--> $DIR/needless_parens_on_range_literal.rs:9:18
17+
|
18+
LL | let _ = 'a'..('z');
19+
| ^^^^^ help: try: `'z'`
20+
1521
error: needless parenthesis on range literal can be removed
1622
--> $DIR/needless_parens_on_range_literal.rs:11:19
1723
|
1824
LL | let _ = (1.)..(2.);
1925
| ^^^^ help: try: `2.`
2026

21-
error: aborting due to 3 previous errors
27+
error: needless parenthesis on range literal can be removed
28+
--> $DIR/needless_parens_on_range_literal.rs:12:13
29+
|
30+
LL | let _ = ('a')..;
31+
| ^^^^^ help: try: `'a'`
32+
33+
error: needless parenthesis on range literal can be removed
34+
--> $DIR/needless_parens_on_range_literal.rs:13:15
35+
|
36+
LL | let _ = ..('z');
37+
| ^^^^^ help: try: `'z'`
38+
39+
error: aborting due to 6 previous errors
2240

0 commit comments

Comments
 (0)