From 22863df7ca5f9cd01a40ab3dce3d067ec5666081 Mon Sep 17 00:00:00 2001 From: Mark Shannon Date: Thu, 27 Oct 2022 03:55:03 -0700 Subject: GH-96793: Change `FOR_ITER` to not pop the iterator on exhaustion. (GH-96801) Change FOR_ITER to have the same stack effect regardless of whether it branches or not. Performance is unchanged as FOR_ITER (and specialized forms jump over the cleanup code). --- Lib/test/test__opcode.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Lib/test/test__opcode.py') diff --git a/Lib/test/test__opcode.py b/Lib/test/test__opcode.py index f548e3647b3..704d19fffd0 100644 --- a/Lib/test/test__opcode.py +++ b/Lib/test/test__opcode.py @@ -40,7 +40,7 @@ class OpcodeTests(unittest.TestCase): self.assertEqual(stack_effect(JUMP_IF_TRUE_OR_POP, 0, jump=False), -1) FOR_ITER = dis.opmap['FOR_ITER'] self.assertEqual(stack_effect(FOR_ITER, 0), 1) - self.assertEqual(stack_effect(FOR_ITER, 0, jump=True), -1) + self.assertEqual(stack_effect(FOR_ITER, 0, jump=True), 1) self.assertEqual(stack_effect(FOR_ITER, 0, jump=False), 1) JUMP_FORWARD = dis.opmap['JUMP_FORWARD'] self.assertEqual(stack_effect(JUMP_FORWARD, 0), 0) -- cgit v1.2.3