From 8bcb9861a78cbe9b7cc8db526d0d621a012ba030 Mon Sep 17 00:00:00 2001 From: Damien George Date: Thu, 17 Apr 2014 16:26:50 +0100 Subject: [PATCH] py: Don't assert but go to unsupported_op in mp_binary_op for small int. --- py/runtime.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/py/runtime.c b/py/runtime.c index a507f97f36..98b2d076ec 100644 --- a/py/runtime.c +++ b/py/runtime.c @@ -365,7 +365,8 @@ mp_obj_t mp_binary_op(int op, mp_obj_t lhs, mp_obj_t rhs) { case MP_BINARY_OP_LESS_EQUAL: return MP_BOOL(lhs_val <= rhs_val); break; case MP_BINARY_OP_MORE_EQUAL: return MP_BOOL(lhs_val >= rhs_val); break; - default: assert(0); + default: + goto unsupported_op; } // TODO: We just should make mp_obj_new_int() inline and use that if (MP_OBJ_FITS_SMALL_INT(lhs_val)) { @@ -437,9 +438,7 @@ generic_binary_op: // TODO implement dispatch for reverse binary ops // TODO specify in error message what the operator is -#if MICROPY_ENABLE_FLOAT unsupported_op: -#endif nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_TypeError, "unsupported operand types for binary operator: '%s', '%s'", mp_obj_get_type_str(lhs), mp_obj_get_type_str(rhs)));