@@ -1743,14 +1743,22 @@ def visit_SetComp(self, node):
17431743
17441744 def visit_Slice (self , node ):
17451745 prefix = self .__whitespace ()
1746- if node .lower :
1747- lower = self .__pad_right (self .__convert (node .lower ), self .__source_before (':' ))
1748- else :
1749- lower = self .__pad_right (j .Empty (random_id (), Space .EMPTY , Markers .EMPTY ), self .__source_before (':' ))
1750- upper = self .__pad_right (
1751- self .__convert (node .upper ) if node .upper else j .Empty (random_id (), Space .EMPTY , Markers .EMPTY ),
1752- self .__source_before (':' ) if node .step else self .__whitespace ('\n ' ))
1753- step = self .__pad_right (self .__convert (node .step ), self .__whitespace ('\n ' )) if node .step else None
1746+
1747+ lower_expr = self .__convert (node .lower ) if node .lower else None
1748+ right_padding = self .__whitespace (':' )
1749+ lower = self .__pad_right (lower_expr , right_padding ) if lower_expr else None
1750+ self ._cursor += 1
1751+
1752+ upper_expr = self .__convert (node .upper ) if node .upper else None
1753+ right_padding = self .__whitespace ()
1754+ has_step = self .__cursor_at (':' )
1755+ upper = self .__pad_right (upper_expr if node .upper else j .Empty (random_id (), self .__whitespace (), Markers .EMPTY ), right_padding )
1756+ self ._cursor += 1
1757+
1758+ step = self .__pad_right (
1759+ self .__convert (node .step ) if node .step else j .Empty (random_id (), Space .EMPTY , Markers .EMPTY ),
1760+ self .__whitespace (']' )) if node .step or has_step else None
1761+
17541762 return py .Slice (
17551763 random_id (),
17561764 prefix ,
0 commit comments