diff options
author | Damien George <damien.p.george@gmail.com> | 2014-04-27 15:50:52 +0100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-04-27 15:50:52 +0100 |
commit | 2827d62e8b5790b2d770b9ce54e25cd56e949f20 (patch) | |
tree | cca15628b4649f6d404990ffc1531ac5aeee0225 /py/objfun.h | |
parent | 36cbd0db7e4f297c8fc729c842b171af2cfd04c7 (diff) | |
download | micropython-2827d62e8b5790b2d770b9ce54e25cd56e949f20.tar.gz micropython-2827d62e8b5790b2d770b9ce54e25cd56e949f20.zip |
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.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/py/objfun.h b/py/objfun.h index 07ca623ece..8207b161a2 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 |