From 115df8491a6633ced3cc3f2343b349869de30b8c Mon Sep 17 00:00:00 2001 From: Dong-hee Na Date: Tue, 11 Jul 2023 10:14:53 +0900 Subject: [PATCH] gh-104635: Add a test case for variables that have a dependency. (gh-106583) --- Lib/test/test_compile.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py index 784c0550cc09b1..85ce0a4b39d854 100644 --- a/Lib/test/test_compile.py +++ b/Lib/test/test_compile.py @@ -1186,6 +1186,15 @@ def f(x, y, z): return a self.assertEqual(f("x", "y", "z"), "y") + def test_variable_dependent(self): + # gh-104635: Since the value of b is dependent on the value of a + # the first STORE_FAST for a should not be skipped. (e.g POP_TOP). + # This test case is added to prevent potential regression from aggressive optimization. + def f(): + a = 42; b = a + 54; a = 54 + return a, b + self.assertEqual(f(), (54, 96)) + @requires_debug_ranges() class TestSourcePositions(unittest.TestCase):