New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix incorrect space before colon in if/while stmts #1655
Conversation
Previously Black would format this code ``` if (foo := True): print(foo) ``` as ``` if (foo := True) : print(foo) ``` adding an incorrect space after the RPAR. Buggy code in the normalize_invisible_parens function caused the colon to be wrapped in invisible parentheses. The LPAR of that pair was then prefixed with a single space at the request of the whitespace function. This commit fixes the accidental skipping of a pre-condition check which must return True before parenthesis normalization of a specific child Leaf or Node can happen. The pre-condition check being skipped was why the colon was wrapped in invisible parentheses.
This comment has been minimized.
This comment has been minimized.
Any chance this can be included in the upcoming release? |
I'm confused, we release what's been merged into master, so unless a commit reintroduces the bug (which will get detected as I added a test case), the next release will include this fix. |
Great to hear. I mistook the beta tag and the use of "stable" on read the docs for an expectation of a more immediate non-beta release, but in reviewing the documentation and prior releases, that doesn't appear to be likely. I will keep an eye on future releases |
* Fix incorrect space before colon in if/while stmts Previously Black would format this code ``` if (foo := True): print(foo) ``` as ``` if (foo := True) : print(foo) ``` adding an incorrect space after the RPAR. Buggy code in the normalize_invisible_parens function caused the colon to be wrapped in invisible parentheses. The LPAR of that pair was then prefixed with a single space at the request of the whitespace function. This commit fixes the accidental skipping of a pre-condition check which must return True before parenthesis normalization of a specific child Leaf or Node can happen. The pre-condition check being skipped was why the colon was wrapped in invisible parentheses. * Add an entry in CHANGES.md
Black used to have a problem with [assignment expression](psf/black#1655). Now the docs provide a black version that won't break.
Fixes #1174
Fixes #1588
Previously Black would format this code
as
adding an incorrect space after the RPAR. Buggy code in the
normalize_invisible_parens function caused the colon to be wrapped in
invisible parentheses. The LPAR of that pair was then prefixed with a
single space at the request of the whitespace function.
This commit fixes the accidental skipping of a pre-condition check
which must return True before parenthesis normalization of a specific
child Leaf or Node can happen. The pre-condition check being skipped
was why the colon was wrapped in invisible parentheses.