Skip to content

Commit

Permalink
[flake8-return] Fix indentation syntax error (RET505) (#9705)
Browse files Browse the repository at this point in the history
## Summary

Fix for
#8402 (comment)

## Test Plan

`cargo test`
  • Loading branch information
diceroll123 authored Jan 30, 2024
1 parent b6a9645 commit f0e598e
Show file tree
Hide file tree
Showing 4 changed files with 157 additions and 115 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,14 @@ def bar4(x):
return None


def fibo(n):
if n<2:
return n;
else:
last = 1;
last2 = 0;


###
# Non-error
###
Expand Down
15 changes: 7 additions & 8 deletions crates/ruff_linter/src/rules/flake8_return/rules/function.rs
Original file line number Diff line number Diff line change
Expand Up @@ -820,14 +820,13 @@ fn remove_else(

// If the statement is on the same line as the `else`, just remove the `else: `.
// Ex) `else: return True` -> `return True`
let Some(first) = elif_else.body.first() else {
return Err(anyhow::anyhow!("`else` statement has no body"));
};
if indexer.in_multi_statement_line(first, locator) {
return Ok(Fix::safe_edit(Edit::deletion(
elif_else.start(),
first.start(),
)));
if let [first] = elif_else.body.as_slice() {
if indexer.in_multi_statement_line(first, locator) {
return Ok(Fix::safe_edit(Edit::deletion(
elif_else.start(),
first.start(),
)));
}
}

// we're deleting the `else`, and it's Colon, and the rest of the line(s) they're on,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,65 +89,76 @@ RET505.py:99:5: RET505 Unnecessary `else` after `return` statement
|
= 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:
136 | return
137 | else:
107 | if n<2:
108 | return n;
109 | else:
| ^^^^ RET505
138 | # comment
139 | pass
110 | last = 1;
111 | last2 = 0;
|
= help: Remove unnecessary `else`

RET505.py:145:5: RET505 Unnecessary `else` after `return` statement
|
143 | if True:
144 | return
145 | else: # comment
145 | else:
| ^^^^ RET505
146 | pass
146 | # comment
147 | pass
|
= 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 | return
152 | else\
151 | if True:
152 | return
153 | else: # comment
| ^^^^ RET505
153 | :\
154 | # comment
154 | pass
|
= 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:
160 | return
161 | else\
158 | if True:
159 | return
160 | else\
| ^^^^ RET505
162 | : # comment
163 | pass
161 | :\
162 | # comment
|
= help: Remove unnecessary `else`

RET505.py:169:5: RET505 Unnecessary `else` after `return` statement
|
167 | if True:
168 | return
169 | else: pass
169 | else\
| ^^^^ RET505
170 | : # comment
171 | pass
|
= help: Remove unnecessary `else`

RET505.py:175:5: RET505 Unnecessary `else` after `return` statement
RET505.py:177:5: RET505 Unnecessary `else` after `return` statement
|
173 | if True:
174 | return
175 | else:\
175 | if True:
176 | return
177 | else: pass
| ^^^^ RET505
176 | pass
|
= help: Remove unnecessary `else`

RET505.py:183:5: RET505 Unnecessary `else` after `return` statement
|
181 | if True:
182 | return
183 | else:\
| ^^^^ RET505
184 | pass
|
= help: Remove unnecessary `else`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -182,141 +182,165 @@ RET505.py:99:5: RET505 [*] Unnecessary `else` after `return` statement
102 |+ return None
104 103 |
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:
136 | return
137 | else:
107 | if n<2:
108 | return n;
109 | else:
| ^^^^ RET505
138 | # comment
139 | pass
110 | last = 1;
111 | last2 = 0;
|
= help: Remove unnecessary `else`

Safe fix
134 134 | def bar4(x):
135 135 | if True:
136 136 | return
137 |- else:
138 |- # comment
139 |- pass
137 |+ # comment
138 |+ pass
140 139 |
141 140 |
142 141 | def bar5():
106 106 | def fibo(n):
107 107 | if n<2:
108 108 | return n;
109 |- else:
110 |- last = 1;
111 |- last2 = 0;
109 |+ last = 1;
110 |+ last2 = 0;
112 111 |
113 112 |
114 113 | ###

RET505.py:145:5: RET505 [*] Unnecessary `else` after `return` statement
|
143 | if True:
144 | return
145 | else: # comment
145 | else:
| ^^^^ RET505
146 | pass
146 | # comment
147 | pass
|
= help: Remove unnecessary `else`

Safe fix
142 142 | def bar5():
142 142 | def bar4(x):
143 143 | if True:
144 144 | return
145 |- else: # comment
146 |- pass
145 |- else:
146 |- # comment
147 |- pass
145 |+ # comment
146 |+ pass
147 147 |
148 148 |
149 149 | def bar6():
148 147 |
149 148 |
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 | return
152 | else\
151 | if True:
152 | return
153 | else: # comment
| ^^^^ RET505
153 | :\
154 | # comment
154 | pass
|
= help: Remove unnecessary `else`

Safe fix
149 149 | def bar6():
150 150 | if True:
151 151 | return
152 |- else\
153 |- :\
154 |- # comment
155 |- pass
152 |+ # comment
153 |+ pass
156 154 |
157 155 |
158 156 | def bar7():
150 150 | def bar5():
151 151 | if True:
152 152 | return
153 |- else: # comment
154 |- pass
153 |+ # comment
154 |+ pass
155 155 |
156 156 |
157 157 | def bar6():

RET505.py:161:5: RET505 [*] Unnecessary `else` after `return` statement
RET505.py:160:5: RET505 [*] Unnecessary `else` after `return` statement
|
159 | if True:
160 | return
161 | else\
158 | if True:
159 | return
160 | else\
| ^^^^ RET505
162 | : # comment
163 | pass
161 | :\
162 | # comment
|
= help: Remove unnecessary `else`

Safe fix
158 158 | def bar7():
159 159 | if True:
160 160 | return
161 |- else\
162 |- : # comment
157 157 | def bar6():
158 158 | if True:
159 159 | return
160 |- else\
161 |- :\
162 |- # comment
163 |- pass
161 |+ # comment
162 |+ pass
164 163 |
165 164 |
166 165 | def bar8():
160 |+ # comment
161 |+ pass
164 162 |
165 163 |
166 164 | def bar7():

RET505.py:169:5: RET505 [*] Unnecessary `else` after `return` statement
|
167 | if True:
168 | return
169 | else: pass
169 | else\
| ^^^^ RET505
170 | : # comment
171 | pass
|
= help: Remove unnecessary `else`

Safe fix
166 166 | def bar8():
166 166 | def bar7():
167 167 | if True:
168 168 | return
169 |- else: pass
169 |+ pass
170 170 |
171 171 |
172 172 | def bar9():
169 |- else\
170 |- : # comment
171 |- pass
169 |+ # comment
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:
174 | return
175 | else:\
175 | if True:
176 | return
177 | else: pass
| ^^^^ RET505
176 | pass
|
= help: Remove unnecessary `else`

Safe fix
172 172 | def bar9():
173 173 | if True:
174 174 | return
175 |- else:\
176 |- pass
175 |+ pass
177 176 |
178 177 |
179 178 | x = 0
174 174 | def bar8():
175 175 | if True:
176 176 | return
177 |- else: pass
177 |+ pass
178 178 |
179 179 |
180 180 | def bar9():

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


0 comments on commit f0e598e

Please sign in to comment.