Skip to content

Commit a44236a

Browse files
committed
[GR-10385] zip iter
PullRequest: graalpython/79
2 parents 6e4ce5e + d232129 commit a44236a

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

graalpython/com.oracle.graal.python.test/src/tests/test_iterator.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,3 +96,7 @@ def test_iter():
9696
zip_iterator = type(iter(zip()))
9797
assert str(zip_iterator) == "<class 'zip'>"
9898
# <class 'zip'>
99+
100+
101+
def test_zip_no_args():
102+
assert list(zip(*[])) == []

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/iterator/PZipBuiltins.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
import com.oracle.graal.python.nodes.control.GetNextNode;
3737
import com.oracle.graal.python.nodes.function.PythonBuiltinNode;
3838
import com.oracle.graal.python.nodes.function.builtins.PythonUnaryBuiltinNode;
39+
import com.oracle.graal.python.runtime.exception.PythonErrorType;
3940
import com.oracle.truffle.api.dsl.Cached;
4041
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
4142
import com.oracle.truffle.api.dsl.NodeFactory;
@@ -53,6 +54,11 @@ protected List<? extends NodeFactory<? extends PythonBuiltinNode>> getNodeFactor
5354
@GenerateNodeFactory
5455
public abstract static class NextNode extends PythonUnaryBuiltinNode {
5556

57+
@Specialization(guards = "isEmpty(self.getIterators())")
58+
public Object __next__(@SuppressWarnings("unused") PZip self) {
59+
throw raise(PythonErrorType.StopIteration);
60+
}
61+
5662
@Specialization
5763
public Object __next__(PZip self,
5864
@Cached("create()") GetNextNode next) {

0 commit comments

Comments
 (0)