Fix --experiemental-string-processing crash when matching parens not found (#2283)
Fixes #2271
This commit is contained in:
parent
519f807f87
commit
eec44f5977
@ -10,6 +10,7 @@
|
|||||||
`.gitignore` rules like `git` does) (#2225)
|
`.gitignore` rules like `git` does) (#2225)
|
||||||
- Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (#2227)
|
- Restored compatibility with Click 8.0 on Python 3.6 when LANG=C used (#2227)
|
||||||
- Add extra uvloop install + import support if in python env (#2258)
|
- Add extra uvloop install + import support if in python env (#2258)
|
||||||
|
- Fix --experimental-string-processing crash when matching parens are not found (#2283)
|
||||||
|
|
||||||
### _Blackd_
|
### _Blackd_
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
from black.mode import Feature
|
from black.mode import Feature
|
||||||
from black.nodes import syms, replace_child, parent_type
|
from black.nodes import syms, replace_child, parent_type
|
||||||
from black.nodes import is_empty_par, is_empty_lpar, is_empty_rpar
|
from black.nodes import is_empty_par, is_empty_lpar, is_empty_rpar
|
||||||
from black.nodes import CLOSING_BRACKETS, STANDALONE_COMMENT
|
from black.nodes import OPENING_BRACKETS, CLOSING_BRACKETS, STANDALONE_COMMENT
|
||||||
from black.lines import Line, append_leaves
|
from black.lines import Line, append_leaves
|
||||||
from black.brackets import BracketMatchError
|
from black.brackets import BracketMatchError
|
||||||
from black.comments import contains_pragma_comment
|
from black.comments import contains_pragma_comment
|
||||||
@ -1398,6 +1398,11 @@ class StringParenWrapper(CustomSplitMapMixin, BaseStringSplitter):
|
|||||||
def do_splitter_match(self, line: Line) -> TMatchResult:
|
def do_splitter_match(self, line: Line) -> TMatchResult:
|
||||||
LL = line.leaves
|
LL = line.leaves
|
||||||
|
|
||||||
|
if line.leaves[-1].type in OPENING_BRACKETS:
|
||||||
|
return TErr(
|
||||||
|
"Cannot wrap parens around a line that ends in an opening bracket."
|
||||||
|
)
|
||||||
|
|
||||||
string_idx = (
|
string_idx = (
|
||||||
self._return_match(LL)
|
self._return_match(LL)
|
||||||
or self._else_match(LL)
|
or self._else_match(LL)
|
||||||
@ -1665,9 +1670,10 @@ def do_transform(self, line: Line, string_idx: int) -> Iterator[TResult[Line]]:
|
|||||||
right_leaves.pop()
|
right_leaves.pop()
|
||||||
|
|
||||||
if old_parens_exist:
|
if old_parens_exist:
|
||||||
assert (
|
assert right_leaves and right_leaves[-1].type == token.RPAR, (
|
||||||
right_leaves and right_leaves[-1].type == token.RPAR
|
"Apparently, old parentheses do NOT exist?!"
|
||||||
), "Apparently, old parentheses do NOT exist?!"
|
f" (left_leaves={left_leaves}, right_leaves={right_leaves})"
|
||||||
|
)
|
||||||
old_rpar_leaf = right_leaves.pop()
|
old_rpar_leaf = right_leaves.pop()
|
||||||
|
|
||||||
append_leaves(string_line, line, right_leaves)
|
append_leaves(string_line, line, right_leaves)
|
||||||
|
@ -396,6 +396,16 @@ def xxxxxxx_xxxxxx(xxxx):
|
|||||||
" it has now"
|
" it has now"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _legacy_listen_examples():
|
||||||
|
text += (
|
||||||
|
" \"listen for the '%(event_name)s' event\"\n"
|
||||||
|
"\n # ... (event logic logic logic) ...\n"
|
||||||
|
% {
|
||||||
|
"since": since,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
# output
|
# output
|
||||||
|
|
||||||
|
|
||||||
@ -886,3 +896,13 @@ def xxxxxxx_xxxxxx(xxxx):
|
|||||||
" it goes over 88 characters which"
|
" it goes over 88 characters which"
|
||||||
" it has now"
|
" it has now"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _legacy_listen_examples():
|
||||||
|
text += (
|
||||||
|
" \"listen for the '%(event_name)s' event\"\n"
|
||||||
|
"\n # ... (event logic logic logic) ...\n"
|
||||||
|
% {
|
||||||
|
"since": since,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user