py/objlist: Make list += accept all arguments and add test.

This commit is contained in:
Damien George 2015-08-02 20:53:54 +01:00
parent c6926c374d
commit 9a2913ed1c
2 changed files with 33 additions and 3 deletions

View File

@ -121,9 +121,6 @@ STATIC mp_obj_t list_binary_op(mp_uint_t op, mp_obj_t lhs, mp_obj_t rhs) {
return MP_OBJ_UNCAST(s); return MP_OBJ_UNCAST(s);
} }
case MP_BINARY_OP_INPLACE_ADD: { case MP_BINARY_OP_INPLACE_ADD: {
if (!MP_OBJ_IS_TYPE(rhs, &mp_type_list)) {
return MP_OBJ_NULL; // op not supported
}
list_extend(lhs, rhs); list_extend(lhs, rhs);
return lhs; return lhs;
} }

View File

@ -0,0 +1,33 @@
# test list.__iadd__ and list.extend (they are equivalent)
l = [1, 2]
l.extend([])
print(l)
l.extend([3])
print(l)
l.extend([4, 5])
print(l)
l.extend(range(6, 10))
print(l)
l.extend("abc")
print(l)
l = [1, 2]
l += []
print(l)
l += [3]
print(l)
l += [4, 5]
print(l)
l += range(6, 10)
print(l)
l += "abc"
print(l)