Author: Philip Jenvey <[email protected]>
Branch: py3k
Changeset: r73069:f9d726dbb392
Date: 2014-08-24 16:31 -0700
http://bitbucket.org/pypy/pypy/changeset/f9d726dbb392/
Log: fix handling of None values in kw_defaults again
diff --git a/pypy/interpreter/astcompiler/ast.py
b/pypy/interpreter/astcompiler/ast.py
--- a/pypy/interpreter/astcompiler/ast.py
+++ b/pypy/interpreter/astcompiler/ast.py
@@ -3291,7 +3291,7 @@
if self.kw_defaults is None:
kw_defaults_w = []
else:
- kw_defaults_w = [node.to_object(space) for node in
self.kw_defaults] # expr
+ kw_defaults_w = [node.to_object(space) if node is not None else
space.w_None for node in self.kw_defaults] # expr
w_kw_defaults = space.newlist(kw_defaults_w)
space.setattr(w_node, space.wrap('kw_defaults'), w_kw_defaults)
return w_node
diff --git a/pypy/interpreter/astcompiler/tools/asdl_py.py
b/pypy/interpreter/astcompiler/tools/asdl_py.py
--- a/pypy/interpreter/astcompiler/tools/asdl_py.py
+++ b/pypy/interpreter/astcompiler/tools/asdl_py.py
@@ -131,7 +131,9 @@
return "space.wrap(%s)" % (value,)
else:
wrapper = "%s.to_object(space)" % (value,)
- if field.opt:
+ # XXX: kw_defaults, unlike other sequences, allows None
+ # values
+ if field.opt or field.name.value == 'kw_defaults':
wrapper += " if %s is not None else space.w_None" % (value,)
return wrapper
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit