summaryrefslogtreecommitdiffstatshomepage
path: root/py
diff options
context:
space:
mode:
Diffstat (limited to 'py')
-rw-r--r--py/objset.c25
1 files changed, 7 insertions, 18 deletions
diff --git a/py/objset.c b/py/objset.c
index 43bb61083b..ba083ada8a 100644
--- a/py/objset.c
+++ b/py/objset.c
@@ -46,23 +46,6 @@ void set_print(void (*print)(void *env, const char *fmt, ...), void *env, mp_obj
}
-static mp_obj_t set_binary_op(int op, mp_obj_t lhs_in, mp_obj_t rhs_in) {
- mp_obj_set_t *o = lhs_in;
- switch (op) {
- case RT_COMPARE_OP_IN:
- case RT_COMPARE_OP_NOT_IN:
- {
- mp_obj_t elem = mp_set_lookup(&o->set, rhs_in, false);
- return ((op == RT_COMPARE_OP_IN) ^ (elem == NULL))
- ? mp_const_true : mp_const_false;
- }
- default:
- // op not supported
- return NULL;
- }
-}
-
-
static mp_obj_t set_make_new(mp_obj_t type_in, int n_args, const mp_obj_t *args) {
switch (n_args) {
case 0:
@@ -423,6 +406,13 @@ static mp_obj_t set_binary_op(int op, mp_obj_t lhs, mp_obj_t rhs) {
return set_issuperset(lhs, rhs);
case RT_COMPARE_OP_NOT_EQUAL:
return MP_BOOL(set_equal(lhs, rhs) == mp_const_false);
+ case RT_COMPARE_OP_IN:
+ case RT_COMPARE_OP_NOT_IN:
+ {
+ mp_obj_set_t *o = lhs;
+ mp_obj_t elem = mp_set_lookup(&o->set, rhs, MP_MAP_LOOKUP);
+ return MP_BOOL((op == RT_COMPARE_OP_IN) ^ (elem == NULL));
+ }
default:
// op not supported
return NULL;
@@ -458,7 +448,6 @@ const mp_obj_type_t set_type = {
{ &mp_const_type },
"set",
.print = set_print,
- .binary_op = set_binary_op,
.make_new = set_make_new,
.binary_op = set_binary_op,
.getiter = set_getiter,