-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[
flake8-simplify
] Detect implicit else
cases in needless-bool
(…
…`SIM103`) (#10414) Fixes #10402 ## Summary For SIM103, detect and simplify the following case: [playground link](https://play.ruff.rs/d98570aa-b180-495b-8600-5c4c3fd02526) ```python def main(): if foo > 5: return True return False ``` ## Test Plan Unit tested only.
- Loading branch information
1 parent
229a50a
commit 526abeb
Showing
6 changed files
with
280 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
189 changes: 189 additions & 0 deletions
189
...lify/snapshots/ruff_linter__rules__flake8_simplify__tests__preview__SIM103_SIM103.py.snap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,189 @@ | ||
--- | ||
source: crates/ruff_linter/src/rules/flake8_simplify/mod.rs | ||
--- | ||
SIM103.py:3:5: SIM103 [*] Return the condition `a` directly | ||
| | ||
1 | def f(): | ||
2 | # SIM103 | ||
3 | if a: | ||
| _____^ | ||
4 | | return True | ||
5 | | else: | ||
6 | | return False | ||
| |____________________^ SIM103 | ||
| | ||
= help: Replace with `return bool(a)` | ||
|
||
ℹ Unsafe fix | ||
1 1 | def f(): | ||
2 2 | # SIM103 | ||
3 |- if a: | ||
4 |- return True | ||
5 |- else: | ||
6 |- return False | ||
3 |+ return bool(a) | ||
7 4 | | ||
8 5 | | ||
9 6 | def f(): | ||
|
||
SIM103.py:11:5: SIM103 [*] Return the condition `a == b` directly | ||
| | ||
9 | def f(): | ||
10 | # SIM103 | ||
11 | if a == b: | ||
| _____^ | ||
12 | | return True | ||
13 | | else: | ||
14 | | return False | ||
| |____________________^ SIM103 | ||
| | ||
= help: Replace with `return a == b` | ||
|
||
ℹ Unsafe fix | ||
8 8 | | ||
9 9 | def f(): | ||
10 10 | # SIM103 | ||
11 |- if a == b: | ||
12 |- return True | ||
13 |- else: | ||
14 |- return False | ||
11 |+ return a == b | ||
15 12 | | ||
16 13 | | ||
17 14 | def f(): | ||
|
||
SIM103.py:21:5: SIM103 [*] Return the condition `b` directly | ||
| | ||
19 | if a: | ||
20 | return 1 | ||
21 | elif b: | ||
| _____^ | ||
22 | | return True | ||
23 | | else: | ||
24 | | return False | ||
| |____________________^ SIM103 | ||
| | ||
= help: Replace with `return bool(b)` | ||
|
||
ℹ Unsafe fix | ||
18 18 | # SIM103 | ||
19 19 | if a: | ||
20 20 | return 1 | ||
21 |- elif b: | ||
22 |- return True | ||
23 |- else: | ||
24 |- return False | ||
21 |+ return bool(b) | ||
25 22 | | ||
26 23 | | ||
27 24 | def f(): | ||
|
||
SIM103.py:32:9: SIM103 [*] Return the condition `b` directly | ||
| | ||
30 | return 1 | ||
31 | else: | ||
32 | if b: | ||
| _________^ | ||
33 | | return True | ||
34 | | else: | ||
35 | | return False | ||
| |________________________^ SIM103 | ||
| | ||
= help: Replace with `return bool(b)` | ||
|
||
ℹ Unsafe fix | ||
29 29 | if a: | ||
30 30 | return 1 | ||
31 31 | else: | ||
32 |- if b: | ||
33 |- return True | ||
34 |- else: | ||
35 |- return False | ||
32 |+ return bool(b) | ||
36 33 | | ||
37 34 | | ||
38 35 | def f(): | ||
|
||
SIM103.py:57:5: SIM103 [*] Return the condition `a` directly | ||
| | ||
55 | def f(): | ||
56 | # SIM103 (but not fixable) | ||
57 | if a: | ||
| _____^ | ||
58 | | return False | ||
59 | | else: | ||
60 | | return True | ||
| |___________________^ SIM103 | ||
| | ||
= help: Replace with `return not a` | ||
|
||
ℹ Unsafe fix | ||
54 54 | | ||
55 55 | def f(): | ||
56 56 | # SIM103 (but not fixable) | ||
57 |- if a: | ||
58 |- return False | ||
59 |- else: | ||
60 |- return True | ||
57 |+ return not a | ||
61 58 | | ||
62 59 | | ||
63 60 | def f(): | ||
|
||
SIM103.py:83:5: SIM103 Return the condition `a` directly | ||
| | ||
81 | def bool(): | ||
82 | return False | ||
83 | if a: | ||
| _____^ | ||
84 | | return True | ||
85 | | else: | ||
86 | | return False | ||
| |____________________^ SIM103 | ||
| | ||
= help: Inline condition | ||
|
||
SIM103.py:96:5: SIM103 [*] Return the condition `a` directly | ||
| | ||
94 | def f(): | ||
95 | # SIM103 | ||
96 | if a: | ||
| _____^ | ||
97 | | return True | ||
98 | | return False | ||
| |________________^ SIM103 | ||
| | ||
= help: Replace with `return bool(a)` | ||
|
||
ℹ Unsafe fix | ||
93 93 | | ||
94 94 | def f(): | ||
95 95 | # SIM103 | ||
96 |- if a: | ||
97 |- return True | ||
98 |- return False | ||
96 |+ return bool(a) | ||
99 97 | | ||
100 98 | | ||
101 99 | def f(): | ||
|
||
SIM103.py:103:5: SIM103 [*] Return the condition `a` directly | ||
| | ||
101 | def f(): | ||
102 | # SIM103 | ||
103 | if a: | ||
| _____^ | ||
104 | | return False | ||
105 | | return True | ||
| |_______________^ SIM103 | ||
| | ||
= help: Replace with `return not a` | ||
|
||
ℹ Unsafe fix | ||
100 100 | | ||
101 101 | def f(): | ||
102 102 | # SIM103 | ||
103 |- if a: | ||
104 |- return False | ||
105 |- return True | ||
103 |+ return not a |