mirror of
https://github.com/pocketpy/pocketpy
synced 2025-11-10 13:40:16 +00:00
allow next to be compatible with cpython
This commit is contained in:
parent
5acb5260e3
commit
29d0a6a932
@ -729,7 +729,7 @@ void VM::init_builtin_types(){
|
||||
this->Ellipsis = heap._new<Dummy>(_new_type_object("ellipsis"));
|
||||
this->True = heap._new<Dummy>(tp_bool);
|
||||
this->False = heap._new<Dummy>(tp_bool);
|
||||
this->StopIteration = heap._new<Dummy>(_new_type_object("StopIterationType"));
|
||||
this->StopIteration = _all_types[_new_type_object("StopIteration", tp_exception)].obj;
|
||||
|
||||
this->builtins = new_module("builtins");
|
||||
|
||||
|
||||
@ -36,3 +36,21 @@ assert next(i) == 4
|
||||
assert next(i) == 5
|
||||
assert next(i) == StopIteration
|
||||
assert next(i) == StopIteration
|
||||
|
||||
import builtins
|
||||
|
||||
def next(obj):
|
||||
res = builtins.next(obj)
|
||||
if res is StopIteration:
|
||||
raise StopIteration
|
||||
return res
|
||||
|
||||
a = iter([1])
|
||||
assert next(a) == 1
|
||||
|
||||
try:
|
||||
next(a)
|
||||
exit(1)
|
||||
except StopIteration:
|
||||
pass
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user