[flake8-return] Fix indentation syntax error (RET505) (#9705)

## Summary

Fix for
https://github.com/astral-sh/ruff/issues/8402#issuecomment-1916223126

## Test Plan

`cargo test`
This commit is contained in:
Steve C 2024-01-30 11:46:04 -05:00 committed by GitHub
parent b6a96452fc
commit f0e598ea84
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 157 additions and 115 deletions

View file

@ -103,6 +103,14 @@ def bar4(x):
return None return None
def fibo(n):
if n<2:
return n;
else:
last = 1;
last2 = 0;
### ###
# Non-error # Non-error
### ###

View file

@ -820,14 +820,13 @@ 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`
let Some(first) = elif_else.body.first() else { if let [first] = elif_else.body.as_slice() {
return Err(anyhow::anyhow!("`else` statement has no body")); if indexer.in_multi_statement_line(first, locator) {
}; return Ok(Fix::safe_edit(Edit::deletion(
if indexer.in_multi_statement_line(first, locator) { elif_else.start(),
return Ok(Fix::safe_edit(Edit::deletion( first.start(),
elif_else.start(), )));
first.start(), }
)));
} }
// we're deleting the `else`, and it's Colon, and the rest of the line(s) they're on, // we're deleting the `else`, and it's Colon, and the rest of the line(s) they're on,

View file

@ -89,14 +89,14 @@ RET505.py:99:5: RET505 Unnecessary `else` after `return` statement
| |
= help: Remove unnecessary `else` = help: Remove unnecessary `else`
RET505.py:137:5: RET505 Unnecessary `else` after `return` statement RET505.py:109:5: RET505 Unnecessary `else` after `return` statement
| |
135 | if True: 107 | if n<2:
136 | return 108 | return n;
137 | else: 109 | else:
| ^^^^ RET505 | ^^^^ RET505
138 | # comment 110 | last = 1;
139 | pass 111 | last2 = 0;
| |
= help: Remove unnecessary `else` = help: Remove unnecessary `else`
@ -104,31 +104,31 @@ RET505.py:145:5: RET505 Unnecessary `else` after `return` statement
| |
143 | if True: 143 | if True:
144 | return 144 | return
145 | else: # comment 145 | else:
| ^^^^ RET505 | ^^^^ RET505
146 | pass 146 | # comment
147 | pass
| |
= help: Remove unnecessary `else` = help: Remove unnecessary `else`
RET505.py:152:5: RET505 Unnecessary `else` after `return` statement RET505.py:153:5: RET505 Unnecessary `else` after `return` statement
| |
150 | if True: 151 | if True:
151 | return 152 | return
152 | else\ 153 | else: # comment
| ^^^^ RET505 | ^^^^ RET505
153 | :\ 154 | pass
154 | # comment
| |
= help: Remove unnecessary `else` = help: Remove unnecessary `else`
RET505.py:161:5: RET505 Unnecessary `else` after `return` statement RET505.py:160:5: RET505 Unnecessary `else` after `return` statement
| |
159 | if True: 158 | if True:
160 | return 159 | return
161 | else\ 160 | else\
| ^^^^ RET505 | ^^^^ RET505
162 | : # comment 161 | :\
163 | pass 162 | # comment
| |
= help: Remove unnecessary `else` = help: Remove unnecessary `else`
@ -136,18 +136,29 @@ RET505.py:169:5: RET505 Unnecessary `else` after `return` statement
| |
167 | if True: 167 | if True:
168 | return 168 | return
169 | else: pass 169 | else\
| ^^^^ RET505
170 | : # comment
171 | pass
|
= help: Remove unnecessary `else`
RET505.py:177:5: RET505 Unnecessary `else` after `return` statement
|
175 | if True:
176 | return
177 | else: pass
| ^^^^ RET505 | ^^^^ RET505
| |
= help: Remove unnecessary `else` = help: Remove unnecessary `else`
RET505.py:175:5: RET505 Unnecessary `else` after `return` statement RET505.py:183:5: RET505 Unnecessary `else` after `return` statement
| |
173 | if True: 181 | if True:
174 | return 182 | return
175 | else:\ 183 | else:\
| ^^^^ RET505 | ^^^^ RET505
176 | pass 184 | pass
| |
= help: Remove unnecessary `else` = help: Remove unnecessary `else`

View file

@ -182,141 +182,165 @@ RET505.py:99:5: RET505 [*] Unnecessary `else` after `return` statement
102 |+ return None 102 |+ return None
104 103 | 104 103 |
105 104 | 105 104 |
106 105 | ### 106 105 | def fibo(n):
RET505.py:137:5: RET505 [*] Unnecessary `else` after `return` statement RET505.py:109:5: RET505 [*] Unnecessary `else` after `return` statement
| |
135 | if True: 107 | if n<2:
136 | return 108 | return n;
137 | else: 109 | else:
| ^^^^ RET505 | ^^^^ RET505
138 | # comment 110 | last = 1;
139 | pass 111 | last2 = 0;
| |
= help: Remove unnecessary `else` = help: Remove unnecessary `else`
Safe fix Safe fix
134 134 | def bar4(x): 106 106 | def fibo(n):
135 135 | if True: 107 107 | if n<2:
136 136 | return 108 108 | return n;
137 |- else: 109 |- else:
138 |- # comment 110 |- last = 1;
139 |- pass 111 |- last2 = 0;
137 |+ # comment 109 |+ last = 1;
138 |+ pass 110 |+ last2 = 0;
140 139 | 112 111 |
141 140 | 113 112 |
142 141 | def bar5(): 114 113 | ###
RET505.py:145:5: RET505 [*] Unnecessary `else` after `return` statement RET505.py:145:5: RET505 [*] Unnecessary `else` after `return` statement
| |
143 | if True: 143 | if True:
144 | return 144 | return
145 | else: # comment 145 | else:
| ^^^^ RET505 | ^^^^ RET505
146 | pass 146 | # comment
147 | pass
| |
= help: Remove unnecessary `else` = help: Remove unnecessary `else`
Safe fix Safe fix
142 142 | def bar5(): 142 142 | def bar4(x):
143 143 | if True: 143 143 | if True:
144 144 | return 144 144 | return
145 |- else: # comment 145 |- else:
146 |- pass 146 |- # comment
147 |- pass
145 |+ # comment 145 |+ # comment
146 |+ pass 146 |+ pass
147 147 | 148 147 |
148 148 | 149 148 |
149 149 | def bar6(): 150 149 | def bar5():
RET505.py:152:5: RET505 [*] Unnecessary `else` after `return` statement RET505.py:153:5: RET505 [*] Unnecessary `else` after `return` statement
| |
150 | if True: 151 | if True:
151 | return 152 | return
152 | else\ 153 | else: # comment
| ^^^^ RET505 | ^^^^ RET505
153 | :\ 154 | pass
154 | # comment
| |
= help: Remove unnecessary `else` = help: Remove unnecessary `else`
Safe fix Safe fix
149 149 | def bar6(): 150 150 | def bar5():
150 150 | if True: 151 151 | if True:
151 151 | return 152 152 | return
152 |- else\ 153 |- else: # comment
153 |- :\ 154 |- pass
154 |- # comment 153 |+ # comment
155 |- pass 154 |+ pass
152 |+ # comment 155 155 |
153 |+ pass 156 156 |
156 154 | 157 157 | def bar6():
157 155 |
158 156 | def bar7():
RET505.py:161:5: RET505 [*] Unnecessary `else` after `return` statement RET505.py:160:5: RET505 [*] Unnecessary `else` after `return` statement
| |
159 | if True: 158 | if True:
160 | return 159 | return
161 | else\ 160 | else\
| ^^^^ RET505 | ^^^^ RET505
162 | : # comment 161 | :\
163 | pass 162 | # comment
| |
= help: Remove unnecessary `else` = help: Remove unnecessary `else`
Safe fix Safe fix
158 158 | def bar7(): 157 157 | def bar6():
159 159 | if True: 158 158 | if True:
160 160 | return 159 159 | return
161 |- else\ 160 |- else\
162 |- : # comment 161 |- :\
162 |- # comment
163 |- pass 163 |- pass
161 |+ # comment 160 |+ # comment
162 |+ pass 161 |+ pass
164 163 | 164 162 |
165 164 | 165 163 |
166 165 | def bar8(): 166 164 | def bar7():
RET505.py:169:5: RET505 [*] Unnecessary `else` after `return` statement RET505.py:169:5: RET505 [*] Unnecessary `else` after `return` statement
| |
167 | if True: 167 | if True:
168 | return 168 | return
169 | else: pass 169 | else\
| ^^^^ RET505 | ^^^^ RET505
170 | : # comment
171 | pass
| |
= help: Remove unnecessary `else` = help: Remove unnecessary `else`
Safe fix Safe fix
166 166 | def bar8(): 166 166 | def bar7():
167 167 | if True: 167 167 | if True:
168 168 | return 168 168 | return
169 |- else: pass 169 |- else\
169 |+ pass 170 |- : # comment
170 170 | 171 |- pass
171 171 | 169 |+ # comment
172 172 | def bar9(): 170 |+ pass
172 171 |
173 172 |
174 173 | def bar8():
RET505.py:175:5: RET505 [*] Unnecessary `else` after `return` statement RET505.py:177:5: RET505 [*] Unnecessary `else` after `return` statement
| |
173 | if True: 175 | if True:
174 | return 176 | return
175 | else:\ 177 | else: pass
| ^^^^ RET505 | ^^^^ RET505
176 | pass
| |
= help: Remove unnecessary `else` = help: Remove unnecessary `else`
Safe fix Safe fix
172 172 | def bar9(): 174 174 | def bar8():
173 173 | if True: 175 175 | if True:
174 174 | return 176 176 | return
175 |- else:\ 177 |- else: pass
176 |- pass 177 |+ pass
175 |+ pass 178 178 |
177 176 | 179 179 |
178 177 | 180 180 | def bar9():
179 178 | x = 0
RET505.py:183:5: RET505 [*] Unnecessary `else` after `return` statement
|
181 | if True:
182 | return
183 | else:\
| ^^^^ RET505
184 | pass
|
= help: Remove unnecessary `else`
Safe fix
180 180 | def bar9():
181 181 | if True:
182 182 | return
183 |- else:\
184 |- pass
183 |+ pass
185 184 |
186 185 |
187 186 | x = 0