Do not add trailing commas to return type annotations using PEP 604 unions (#3735)
Fix #3638: Do not add trailing commas to return type annotations using PEP 604 unions.
This commit is contained in:
parent
35722dff62
commit
01b8d3d409
@ -10,6 +10,9 @@
|
||||
|
||||
<!-- Changes that affect Black's stable style -->
|
||||
|
||||
- Fix a bug where an illegal trailing comma was added to return type annotations using
|
||||
PEP 604 unions (#3735)
|
||||
|
||||
### Preview style
|
||||
|
||||
<!-- Changes that affect Black's preview style -->
|
||||
|
@ -918,6 +918,13 @@ def bracket_split_build_line(
|
||||
)
|
||||
if isinstance(node, Node) and isinstance(node.prev_sibling, Leaf)
|
||||
)
|
||||
# Except the false negatives above for PEP 604 unions where we
|
||||
# can't add the comma.
|
||||
and not (
|
||||
leaves[0].parent
|
||||
and leaves[0].parent.next_sibling
|
||||
and leaves[0].parent.next_sibling.type == token.VBAR
|
||||
)
|
||||
)
|
||||
|
||||
if original.is_import or no_commas:
|
||||
|
25
tests/data/simple_cases/pep_604.py
Normal file
25
tests/data/simple_cases/pep_604.py
Normal file
@ -0,0 +1,25 @@
|
||||
def some_very_long_name_function() -> my_module.Asdf | my_module.AnotherType | my_module.YetAnotherType | None:
|
||||
pass
|
||||
|
||||
|
||||
def some_very_long_name_function() -> my_module.Asdf | my_module.AnotherType | my_module.YetAnotherType | my_module.EvenMoreType | None:
|
||||
pass
|
||||
|
||||
|
||||
# output
|
||||
|
||||
|
||||
def some_very_long_name_function() -> (
|
||||
my_module.Asdf | my_module.AnotherType | my_module.YetAnotherType | None
|
||||
):
|
||||
pass
|
||||
|
||||
|
||||
def some_very_long_name_function() -> (
|
||||
my_module.Asdf
|
||||
| my_module.AnotherType
|
||||
| my_module.YetAnotherType
|
||||
| my_module.EvenMoreType
|
||||
| None
|
||||
):
|
||||
pass
|
Loading…
Reference in New Issue
Block a user