X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/96e62c57e3023977de177a8ba34678007a63f1fe..37542e64855ce21bd580f973ae5ce1ed86812a7a:/src/black/brackets.py diff --git a/src/black/brackets.py b/src/black/brackets.py index ec9708c..343f060 100644 --- a/src/black/brackets.py +++ b/src/black/brackets.py @@ -80,9 +80,12 @@ class BracketTracker: within brackets a given leaf is. 0 means there are no enclosing brackets that started on this line. - If a leaf is itself a closing bracket, it receives an `opening_bracket` - field that it forms a pair with. This is a one-directional link to - avoid reference cycles. + If a leaf is itself a closing bracket and there is a matching opening + bracket earlier, it receives an `opening_bracket` field with which it forms a + pair. This is a one-directional link to avoid reference cycles. Closing + bracket without opening happens on lines continued from previous + breaks, e.g. `) -> "ReturnType":` as part of a funcdef where we place + the return type annotation on its own line of the previous closing RPAR. If a leaf is a delimiter (a token on which Black can split the line if needed) and it's on depth 0, its `id()` is stored in the tracker's @@ -91,6 +94,13 @@ class BracketTracker: if leaf.type == token.COMMENT: return + if ( + self.depth == 0 + and leaf.type in CLOSING_BRACKETS + and (self.depth, leaf.type) not in self.bracket_match + ): + return + self.maybe_decrement_after_for_loop_variable(leaf) self.maybe_decrement_after_lambda_arguments(leaf) if leaf.type in CLOSING_BRACKETS: