From: Dong-hee Na Date: Thu, 26 Aug 2021 09:52:21 +0000 (+0000) Subject: bpo-45000: Raise SyntaxError when try to delete __debug__ (GH-27947) (GH-27957) X-Git-Tag: v3.10.0rc2~52 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=32c1caa87f68a650f2d009a589a1db30484499cb;p=thirdparty%2FPython%2Fcpython.git bpo-45000: Raise SyntaxError when try to delete __debug__ (GH-27947) (GH-27957) (cherry picked from commit 551da597a0996b0fb3af425f48aa5bc63ea6b963) --- diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index 88503dcaad99..43780ce273ef 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -59,6 +59,10 @@ SyntaxError: cannot assign to __debug__ Traceback (most recent call last): SyntaxError: cannot assign to __debug__ +>>> del __debug__ +Traceback (most recent call last): +SyntaxError: cannot delete __debug__ + >>> f() = 1 Traceback (most recent call last): SyntaxError: cannot assign to function call here. Maybe you meant '==' instead of '='? diff --git a/Misc/NEWS.d/next/Core and Builtins/2021-08-25-23-17-32.bpo-45000.XjmyLl.rst b/Misc/NEWS.d/next/Core and Builtins/2021-08-25-23-17-32.bpo-45000.XjmyLl.rst new file mode 100644 index 000000000000..96c95cc6e029 --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2021-08-25-23-17-32.bpo-45000.XjmyLl.rst @@ -0,0 +1,2 @@ +A :exc:`SyntaxError` is now raised when trying to delete :const:`__debug__`. +Patch by Dong-hee Na. diff --git a/Python/compile.c b/Python/compile.c index a2378992fd40..d55b0beaec77 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -2264,6 +2264,10 @@ forbidden_name(struct compiler *c, identifier name, expr_context_ty ctx) compiler_error(c, "cannot assign to __debug__"); return 1; } + if (ctx == Del && _PyUnicode_EqualToASCIIString(name, "__debug__")) { + compiler_error(c, "cannot delete __debug__"); + return 1; + } return 0; }