summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2015-12-03 17:59:49 +0000
committerDamien George <damien.p.george@gmail.com>2015-12-03 17:59:49 +0000
commit7a99639cffb4397fa964268433d23b9ef0707892 (patch)
treee5c3d4e644d41179474173d0ebb1d64062a49349
parentb4eccfd02dc8d7c39a6546bc7b051676140d341e (diff)
py: Fix function calls that have positional and a star-arg-with-iterator.
Addresses issue #1678.
-rw-r--r--py/runtime.c1
-rw-r--r--tests/basics/fun_callstar.py3
2 files changed, 4 insertions, 0 deletions
diff --git a/py/runtime.c b/py/runtime.c
index e45591bbe..c6a85bb01 100644
--- a/py/runtime.c
+++ b/py/runtime.c
@@ -671,6 +671,7 @@ void mp_call_prepare_args_n_kw_var(bool have_self, mp_uint_t n_args_n_kw, const
// copy the fixed position args
mp_seq_copy(args2 + args2_len, args, n_args, mp_obj_t);
+ args2_len += n_args;
// extract the variable position args from the iterator
mp_obj_t iterable = mp_getiter(pos_seq);
diff --git a/tests/basics/fun_callstar.py b/tests/basics/fun_callstar.py
index 255563b26..2275d3d4f 100644
--- a/tests/basics/fun_callstar.py
+++ b/tests/basics/fun_callstar.py
@@ -14,6 +14,9 @@ foo(1, 2, *[100])
# Iterator
foo(*range(3))
+# pos then iterator
+foo(1, *range(2, 4))
+
# method calls with *pos
class A: