Attempt to get 3.5 RETURN_END_IF working

This feels hacky and I'm not sure is quite right.
Untili we understand better what to do though, we'll
go with it.
This commit is contained in:
rocky
2016-07-14 14:49:57 -04:00
parent 29990c8da0
commit c9d1f72424
2 changed files with 13 additions and 3 deletions

View File

@@ -710,6 +710,11 @@ class SourceWalker(GenericASTTraversal, object):
if self.return_none or node != AST('return_stmt', [AST('ret_expr', [NONE]), Token('RETURN_VALUE')]):
self.write(' ')
self.preorder(node[0])
# 3.5 does jump optimization. The RETURN_END_IF in the return
# statement means to dedent. Earlier versions will just have
# RETURN_VALUE
if self.version >= 3.5 and node[-1] == 'RETURN_END_IF':
self.indentLess()
self.println()
self.prune() # stop recursing