diff options
| author | Damien George <damien.p.george@gmail.com> | 2015-12-03 17:59:49 +0000 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2015-12-03 17:59:49 +0000 |
| commit | 7a99639cffb4397fa964268433d23b9ef0707892 (patch) | |
| tree | e5c3d4e644d41179474173d0ebb1d64062a49349 | |
| parent | b4eccfd02dc8d7c39a6546bc7b051676140d341e (diff) | |
py: Fix function calls that have positional and a star-arg-with-iterator.
Addresses issue #1678.
| -rw-r--r-- | py/runtime.c | 1 | ||||
| -rw-r--r-- | tests/basics/fun_callstar.py | 3 |
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: |
