mirror of https://github.com/astral-sh/ruff
Detect multi-statement lines in else removal (#9748)
The condition here wasn't quite right -- we can have multiple statements, all on the same line. Closes https://github.com/astral-sh/ruff/issues/9732.
This commit is contained in:
parent
6e225cb57c
commit
ad83944ded
|
|
@ -192,3 +192,9 @@ elif x == 2:
|
||||||
y = "b"
|
y = "b"
|
||||||
else:
|
else:
|
||||||
y = "c"
|
y = "c"
|
||||||
|
|
||||||
|
|
||||||
|
# Regression test for: https://github.com/astral-sh/ruff/issues/9732
|
||||||
|
def sb(self):
|
||||||
|
if self._sb is not None: return self._sb
|
||||||
|
else: self._sb = '\033[01;%dm'; self._sa = '\033[0;0m';
|
||||||
|
|
|
||||||
|
|
@ -820,8 +820,8 @@ fn remove_else(
|
||||||
|
|
||||||
// If the statement is on the same line as the `else`, just remove the `else: `.
|
// If the statement is on the same line as the `else`, just remove the `else: `.
|
||||||
// Ex) `else: return True` -> `return True`
|
// Ex) `else: return True` -> `return True`
|
||||||
if let [first] = elif_else.body.as_slice() {
|
if let Some(first) = elif_else.body.first() {
|
||||||
if indexer.in_multi_statement_line(first, locator) {
|
if indexer.preceded_by_multi_statement_line(first, locator) {
|
||||||
return Ok(Fix::safe_edit(Edit::deletion(
|
return Ok(Fix::safe_edit(Edit::deletion(
|
||||||
elif_else.start(),
|
elif_else.start(),
|
||||||
first.start(),
|
first.start(),
|
||||||
|
|
|
||||||
|
|
@ -162,4 +162,13 @@ RET505.py:183:5: RET505 Unnecessary `else` after `return` statement
|
||||||
|
|
|
|
||||||
= help: Remove unnecessary `else`
|
= help: Remove unnecessary `else`
|
||||||
|
|
||||||
|
RET505.py:200:5: RET505 Unnecessary `else` after `return` statement
|
||||||
|
|
|
||||||
|
198 | def sb(self):
|
||||||
|
199 | if self._sb is not None: return self._sb
|
||||||
|
200 | else: self._sb = '\033[01;%dm'; self._sa = '\033[0;0m';
|
||||||
|
| ^^^^ RET505
|
||||||
|
|
|
||||||
|
= help: Remove unnecessary `else`
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -343,4 +343,20 @@ RET505.py:183:5: RET505 [*] Unnecessary `else` after `return` statement
|
||||||
186 185 |
|
186 185 |
|
||||||
187 186 | x = 0
|
187 186 | x = 0
|
||||||
|
|
||||||
|
RET505.py:200:5: RET505 [*] Unnecessary `else` after `return` statement
|
||||||
|
|
|
||||||
|
198 | def sb(self):
|
||||||
|
199 | if self._sb is not None: return self._sb
|
||||||
|
200 | else: self._sb = '\033[01;%dm'; self._sa = '\033[0;0m';
|
||||||
|
| ^^^^ RET505
|
||||||
|
|
|
||||||
|
= help: Remove unnecessary `else`
|
||||||
|
|
||||||
|
ℹ Safe fix
|
||||||
|
197 197 | # Regression test for: https://github.com/astral-sh/ruff/issues/9732
|
||||||
|
198 198 | def sb(self):
|
||||||
|
199 199 | if self._sb is not None: return self._sb
|
||||||
|
200 |- else: self._sb = '\033[01;%dm'; self._sa = '\033[0;0m';
|
||||||
|
200 |+ self._sb = '\033[01;%dm'; self._sa = '\033[0;0m';
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue