py: Rename and reorder parameters in emit_make_function/closure.
In preparation for implementing default keyword arguments.
diff --git a/py/compile.c b/py/compile.c
index c6c6752..b2000d5 100644
--- a/py/compile.c
+++ b/py/compile.c
@@ -774,11 +774,14 @@
}
// stuff for lambda and comprehensions and generators
-void close_over_variables_etc(compiler_t *comp, scope_t *this_scope, int n_dict_params, int n_default_params) {
+void close_over_variables_etc(compiler_t *comp, scope_t *this_scope, int n_pos_defaults, int n_kw_defaults) {
+ assert(n_pos_defaults >= 0);
+ assert(n_kw_defaults >= 0);
+
#if !MICROPY_EMIT_CPYTHON
// in Micro Python we put the default params into a tuple using the bytecode
- if (n_default_params) {
- EMIT_ARG(build_tuple, n_default_params);
+ if (n_pos_defaults) {
+ EMIT_ARG(build_tuple, n_pos_defaults);
}
#endif
@@ -807,10 +810,10 @@
// make the function/closure
if (nfree == 0) {
- EMIT_ARG(make_function, this_scope, n_dict_params, n_default_params);
+ EMIT_ARG(make_function, this_scope, n_pos_defaults, n_kw_defaults);
} else {
EMIT_ARG(build_tuple, nfree);
- EMIT_ARG(make_closure, this_scope, n_dict_params, n_default_params);
+ EMIT_ARG(make_closure, this_scope, n_pos_defaults, n_kw_defaults);
}
}
@@ -921,7 +924,7 @@
scope_t *fscope = (scope_t*)pns->nodes[4];
// make the function
- close_over_variables_etc(comp, fscope, comp->param_pass_num_dict_params, comp->param_pass_num_default_params);
+ close_over_variables_etc(comp, fscope, comp->param_pass_num_default_params, comp->param_pass_num_dict_params);
// restore variables
comp->have_bare_star = old_have_bare_star;