Skip to content
This repository was archived by the owner on Jan 13, 2026. It is now read-only.

Commit ec1ba4f

Browse files
committed
Correct semicolon terminated if-then statements
1 parent 8d9a5a0 commit ec1ba4f

File tree

2 files changed

+15
-6
lines changed

2 files changed

+15
-6
lines changed

rewrite/rewrite/python/_parser_visitor.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -425,9 +425,8 @@ def visit_If(self, node):
425425
condition = j.ControlParentheses(random_id(), self.__whitespace(), Markers.EMPTY,
426426
self.__pad_right(self.__convert(node.test), self.__source_before(
427427
':') if single_statement_then_body else Space.EMPTY))
428-
then = self.__pad_right(
429-
self.__convert(node.body[0]) if single_statement_then_body else self.__convert_block(node.body),
430-
Space.EMPTY)
428+
then = self.__pad_statement(node.body[0]) if single_statement_then_body else self.__pad_right(
429+
self.__convert_block(node.body), Space.EMPTY)
431430
elze = None
432431
if len(node.orelse) > 0:
433432
else_prefix = self.__whitespace()
@@ -443,9 +442,8 @@ def visit_If(self, node):
443442
random_id(),
444443
else_prefix,
445444
Markers.EMPTY,
446-
self.__pad_right(
447-
self.__convert(node.orelse[0]) if single_statement_else_body else self.__convert_block(node.orelse),
448-
Space.EMPTY
445+
self.__pad_statement(node.orelse[0]) if single_statement_else_body else self.__pad_right(
446+
self.__convert_block(node.orelse), Space.EMPTY
449447
)
450448
)
451449
return j.If(

rewrite/tests/python/all/if_test.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,17 @@ def test_if():
1515
)
1616

1717

18+
def test_semicolon_terminated_then():
19+
# language=python
20+
rewrite_run(
21+
python(r"""
22+
if True: i = 1;
23+
else: i = 2;
24+
"""
25+
)
26+
)
27+
28+
1829
def test_else_single():
1930
# language=python
2031
rewrite_run(

0 commit comments

Comments
 (0)