mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-27 04:19:43 +00:00
Avoid un-setting bracket flag in logical lines (#8380)
## Summary By using `set`, we were setting the bracket flag to `false` if another operator was visited. Closes https://github.com/astral-sh/ruff/issues/8379. ## Test Plan `cargo test`
This commit is contained in:
parent
97ae617fac
commit
23ed4e9616
3 changed files with 97 additions and 23 deletions
|
@ -12,3 +12,19 @@ dict['key'] = list[index]
|
||||||
# This is not prohibited by PEP8, but avoid it.
|
# This is not prohibited by PEP8, but avoid it.
|
||||||
class Foo (Bar, Baz):
|
class Foo (Bar, Baz):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def fetch_name () -> Union[str, None]:
|
||||||
|
"""Fetch name from --person-name in sys.argv.
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
name of the person if available, otherwise None
|
||||||
|
"""
|
||||||
|
test = len(5)
|
||||||
|
Logger.info(test)
|
||||||
|
# test commented code
|
||||||
|
# Logger.info("test code")
|
||||||
|
for i in range (0, len (sys.argv)) :
|
||||||
|
if sys.argv[i] == "--name" :
|
||||||
|
return sys.argv[i + 1]
|
||||||
|
return None
|
||||||
|
|
|
@ -432,18 +432,17 @@ impl LogicalLinesBuilder {
|
||||||
} else if kind.is_operator() {
|
} else if kind.is_operator() {
|
||||||
line.flags.insert(TokenFlags::OPERATOR);
|
line.flags.insert(TokenFlags::OPERATOR);
|
||||||
|
|
||||||
line.flags.set(
|
if matches!(
|
||||||
TokenFlags::BRACKET,
|
kind,
|
||||||
matches!(
|
TokenKind::Lpar
|
||||||
kind,
|
| TokenKind::Lsqb
|
||||||
TokenKind::Lpar
|
| TokenKind::Lbrace
|
||||||
| TokenKind::Lsqb
|
| TokenKind::Rpar
|
||||||
| TokenKind::Lbrace
|
| TokenKind::Rsqb
|
||||||
| TokenKind::Rpar
|
| TokenKind::Rbrace
|
||||||
| TokenKind::Rsqb
|
) {
|
||||||
| TokenKind::Rbrace
|
line.flags.insert(TokenFlags::BRACKET);
|
||||||
),
|
}
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if matches!(kind, TokenKind::Comma | TokenKind::Semi | TokenKind::Colon) {
|
if matches!(kind, TokenKind::Comma | TokenKind::Semi | TokenKind::Colon) {
|
||||||
|
@ -452,17 +451,16 @@ impl LogicalLinesBuilder {
|
||||||
line.flags.insert(TokenFlags::KEYWORD);
|
line.flags.insert(TokenFlags::KEYWORD);
|
||||||
}
|
}
|
||||||
|
|
||||||
line.flags.set(
|
if !matches!(
|
||||||
TokenFlags::NON_TRIVIA,
|
kind,
|
||||||
!matches!(
|
TokenKind::Comment
|
||||||
kind,
|
| TokenKind::Newline
|
||||||
TokenKind::Comment
|
| TokenKind::NonLogicalNewline
|
||||||
| TokenKind::Newline
|
| TokenKind::Dedent
|
||||||
| TokenKind::NonLogicalNewline
|
| TokenKind::Indent
|
||||||
| TokenKind::Dedent
|
) {
|
||||||
| TokenKind::Indent
|
line.flags.insert(TokenFlags::NON_TRIVIA);
|
||||||
),
|
}
|
||||||
);
|
|
||||||
|
|
||||||
self.tokens.push(LogicalLineToken { kind, range });
|
self.tokens.push(LogicalLineToken { kind, range });
|
||||||
}
|
}
|
||||||
|
|
|
@ -82,4 +82,64 @@ E21.py:6:12: E211 [*] Whitespace before '['
|
||||||
8 8 | spam(1)
|
8 8 | spam(1)
|
||||||
9 9 | dict['key'] = list[index]
|
9 9 | dict['key'] = list[index]
|
||||||
|
|
||||||
|
E21.py:17:15: E211 [*] Whitespace before '('
|
||||||
|
|
|
||||||
|
17 | def fetch_name () -> Union[str, None]:
|
||||||
|
| ^ E211
|
||||||
|
18 | """Fetch name from --person-name in sys.argv.
|
||||||
|
|
|
||||||
|
= help: Removed whitespace before '('
|
||||||
|
|
||||||
|
ℹ Fix
|
||||||
|
14 14 | pass
|
||||||
|
15 15 |
|
||||||
|
16 16 |
|
||||||
|
17 |-def fetch_name () -> Union[str, None]:
|
||||||
|
17 |+def fetch_name() -> Union[str, None]:
|
||||||
|
18 18 | """Fetch name from --person-name in sys.argv.
|
||||||
|
19 19 |
|
||||||
|
20 20 | Returns:
|
||||||
|
|
||||||
|
E21.py:27:19: E211 [*] Whitespace before '('
|
||||||
|
|
|
||||||
|
25 | # test commented code
|
||||||
|
26 | # Logger.info("test code")
|
||||||
|
27 | for i in range (0, len (sys.argv)) :
|
||||||
|
| ^ E211
|
||||||
|
28 | if sys.argv[i] == "--name" :
|
||||||
|
29 | return sys.argv[i + 1]
|
||||||
|
|
|
||||||
|
= help: Removed whitespace before '('
|
||||||
|
|
||||||
|
ℹ Fix
|
||||||
|
24 24 | Logger.info(test)
|
||||||
|
25 25 | # test commented code
|
||||||
|
26 26 | # Logger.info("test code")
|
||||||
|
27 |- for i in range (0, len (sys.argv)) :
|
||||||
|
27 |+ for i in range(0, len (sys.argv)) :
|
||||||
|
28 28 | if sys.argv[i] == "--name" :
|
||||||
|
29 29 | return sys.argv[i + 1]
|
||||||
|
30 30 | return None
|
||||||
|
|
||||||
|
E21.py:27:27: E211 [*] Whitespace before '('
|
||||||
|
|
|
||||||
|
25 | # test commented code
|
||||||
|
26 | # Logger.info("test code")
|
||||||
|
27 | for i in range (0, len (sys.argv)) :
|
||||||
|
| ^ E211
|
||||||
|
28 | if sys.argv[i] == "--name" :
|
||||||
|
29 | return sys.argv[i + 1]
|
||||||
|
|
|
||||||
|
= help: Removed whitespace before '('
|
||||||
|
|
||||||
|
ℹ Fix
|
||||||
|
24 24 | Logger.info(test)
|
||||||
|
25 25 | # test commented code
|
||||||
|
26 26 | # Logger.info("test code")
|
||||||
|
27 |- for i in range (0, len (sys.argv)) :
|
||||||
|
27 |+ for i in range (0, len(sys.argv)) :
|
||||||
|
28 28 | if sys.argv[i] == "--name" :
|
||||||
|
29 29 | return sys.argv[i + 1]
|
||||||
|
30 30 | return None
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue