Skip to content

Commit fdccfe7

Browse files
committed
Auto merge of #5011 - JohnTitor:split-collapsible-if, r=flip1995
Split up `collapsible_if` ui test Part of #2038 changelog: none
2 parents cdd1347 + 175c78b commit fdccfe7

6 files changed

+302
-283
lines changed

tests/ui/collapsible_else_if.fixed

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
// run-rustfix
2+
#![allow(clippy::cognitive_complexity, clippy::assertions_on_constants)]
3+
4+
#[rustfmt::skip]
5+
#[warn(clippy::collapsible_if)]
6+
fn main() {
7+
let x = "hello";
8+
let y = "world";
9+
// Collapse `else { if .. }` to `else if ..`
10+
if x == "hello" {
11+
print!("Hello ");
12+
} else if y == "world" {
13+
println!("world!")
14+
}
15+
16+
if x == "hello" {
17+
print!("Hello ");
18+
} else if let Some(42) = Some(42) {
19+
println!("world!")
20+
}
21+
22+
if x == "hello" {
23+
print!("Hello ");
24+
} else if y == "world" {
25+
println!("world")
26+
}
27+
else {
28+
println!("!")
29+
}
30+
31+
if x == "hello" {
32+
print!("Hello ");
33+
} else if let Some(42) = Some(42) {
34+
println!("world")
35+
}
36+
else {
37+
println!("!")
38+
}
39+
40+
if let Some(42) = Some(42) {
41+
print!("Hello ");
42+
} else if let Some(42) = Some(42) {
43+
println!("world")
44+
}
45+
else {
46+
println!("!")
47+
}
48+
49+
if let Some(42) = Some(42) {
50+
print!("Hello ");
51+
} else if x == "hello" {
52+
println!("world")
53+
}
54+
else {
55+
println!("!")
56+
}
57+
58+
if let Some(42) = Some(42) {
59+
print!("Hello ");
60+
} else if let Some(42) = Some(42) {
61+
println!("world")
62+
}
63+
else {
64+
println!("!")
65+
}
66+
}

tests/ui/collapsible_else_if.rs

+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
// run-rustfix
2+
#![allow(clippy::cognitive_complexity, clippy::assertions_on_constants)]
3+
4+
#[rustfmt::skip]
5+
#[warn(clippy::collapsible_if)]
6+
fn main() {
7+
let x = "hello";
8+
let y = "world";
9+
// Collapse `else { if .. }` to `else if ..`
10+
if x == "hello" {
11+
print!("Hello ");
12+
} else {
13+
if y == "world" {
14+
println!("world!")
15+
}
16+
}
17+
18+
if x == "hello" {
19+
print!("Hello ");
20+
} else {
21+
if let Some(42) = Some(42) {
22+
println!("world!")
23+
}
24+
}
25+
26+
if x == "hello" {
27+
print!("Hello ");
28+
} else {
29+
if y == "world" {
30+
println!("world")
31+
}
32+
else {
33+
println!("!")
34+
}
35+
}
36+
37+
if x == "hello" {
38+
print!("Hello ");
39+
} else {
40+
if let Some(42) = Some(42) {
41+
println!("world")
42+
}
43+
else {
44+
println!("!")
45+
}
46+
}
47+
48+
if let Some(42) = Some(42) {
49+
print!("Hello ");
50+
} else {
51+
if let Some(42) = Some(42) {
52+
println!("world")
53+
}
54+
else {
55+
println!("!")
56+
}
57+
}
58+
59+
if let Some(42) = Some(42) {
60+
print!("Hello ");
61+
} else {
62+
if x == "hello" {
63+
println!("world")
64+
}
65+
else {
66+
println!("!")
67+
}
68+
}
69+
70+
if let Some(42) = Some(42) {
71+
print!("Hello ");
72+
} else {
73+
if let Some(42) = Some(42) {
74+
println!("world")
75+
}
76+
else {
77+
println!("!")
78+
}
79+
}
80+
}

tests/ui/collapsible_else_if.stderr

+154
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
error: this `else { if .. }` block can be collapsed
2+
--> $DIR/collapsible_else_if.rs:12:12
3+
|
4+
LL | } else {
5+
| ____________^
6+
LL | | if y == "world" {
7+
LL | | println!("world!")
8+
LL | | }
9+
LL | | }
10+
| |_____^
11+
|
12+
= note: `-D clippy::collapsible-if` implied by `-D warnings`
13+
help: try
14+
|
15+
LL | } else if y == "world" {
16+
LL | println!("world!")
17+
LL | }
18+
|
19+
20+
error: this `else { if .. }` block can be collapsed
21+
--> $DIR/collapsible_else_if.rs:20:12
22+
|
23+
LL | } else {
24+
| ____________^
25+
LL | | if let Some(42) = Some(42) {
26+
LL | | println!("world!")
27+
LL | | }
28+
LL | | }
29+
| |_____^
30+
|
31+
help: try
32+
|
33+
LL | } else if let Some(42) = Some(42) {
34+
LL | println!("world!")
35+
LL | }
36+
|
37+
38+
error: this `else { if .. }` block can be collapsed
39+
--> $DIR/collapsible_else_if.rs:28:12
40+
|
41+
LL | } else {
42+
| ____________^
43+
LL | | if y == "world" {
44+
LL | | println!("world")
45+
LL | | }
46+
... |
47+
LL | | }
48+
LL | | }
49+
| |_____^
50+
|
51+
help: try
52+
|
53+
LL | } else if y == "world" {
54+
LL | println!("world")
55+
LL | }
56+
LL | else {
57+
LL | println!("!")
58+
LL | }
59+
|
60+
61+
error: this `else { if .. }` block can be collapsed
62+
--> $DIR/collapsible_else_if.rs:39:12
63+
|
64+
LL | } else {
65+
| ____________^
66+
LL | | if let Some(42) = Some(42) {
67+
LL | | println!("world")
68+
LL | | }
69+
... |
70+
LL | | }
71+
LL | | }
72+
| |_____^
73+
|
74+
help: try
75+
|
76+
LL | } else if let Some(42) = Some(42) {
77+
LL | println!("world")
78+
LL | }
79+
LL | else {
80+
LL | println!("!")
81+
LL | }
82+
|
83+
84+
error: this `else { if .. }` block can be collapsed
85+
--> $DIR/collapsible_else_if.rs:50:12
86+
|
87+
LL | } else {
88+
| ____________^
89+
LL | | if let Some(42) = Some(42) {
90+
LL | | println!("world")
91+
LL | | }
92+
... |
93+
LL | | }
94+
LL | | }
95+
| |_____^
96+
|
97+
help: try
98+
|
99+
LL | } else if let Some(42) = Some(42) {
100+
LL | println!("world")
101+
LL | }
102+
LL | else {
103+
LL | println!("!")
104+
LL | }
105+
|
106+
107+
error: this `else { if .. }` block can be collapsed
108+
--> $DIR/collapsible_else_if.rs:61:12
109+
|
110+
LL | } else {
111+
| ____________^
112+
LL | | if x == "hello" {
113+
LL | | println!("world")
114+
LL | | }
115+
... |
116+
LL | | }
117+
LL | | }
118+
| |_____^
119+
|
120+
help: try
121+
|
122+
LL | } else if x == "hello" {
123+
LL | println!("world")
124+
LL | }
125+
LL | else {
126+
LL | println!("!")
127+
LL | }
128+
|
129+
130+
error: this `else { if .. }` block can be collapsed
131+
--> $DIR/collapsible_else_if.rs:72:12
132+
|
133+
LL | } else {
134+
| ____________^
135+
LL | | if let Some(42) = Some(42) {
136+
LL | | println!("world")
137+
LL | | }
138+
... |
139+
LL | | }
140+
LL | | }
141+
| |_____^
142+
|
143+
help: try
144+
|
145+
LL | } else if let Some(42) = Some(42) {
146+
LL | println!("world")
147+
LL | }
148+
LL | else {
149+
LL | println!("!")
150+
LL | }
151+
|
152+
153+
error: aborting due to 7 previous errors
154+

tests/ui/collapsible_if.fixed

-58
Original file line numberDiff line numberDiff line change
@@ -30,64 +30,6 @@ fn main() {
3030
println!("world!")
3131
}
3232

33-
// Collapse `else { if .. }` to `else if ..`
34-
if x == "hello" {
35-
print!("Hello ");
36-
} else if y == "world" {
37-
println!("world!")
38-
}
39-
40-
if x == "hello" {
41-
print!("Hello ");
42-
} else if let Some(42) = Some(42) {
43-
println!("world!")
44-
}
45-
46-
if x == "hello" {
47-
print!("Hello ");
48-
} else if y == "world" {
49-
println!("world")
50-
}
51-
else {
52-
println!("!")
53-
}
54-
55-
if x == "hello" {
56-
print!("Hello ");
57-
} else if let Some(42) = Some(42) {
58-
println!("world")
59-
}
60-
else {
61-
println!("!")
62-
}
63-
64-
if let Some(42) = Some(42) {
65-
print!("Hello ");
66-
} else if let Some(42) = Some(42) {
67-
println!("world")
68-
}
69-
else {
70-
println!("!")
71-
}
72-
73-
if let Some(42) = Some(42) {
74-
print!("Hello ");
75-
} else if x == "hello" {
76-
println!("world")
77-
}
78-
else {
79-
println!("!")
80-
}
81-
82-
if let Some(42) = Some(42) {
83-
print!("Hello ");
84-
} else if let Some(42) = Some(42) {
85-
println!("world")
86-
}
87-
else {
88-
println!("!")
89-
}
90-
9133
// Works because any if with an else statement cannot be collapsed.
9234
if x == "hello" {
9335
if y == "world" {

0 commit comments

Comments
 (0)