@@ -100,7 +100,7 @@ static mp_obj_t set_getiter(mp_obj_t set_in) {
100100static mp_obj_t set_add (mp_obj_t self_in , mp_obj_t item ) {
101101 assert (MP_OBJ_IS_TYPE (self_in , & set_type ));
102102 mp_obj_set_t * self = self_in ;
103- mp_set_lookup (& self -> set , item , true );
103+ mp_set_lookup (& self -> set , item , MP_MAP_LOOKUP_ADD_IF_NOT_FOUND );
104104 return mp_const_none ;
105105}
106106static MP_DEFINE_CONST_FUN_OBJ_2 (set_add_obj , set_add ) ;
@@ -129,6 +129,13 @@ static mp_obj_t set_copy(mp_obj_t self_in) {
129129}
130130static MP_DEFINE_CONST_FUN_OBJ_1 (set_copy_obj , set_copy ) ;
131131
132+ static mp_obj_t set_discard (mp_obj_t self_in , mp_obj_t item ) {
133+ assert (MP_OBJ_IS_TYPE (self_in , & set_type ));
134+ mp_obj_set_t * self = self_in ;
135+ mp_set_lookup (& self -> set , item , MP_MAP_LOOKUP_REMOVE_IF_FOUND );
136+ return mp_const_none ;
137+ }
138+ static MP_DEFINE_CONST_FUN_OBJ_2 (set_discard_obj , set_discard ) ;
132139
133140/******************************************************************************/
134141/* set constructors & public C API */
@@ -138,6 +145,7 @@ static const mp_method_t set_type_methods[] = {
138145 { "add" , & set_add_obj },
139146 { "clear" , & set_clear_obj },
140147 { "copy" , & set_copy_obj },
148+ { "discard" , & set_discard_obj },
141149 { NULL , NULL }, // end-of-list sentinel
142150};
143151
@@ -155,13 +163,13 @@ mp_obj_t mp_obj_new_set(int n_args, mp_obj_t *items) {
155163 o -> base .type = & set_type ;
156164 mp_set_init (& o -> set , n_args );
157165 for (int i = 0 ; i < n_args ; i ++ ) {
158- mp_set_lookup (& o -> set , items [i ], true );
166+ mp_set_lookup (& o -> set , items [i ], MP_MAP_LOOKUP_ADD_IF_NOT_FOUND );
159167 }
160168 return o ;
161169}
162170
163171void mp_obj_set_store (mp_obj_t self_in , mp_obj_t item ) {
164172 assert (MP_OBJ_IS_TYPE (self_in , & set_type ));
165173 mp_obj_set_t * self = self_in ;
166- mp_set_lookup (& self -> set , item , true );
174+ mp_set_lookup (& self -> set , item , MP_MAP_LOOKUP_ADD_IF_NOT_FOUND );
167175}
0 commit comments