diff options
| author | Damien George | 2014-04-11 13:38:30 +0000 |
|---|---|---|
| committer | Damien George | 2014-04-11 13:38:30 +0000 |
| commit | 69b89d21b2dcbe61c9abe1744cc0ec77d89422de (patch) | |
| tree | bb467f417445eef1af49054d2a5363044380505b /py/emitglue.c | |
| parent | 0e3329a6b82873531f63fb1358f57852723fad05 (diff) | |
py: Change compile order for default positional and keyword args.
This simplifies the compiler a little, since now it can do 1 pass over
a function declaration, to determine default arguments. I would have
done this originally, but CPython 3.3 somehow had the default keyword
args compiled before the default position args (even though they appear
in the other order in the text of the script), and I thought it was
important to have the same order of execution when evaluating default
arguments. CPython 3.4 has changed the order to the more obvious one,
so we can also change.
Diffstat (limited to 'py/emitglue.c')
| -rw-r--r-- | py/emitglue.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/py/emitglue.c b/py/emitglue.c index 48800bbf0..90c9b77cf 100644 --- a/py/emitglue.c +++ b/py/emitglue.c @@ -197,6 +197,9 @@ mp_obj_t mp_make_function_from_id(uint unique_code_id, mp_obj_t def_args, mp_obj return mp_const_none; } + // 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); |
