Skip to content

Commit f7eaf60

Browse files
committed
py: Fix "TypeError: 'iterator' object is not iterable", doh.
1 parent f39d3b9 commit f7eaf60

File tree

9 files changed

+18
-0
lines changed

9 files changed

+18
-0
lines changed

py/objarray.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ STATIC mp_obj_t array_it_iternext(mp_obj_t self_in) {
219219
STATIC const mp_obj_type_t array_it_type = {
220220
{ &mp_type_type },
221221
.name = MP_QSTR_iterator,
222+
.getiter = mp_identity,
222223
.iternext = array_it_iternext,
223224
};
224225

py/objdict.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ mp_obj_t dict_it_iternext(mp_obj_t self_in) {
107107
STATIC const mp_obj_type_t mp_type_dict_it = {
108108
{ &mp_type_type },
109109
.name = MP_QSTR_iterator,
110+
.getiter = mp_identity,
110111
.iternext = dict_it_iternext,
111112
};
112113

@@ -336,6 +337,7 @@ STATIC mp_obj_t dict_view_it_iternext(mp_obj_t self_in) {
336337
STATIC const mp_obj_type_t dict_view_it_type = {
337338
{ &mp_type_type },
338339
.name = MP_QSTR_iterator,
340+
.getiter = mp_identity,
339341
.iternext = dict_view_it_iternext,
340342
};
341343

py/objgetitemiter.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ STATIC mp_obj_t it_iternext(mp_obj_t self_in) {
3838
STATIC const mp_obj_type_t it_type = {
3939
{ &mp_type_type },
4040
.name = MP_QSTR_iterator,
41+
.getiter = mp_identity,
4142
.iternext = it_iternext
4243
};
4344

py/objlist.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -408,6 +408,7 @@ mp_obj_t list_it_iternext(mp_obj_t self_in) {
408408
STATIC const mp_obj_type_t mp_type_list_it = {
409409
{ &mp_type_type },
410410
.name = MP_QSTR_iterator,
411+
.getiter = mp_identity,
411412
.iternext = list_it_iternext,
412413
};
413414

py/objrange.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ STATIC mp_obj_t range_it_iternext(mp_obj_t o_in) {
6363
STATIC const mp_obj_type_t range_it_type = {
6464
{ &mp_type_type },
6565
.name = MP_QSTR_iterator,
66+
.getiter = mp_identity,
6667
.iternext = range_it_iternext,
6768
};
6869

py/objset.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ STATIC mp_obj_t set_make_new(mp_obj_t type_in, uint n_args, uint n_kw, const mp_
7272
const mp_obj_type_t mp_type_set_it = {
7373
{ &mp_type_type },
7474
.name = MP_QSTR_iterator,
75+
.getiter = mp_identity,
7576
.iternext = set_it_iternext,
7677
};
7778

py/objstr.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -885,6 +885,7 @@ STATIC mp_obj_t str_it_iternext(mp_obj_t self_in) {
885885
STATIC const mp_obj_type_t mp_type_str_it = {
886886
{ &mp_type_type },
887887
.name = MP_QSTR_iterator,
888+
.getiter = mp_identity,
888889
.iternext = str_it_iternext,
889890
};
890891

@@ -903,6 +904,7 @@ STATIC mp_obj_t bytes_it_iternext(mp_obj_t self_in) {
903904
STATIC const mp_obj_type_t mp_type_bytes_it = {
904905
{ &mp_type_type },
905906
.name = MP_QSTR_iterator,
907+
.getiter = mp_identity,
906908
.iternext = bytes_it_iternext,
907909
};
908910

py/objtuple.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ STATIC mp_obj_t tuple_it_iternext(mp_obj_t self_in) {
251251
STATIC const mp_obj_type_t mp_type_tuple_it = {
252252
{ &mp_type_type },
253253
.name = MP_QSTR_iterator,
254+
.getiter = mp_identity,
254255
.iternext = tuple_it_iternext,
255256
};
256257

tests/basics/iter-of-iter.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
i = iter(iter((1, 2, 3)))
2+
print(list(i))
3+
i = iter(iter([1, 2, 3]))
4+
print(list(i))
5+
i = iter(iter({1:2, 3:4, 5:6}))
6+
print(list(i))
7+
i = iter(iter({1, 2, 3}))
8+
print(list(i))

0 commit comments

Comments
 (0)