summaryrefslogtreecommitdiffstatshomepage
path: root/py/emitglue.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-06-07 22:01:00 +0100
committerDamien George <damien.p.george@gmail.com>2014-06-07 22:01:00 +0100
commitf0778a7ccbbdd1d7bf116a6939c7eb05173e1987 (patch)
tree24a427ad51ea16deacc158a855b8c13b7c98f57c /py/emitglue.c
parentaabd83ea204325cdf45355a5bdc6838745484060 (diff)
downloadmicropython-f0778a7ccbbdd1d7bf116a6939c7eb05173e1987.tar.gz
micropython-f0778a7ccbbdd1d7bf116a6939c7eb05173e1987.zip
py: Implement default keyword only args.
Should finish addressing issue #524.
Diffstat (limited to 'py/emitglue.c')
-rw-r--r--py/emitglue.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/py/emitglue.c b/py/emitglue.c
index a89ef6766a..f9b9460837 100644
--- a/py/emitglue.c
+++ b/py/emitglue.c
@@ -119,14 +119,14 @@ mp_obj_t mp_make_function_from_raw_code(mp_raw_code_t *rc, mp_obj_t def_args, mp
// def_args must be MP_OBJ_NULL or a tuple
assert(def_args == MP_OBJ_NULL || MP_OBJ_IS_TYPE(def_args, &mp_type_tuple));
- // TODO implement default kw args
- assert(def_kw_args == MP_OBJ_NULL);
+ // def_kw_args must be MP_OBJ_NULL or a dict
+ assert(def_kw_args == MP_OBJ_NULL || MP_OBJ_IS_TYPE(def_kw_args, &mp_type_dict));
// make the function, depending on the raw code kind
mp_obj_t fun;
switch (rc->kind) {
case MP_CODE_BYTECODE:
- fun = mp_obj_new_fun_bc(rc->scope_flags, rc->arg_names, rc->n_pos_args, rc->n_kwonly_args, def_args, rc->u_byte.code);
+ fun = mp_obj_new_fun_bc(rc->scope_flags, rc->arg_names, rc->n_pos_args, rc->n_kwonly_args, def_args, def_kw_args, rc->u_byte.code);
break;
case MP_CODE_NATIVE_PY:
fun = mp_make_function_n(rc->n_pos_args, rc->u_native.fun);