aboutsummaryrefslogtreecommitdiff
path: root/py/objfun.h
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2014-04-27 15:50:52 +0100
committerDamien George <damien.p.george@gmail.com>2014-04-27 15:50:52 +0100
commit2827d62e8b5790b2d770b9ce54e25cd56e949f20 (patch)
treecca15628b4649f6d404990ffc1531ac5aeee0225 /py/objfun.h
parent36cbd0db7e4f297c8fc729c842b171af2cfd04c7 (diff)
py: Implement keyword-only args.
Implements 'def f(*, a)' and 'def f(*a, b)', but not default keyword-only args, eg 'def f(*, a=1)'. Partially addresses issue #524.
Diffstat (limited to 'py/objfun.h')
-rw-r--r--py/objfun.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/py/objfun.h b/py/objfun.h
index 07ca623ec..8207b161a 100644
--- a/py/objfun.h
+++ b/py/objfun.h
@@ -1,8 +1,9 @@
typedef struct _mp_obj_fun_bc_t {
mp_obj_base_t base;
mp_obj_dict_t *globals; // the context within which this function was defined
- machine_uint_t n_args : 15; // number of arguments this function takes
- machine_uint_t n_def_args : 15; // number of default arguments
+ machine_uint_t n_pos_args : 16; // number of arguments this function takes
+ machine_uint_t n_kwonly_args : 16; // number of arguments this function takes
+ machine_uint_t n_def_args : 16; // number of default arguments
machine_uint_t takes_var_args : 1; // set if this function takes variable args
machine_uint_t takes_kw_args : 1; // set if this function takes keyword args
const byte *bytecode; // bytecode for the function