From 91f60a9f2e4533284b0979c5e19c459309b6cd30 Mon Sep 17 00:00:00 2001 From: ShaharNaveh <50263213+ShaharNaveh@users.noreply.github.com> Date: Fri, 12 Dec 2025 13:15:18 +0200 Subject: [PATCH 1/2] Add regression test for #4505 --- extra_tests/snippets/code_co_names.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 extra_tests/snippets/code_co_names.py diff --git a/extra_tests/snippets/code_co_names.py b/extra_tests/snippets/code_co_names.py new file mode 100644 index 00000000000..050721c2795 --- /dev/null +++ b/extra_tests/snippets/code_co_names.py @@ -0,0 +1,19 @@ +""" +https://github.com/RustPython/RustPython/issues/4505 +""" + +def foo(): + def inner(): + pass + +assert foo.__code__.co_names == () + +stmts = """ +import blah + +def foo(): + pass +""" + +code = compile(stmts, "", "exec") +assert code.co_names == ("blah", "foo") From 26951d22397ed51d4604137a0e49fb0e03d4630f Mon Sep 17 00:00:00 2001 From: ShaharNaveh <50263213+ShaharNaveh@users.noreply.github.com> Date: Fri, 12 Dec 2025 13:37:39 +0200 Subject: [PATCH 2/2] Move tests to `builtin_type.py` --- extra_tests/snippets/builtin_type.py | 25 ++++++++++++++++++++++--- extra_tests/snippets/code_co_names.py | 19 ------------------- 2 files changed, 22 insertions(+), 22 deletions(-) delete mode 100644 extra_tests/snippets/code_co_names.py diff --git a/extra_tests/snippets/builtin_type.py b/extra_tests/snippets/builtin_type.py index 820ee366155..abb68f812be 100644 --- a/extra_tests/snippets/builtin_type.py +++ b/extra_tests/snippets/builtin_type.py @@ -1,6 +1,6 @@ import types -from testutils import assert_raises +from testutils import assert_raises # Spec: https://docs.python.org/2/library/types.html print(None) @@ -111,8 +111,6 @@ class D: with assert_raises(TypeError): del int.__qualname__ -from testutils import assert_raises - import platform if platform.python_implementation() == "RustPython": @@ -607,3 +605,24 @@ class A(type): assert "__dict__" not in A.__dict__ + + +# regression tests for: https://github.com/RustPython/RustPython/issues/4505 + + +def foo(): + def inner(): + pass + + +assert foo.__code__.co_names == () + +stmts = """ +import blah + +def foo(): + pass +""" + +code = compile(stmts, "", "exec") +assert code.co_names == ("blah", "foo") diff --git a/extra_tests/snippets/code_co_names.py b/extra_tests/snippets/code_co_names.py deleted file mode 100644 index 050721c2795..00000000000 --- a/extra_tests/snippets/code_co_names.py +++ /dev/null @@ -1,19 +0,0 @@ -""" -https://github.com/RustPython/RustPython/issues/4505 -""" - -def foo(): - def inner(): - pass - -assert foo.__code__.co_names == () - -stmts = """ -import blah - -def foo(): - pass -""" - -code = compile(stmts, "", "exec") -assert code.co_names == ("blah", "foo")