summaryrefslogtreecommitdiffstatshomepage
path: root/py/objset.c
diff options
context:
space:
mode:
authorDamien George <damien.p.george@gmail.com>2017-02-02 23:33:49 +1100
committerDamien George <damien.p.george@gmail.com>2017-02-02 23:33:49 +1100
commit30cf503e978f7ccfedcaf14b46ab9fb3be065370 (patch)
treef0ac8ee035157705f115bbee8ca3e0d43032b99b /py/objset.c
parentb32880bd513b868465ad2ffd9b698c13ce7f964a (diff)
downloadmicropython-30cf503e978f7ccfedcaf14b46ab9fb3be065370.tar.gz
micropython-30cf503e978f7ccfedcaf14b46ab9fb3be065370.zip
py/objset: Make inplace binary operators actually modify the set.
Diffstat (limited to 'py/objset.c')
-rw-r--r--py/objset.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/py/objset.c b/py/objset.c
index fc124fcd8c..246f505d98 100644
--- a/py/objset.c
+++ b/py/objset.c
@@ -489,13 +489,16 @@ STATIC mp_obj_t set_binary_op(mp_uint_t op, mp_obj_t lhs, mp_obj_t rhs) {
case MP_BINARY_OP_SUBTRACT:
return set_diff(2, args);
case MP_BINARY_OP_INPLACE_OR:
- return set_union(lhs, rhs);
+ set_update(2, args);
+ return lhs;
case MP_BINARY_OP_INPLACE_XOR:
- return set_symmetric_difference(lhs, rhs);
+ set_symmetric_difference_update(lhs, rhs);
+ return lhs;
case MP_BINARY_OP_INPLACE_AND:
- return set_intersect(lhs, rhs);
+ set_intersect_int(lhs, rhs, true);
+ return lhs;
case MP_BINARY_OP_INPLACE_SUBTRACT:
- return set_diff(2, args);
+ return set_diff_int(2, args, true);
case MP_BINARY_OP_LESS:
return set_issubset_proper(lhs, rhs);
case MP_BINARY_OP_MORE: