From 853f7ac4d001d2098a4f25305e235f5d0e7c26c8 Mon Sep 17 00:00:00 2001 From: Jeff Epler Date: Fri, 30 Mar 2018 17:10:45 -0500 Subject: py/bc: Turn assertion error into exception --- py/bc.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'py') diff --git a/py/bc.c b/py/bc.c index 381daa24d..442a29771 100644 --- a/py/bc.c +++ b/py/bc.c @@ -190,6 +190,13 @@ void mp_setup_code_state(mp_code_state_t *code_state, size_t n_args, size_t n_kw for (size_t i = 0; i < n_kw; i++) { // the keys in kwargs are expected to be qstr objects mp_obj_t wanted_arg_name = kwargs[2 * i]; + if(MP_UNLIKELY(!MP_OBJ_IS_QSTR(wanted_arg_name))) { + #if MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE + mp_raise_TypeError("unexpected keyword argument"); + #else + mp_raise_TypeError("keywords must be strings"); + #endif + } for (size_t j = 0; j < n_pos_args + n_kwonly_args; j++) { if (wanted_arg_name == arg_names[j]) { if (code_state->state[n_state - 1 - j] != MP_OBJ_NULL) { -- cgit v1.2.3