mirror of https://github.com/astral-sh/ruff
Refactor fix in `readlines-in-for` (#18573)
## Summary Post-merge feedback from https://github.com/astral-sh/ruff/pull/18542.
This commit is contained in:
parent
1dc8f8f903
commit
331821244b
|
|
@ -102,8 +102,6 @@ with open("furb129.py") as f:
|
||||||
pass
|
pass
|
||||||
for line in(f).readlines():
|
for line in(f).readlines():
|
||||||
pass
|
pass
|
||||||
# Test case for issue #17683 - missing space before keyword
|
|
||||||
|
# Test case for issue #17683 (missing space before keyword)
|
||||||
print([line for line in f.readlines()if True])
|
print([line for line in f.readlines()if True])
|
||||||
print([line for line in f.readlines()and True])
|
|
||||||
print([line for line in f.readlines()or True])
|
|
||||||
print([line for line in f.readlines()in ["test"]])
|
|
||||||
|
|
|
||||||
|
|
@ -86,27 +86,23 @@ fn readlines_in_iter(checker: &Checker, iter_expr: &Expr) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let edit = if let Some(parenthesized_range) = parenthesized_range(
|
|
||||||
|
let deletion_range = if let Some(parenthesized_range) = parenthesized_range(
|
||||||
expr_attr.value.as_ref().into(),
|
expr_attr.value.as_ref().into(),
|
||||||
expr_attr.into(),
|
expr_attr.into(),
|
||||||
checker.comment_ranges(),
|
checker.comment_ranges(),
|
||||||
checker.source(),
|
checker.source(),
|
||||||
) {
|
) {
|
||||||
let deletion_range = expr_call.range().add_start(parenthesized_range.len());
|
expr_call.range().add_start(parenthesized_range.len())
|
||||||
let padded = pad_end(String::new(), deletion_range.end(), checker.locator());
|
|
||||||
if padded.is_empty() {
|
|
||||||
Edit::range_deletion(deletion_range)
|
|
||||||
} else {
|
|
||||||
Edit::range_replacement(padded, deletion_range)
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
let deletion_range = expr_call.range().add_start(expr_attr.value.range().len());
|
expr_call.range().add_start(expr_attr.value.range().len())
|
||||||
let padded = pad_end(String::new(), deletion_range.end(), checker.locator());
|
};
|
||||||
if padded.is_empty() {
|
|
||||||
Edit::range_deletion(deletion_range)
|
let padded = pad_end(String::new(), deletion_range.end(), checker.locator());
|
||||||
} else {
|
let edit = if padded.is_empty() {
|
||||||
Edit::range_replacement(padded, deletion_range)
|
Edit::range_deletion(deletion_range)
|
||||||
}
|
} else {
|
||||||
|
Edit::range_replacement(padded, deletion_range)
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut diagnostic = checker.report_diagnostic(ReadlinesInFor, expr_call.range());
|
let mut diagnostic = checker.report_diagnostic(ReadlinesInFor, expr_call.range());
|
||||||
|
|
|
||||||
|
|
@ -307,7 +307,6 @@ FURB129.py:103:16: FURB129 [*] Instead of calling `readlines()`, iterate over fi
|
||||||
103 | for line in(f).readlines():
|
103 | for line in(f).readlines():
|
||||||
| ^^^^^^^^^^^^^^^ FURB129
|
| ^^^^^^^^^^^^^^^ FURB129
|
||||||
104 | pass
|
104 | pass
|
||||||
105 | # Test case for issue #17683 - missing space before keyword
|
|
||||||
|
|
|
|
||||||
= help: Remove `readlines()`
|
= help: Remove `readlines()`
|
||||||
|
|
||||||
|
|
@ -318,26 +317,20 @@ FURB129.py:103:16: FURB129 [*] Instead of calling `readlines()`, iterate over fi
|
||||||
103 |- for line in(f).readlines():
|
103 |- for line in(f).readlines():
|
||||||
103 |+ for line in(f):
|
103 |+ for line in(f):
|
||||||
104 104 | pass
|
104 104 | pass
|
||||||
105 105 | # Test case for issue #17683 - missing space before keyword
|
105 105 |
|
||||||
106 106 | print([line for line in f.readlines()if True])
|
106 106 | # Test case for issue #17683 (missing space before keyword)
|
||||||
|
|
||||||
FURB129.py:106:29: FURB129 [*] Instead of calling `readlines()`, iterate over file object directly
|
FURB129.py:107:29: FURB129 [*] Instead of calling `readlines()`, iterate over file object directly
|
||||||
|
|
|
|
||||||
104 | pass
|
106 | # Test case for issue #17683 (missing space before keyword)
|
||||||
105 | # Test case for issue #17683 - missing space before keyword
|
107 | print([line for line in f.readlines()if True])
|
||||||
106 | print([line for line in f.readlines()if True])
|
|
||||||
| ^^^^^^^^^^^^^ FURB129
|
| ^^^^^^^^^^^^^ FURB129
|
||||||
107 | print([line for line in f.readlines()and True])
|
|
||||||
108 | print([line for line in f.readlines()or True])
|
|
||||||
|
|
|
|
||||||
= help: Remove `readlines()`
|
= help: Remove `readlines()`
|
||||||
|
|
||||||
ℹ Unsafe fix
|
ℹ Unsafe fix
|
||||||
103 103 | for line in(f).readlines():
|
|
||||||
104 104 | pass
|
104 104 | pass
|
||||||
105 105 | # Test case for issue #17683 - missing space before keyword
|
105 105 |
|
||||||
106 |- print([line for line in f.readlines()if True])
|
106 106 | # Test case for issue #17683 (missing space before keyword)
|
||||||
106 |+ print([line for line in f if True])
|
107 |- print([line for line in f.readlines()if True])
|
||||||
107 107 | print([line for line in f.readlines()and True])
|
107 |+ print([line for line in f if True])
|
||||||
108 108 | print([line for line in f.readlines()or True])
|
|
||||||
109 109 | print([line for line in f.readlines()in ["test"]])
|
|
||||||
|
|
|
||||||
|
|
@ -307,7 +307,6 @@ FURB129.py:103:16: FURB129 [*] Instead of calling `readlines()`, iterate over fi
|
||||||
103 | for line in(f).readlines():
|
103 | for line in(f).readlines():
|
||||||
| ^^^^^^^^^^^^^^^ FURB129
|
| ^^^^^^^^^^^^^^^ FURB129
|
||||||
104 | pass
|
104 | pass
|
||||||
105 | # Test case for issue #17683 - missing space before keyword
|
|
||||||
|
|
|
|
||||||
= help: Remove `readlines()`
|
= help: Remove `readlines()`
|
||||||
|
|
||||||
|
|
@ -318,26 +317,20 @@ FURB129.py:103:16: FURB129 [*] Instead of calling `readlines()`, iterate over fi
|
||||||
103 |- for line in(f).readlines():
|
103 |- for line in(f).readlines():
|
||||||
103 |+ for line in(f):
|
103 |+ for line in(f):
|
||||||
104 104 | pass
|
104 104 | pass
|
||||||
105 105 | # Test case for issue #17683 - missing space before keyword
|
105 105 |
|
||||||
106 106 | print([line for line in f.readlines()if True])
|
106 106 | # Test case for issue #17683 (missing space before keyword)
|
||||||
|
|
||||||
FURB129.py:106:29: FURB129 [*] Instead of calling `readlines()`, iterate over file object directly
|
FURB129.py:107:29: FURB129 [*] Instead of calling `readlines()`, iterate over file object directly
|
||||||
|
|
|
|
||||||
104 | pass
|
106 | # Test case for issue #17683 (missing space before keyword)
|
||||||
105 | # Test case for issue #17683 - missing space before keyword
|
107 | print([line for line in f.readlines()if True])
|
||||||
106 | print([line for line in f.readlines()if True])
|
|
||||||
| ^^^^^^^^^^^^^ FURB129
|
| ^^^^^^^^^^^^^ FURB129
|
||||||
107 | print([line for line in f.readlines()and True])
|
|
||||||
108 | print([line for line in f.readlines()or True])
|
|
||||||
|
|
|
|
||||||
= help: Remove `readlines()`
|
= help: Remove `readlines()`
|
||||||
|
|
||||||
ℹ Safe fix
|
ℹ Safe fix
|
||||||
103 103 | for line in(f).readlines():
|
|
||||||
104 104 | pass
|
104 104 | pass
|
||||||
105 105 | # Test case for issue #17683 - missing space before keyword
|
105 105 |
|
||||||
106 |- print([line for line in f.readlines()if True])
|
106 106 | # Test case for issue #17683 (missing space before keyword)
|
||||||
106 |+ print([line for line in f if True])
|
107 |- print([line for line in f.readlines()if True])
|
||||||
107 107 | print([line for line in f.readlines()and True])
|
107 |+ print([line for line in f if True])
|
||||||
108 108 | print([line for line in f.readlines()or True])
|
|
||||||
109 109 | print([line for line in f.readlines()in ["test"]])
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue