use a invalid name for the __class__ closure for super() (closes #12370)
This prevents the assignment of __class__ in the class body from breaking
super. (Although a determined person could do locals()["@__class__"] = 4)
diff --git a/Python/compile.c b/Python/compile.c
index b655c25..567b230 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -1566,7 +1566,7 @@
return 0;
}
/* return the (empty) __class__ cell */
- str = PyUnicode_InternFromString("__class__");
+ str = PyUnicode_InternFromString("@__class__");
if (str == NULL) {
compiler_exit_scope(c);
return 0;