diff options
author | Damien George <damien.p.george@gmail.com> | 2014-09-23 14:10:03 +0000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-09-23 14:15:45 +0000 |
commit | d6230f62c785c6c1ef1797500617c33e24607980 (patch) | |
tree | df12c1f20b9c22de5b25224c4bbd4e1e89cac871 /py/objbool.c | |
parent | 96e20c600f6498c403445956077f85dd2fb548aa (diff) |
py: Make native emitter handle multi-compare and not/is not/not in ops.
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 e6b5230f7..47c91357f 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; + } } } |