py/obj: Add support for __int__ special method.

Based on the discussion, this special method is available unconditionally,
as converting to int is a common operation.
This commit is contained in:
Paul Sokolovsky
2018-08-29 17:59:36 +03:00
committed by Damien George
parent 113f00a9ab
commit b1d08726ee
5 changed files with 36 additions and 15 deletions

View File

@@ -62,8 +62,7 @@ STATIC mp_obj_t mp_obj_int_make_new(const mp_obj_type_t *type_in, size_t n_args,
return mp_obj_new_int_from_float(mp_obj_float_get(args[0]));
#endif
} else {
// try to convert to small int (eg from bool)
return MP_OBJ_NEW_SMALL_INT(mp_obj_get_int(args[0]));
return mp_unary_op(MP_UNARY_OP_INT, args[0]);
}
case 2: