From 1bc534247cfe585afeba41b58b25a21af158ae4e Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Mon, 30 Mar 2015 02:29:59 +0300 Subject: [PATCH] objtype: Add special unary methods __pos__, __neg__, __invert__. Conditional on MICROPY_PY_ALL_SPECIAL_METHODS. --- py/objtype.c | 8 +++++--- py/qstrdefs.h | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/py/objtype.c b/py/objtype.c index c08a6357cf..8624a4ff32 100644 --- a/py/objtype.c +++ b/py/objtype.c @@ -330,9 +330,11 @@ mp_obj_t instance_make_new(mp_obj_t self_in, mp_uint_t n_args, mp_uint_t n_kw, c const qstr mp_unary_op_method_name[] = { [MP_UNARY_OP_BOOL] = MP_QSTR___bool__, [MP_UNARY_OP_LEN] = MP_QSTR___len__, - //[MP_UNARY_OP_POSITIVE, - //[MP_UNARY_OP_NEGATIVE, - //[MP_UNARY_OP_INVERT, + #if MICROPY_PY_ALL_SPECIAL_METHODS + [MP_UNARY_OP_POSITIVE] = MP_QSTR___pos__, + [MP_UNARY_OP_NEGATIVE] = MP_QSTR___neg__, + [MP_UNARY_OP_INVERT] = MP_QSTR___invert__, + #endif [MP_UNARY_OP_NOT] = MP_QSTR_, // don't need to implement this, used to make sure array has full size }; diff --git a/py/qstrdefs.h b/py/qstrdefs.h index 3c4106e853..560b16d6a8 100644 --- a/py/qstrdefs.h +++ b/py/qstrdefs.h @@ -85,6 +85,9 @@ Q(__truediv__) Q(__floordiv__) Q(__iadd__) Q(__isub__) +Q(__invert__) +Q(__neg__) +Q(__pos__) #endif Q(micropython)