mp_obj_tmp_obj_new_exception_msg_varg(qstrid,constchar*fmt,...);// counts args by number of % symbols in fmt, excluding %%; can only handle void* sizes (ie no float/double!)
nlr_jump(mp_obj_new_exception_msg_2_args(MP_QSTR_TypeError,"function takes %d positional arguments but %d were given",(constchar*)(machine_int_t)self->n_args,(constchar*)(machine_int_t)n_args));
nlr_jump(mp_obj_new_exception_msg_varg(MP_QSTR_TypeError,"function takes %d positional arguments but %d were given",self->n_args,n_args));
}
if(n_kw!=0){
nlr_jump(mp_obj_new_exception_msg(MP_QSTR_TypeError,"function does not take keyword arguments"));
nlr_jump(mp_obj_new_exception_msg_2_args(MP_QSTR_TypeError,"function takes %d positional arguments but %d were given",(constchar*)(machine_int_t)self->n_args,(constchar*)(machine_int_t)n_args));
nlr_jump(mp_obj_new_exception_msg_varg(MP_QSTR_TypeError,"function takes %d positional arguments but %d were given",self->n_args,n_args));
}
if(n_kw!=0){
nlr_jump(mp_obj_new_exception_msg(MP_QSTR_TypeError,"function does not take keyword arguments"));
nlr_jump(mp_obj_new_exception_msg_2_args(MP_QSTR_TypeError,"function takes %d positional arguments but %d were given",(constchar*)(machine_int_t)bc_n_args,(constchar*)(machine_int_t)n_args));
nlr_jump(mp_obj_new_exception_msg_varg(MP_QSTR_TypeError,"function takes %d positional arguments but %d were given",bc_n_args,n_args));
}
if(n_kw!=0){
nlr_jump(mp_obj_new_exception_msg(MP_QSTR_TypeError,"function does not take keyword arguments"));