[pypy-commit] pypy py3.5: Handle call on iterable argument unpacking

raffael_t pypy.commits at gmail.com
Sat Jun 11 18:04:18 EDT 2016


Author: Raffael Tfirst <raffael.tfirst at gmail.com>
Branch: py3.5
Changeset: r85103:e67603023b8b
Date: 2016-06-12 00:02 +0200
http://bitbucket.org/pypy/pypy/changeset/e67603023b8b/

Log:	Handle call on iterable argument unpacking

diff --git a/pypy/interpreter/astcompiler/astbuilder.py b/pypy/interpreter/astcompiler/astbuilder.py
--- a/pypy/interpreter/astcompiler/astbuilder.py
+++ b/pypy/interpreter/astcompiler/astbuilder.py
@@ -1055,14 +1055,21 @@
                             self.error("positional argument follows "
                                        "keyword argument unpacking",
                                        expr_node)
-                        else
+                        else:
                             self.error("positional argument follows "
                                        "keyword argument",
                                        expr_node)
                     args.append(self.handle_expr(expr_node))
-                elif expr_node.type == tokens.STAR
+                elif expr_node.type == tokens.STAR:
                     # an iterable argument unpacking
-                    # continue here
+                    if ndoublestars:
+                        self.error("iterable argument unpacking follows "
+                                   "keyword argument unpacking",
+                                   expr_node)
+                    expr = self.handle_expr(argument.get_child(1))
+                    args.append(ast.Starred(expr, ast.Load,
+                                            expr_node.get_lineno(),
+                                            expr_node.get_column()))
                 elif argument.get_child(1).type == syms.comp_for:
                     args.append(self.handle_genexp(argument))
                 else:


More information about the pypy-commit mailing list