3.6 keyword args bugs in CALL_FUNCTION_KW

This commit is contained in:
rocky
2018-02-26 07:44:37 -05:00
parent 195075ac01
commit 31de0d2af5
3 changed files with 7 additions and 1 deletions

Binary file not shown.

View File

@@ -0,0 +1,4 @@
# From 3.6 _pydecimal. Bug was handling
# keyword args in the return (CALL_FUNCTION_KW_2)
def to_eng_string(self, context=None):
return self.__str__(eng=True, context=context)

View File

@@ -575,7 +575,8 @@ def customize_for_version(self, is_pypy, version):
num_kwargs = len(keys) num_kwargs = len(keys)
num_posargs = len(node) - (num_kwargs + 1) num_posargs = len(node) - (num_kwargs + 1)
n = len(node) n = len(node)
assert n >= len(keys)+2 assert n >= len(keys)+1, \
'not enough parameters keyword-tuple values'
sep = '' sep = ''
# FIXME: adjust output for line breaks? # FIXME: adjust output for line breaks?
for i in range(num_posargs): for i in range(num_posargs):
@@ -590,6 +591,7 @@ def customize_for_version(self, is_pypy, version):
self.write(sep) self.write(sep)
self.write(keys[j] + '=') self.write(keys[j] + '=')
self.preorder(node[i]) self.preorder(node[i])
sep=', '
i += 1 i += 1
j += 1 j += 1
self.write(')') self.write(')')