Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 3 commits into from
Jan 30, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
23 changes: 13 additions & 10 deletions crates/ruff_linter/src/rules/flake8_return/rules/function.rs
Original file line number Diff line number Diff line change
Expand Up @@ -818,16 +818,19 @@ fn remove_else(
return Err(anyhow::anyhow!("Compound statement cannot be inlined"));
};

// 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 elif_else.body.len() == 1 {
// If the statement is on the same line as the `else`,
// or is the only statement in the body, 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(),
)));
}
}

// 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


Loading