Skip to content

Commit 3f168fa

Browse files
committed
Initialize Leaf bracket depth
1 parent c4c9a93 commit 3f168fa

3 files changed

Lines changed: 17 additions & 0 deletions

File tree

CHANGES.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
<!-- Changes that affect Black's stable style -->
1919

20+
- Fix crash when a leaf's bracket metadata is read before bracket tracking has visited
21+
it (#5215)
2022
- Fix crash when a standalone comment sits between tokens of a comprehension or lambda
2123
(#5144)
2224
- Fix crash when a comment-only `# fmt: off`/`# fmt: on` block is followed by a `with`

src/blib2to3/pytree.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,6 +482,7 @@ def __init__(
482482
self._prefix = prefix
483483
self.fixers_applied: list[Any] | None = fixers_applied[:]
484484
self.children = []
485+
self.bracket_depth = 0
485486
self.opening_bracket = opening_bracket
486487
self.fmt_pass_converted_first_leaf = fmt_pass_converted_first_leaf
487488

tests/test_tokenize.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@
66

77
import black
88
from blib2to3.pgen2 import token, tokenize
9+
from blib2to3.pytree import Leaf
10+
11+
if sys.version_info >= (3, 11):
12+
from typing import assert_type
13+
else:
14+
from typing_extensions import assert_type
915

1016

1117
@dataclass
@@ -30,6 +36,14 @@ def assert_tokenizes(text: str, tokens: list[Token]) -> None:
3036
assert actual_tokens == tokens
3137

3238

39+
def test_leaf_initializes_bracket_metadata() -> None:
40+
leaf = Leaf(token.NAME, "name")
41+
42+
assert_type(leaf.bracket_depth, int)
43+
assert leaf.bracket_depth == 0
44+
assert leaf.opening_bracket is None
45+
46+
3347
def test_simple() -> None:
3448
assert_tokenizes(
3549
"1",

0 commit comments

Comments
 (0)