diff options
Diffstat (limited to 'py/objbool.c')
-rw-r--r-- | py/objbool.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/py/objbool.c b/py/objbool.c index e6b5230f74..47c91357ff 100644 --- a/py/objbool.c +++ b/py/objbool.c @@ -74,9 +74,16 @@ STATIC mp_obj_t bool_unary_op(mp_uint_t op, mp_obj_t o_in) { case MP_UNARY_OP_BOOL: return o_in; case MP_UNARY_OP_POSITIVE: return MP_OBJ_NEW_SMALL_INT(value); case MP_UNARY_OP_NEGATIVE: return MP_OBJ_NEW_SMALL_INT(-value); - case MP_UNARY_OP_INVERT: + case MP_UNARY_OP_INVERT: return MP_OBJ_NEW_SMALL_INT(~value); + + // only bool needs to implement MP_UNARY_OP_NOT + case MP_UNARY_OP_NOT: default: // no other cases - return MP_OBJ_NEW_SMALL_INT(~value); + if (value) { + return mp_const_false; + } else { + return mp_const_true; + } } } |