summaryrefslogtreecommitdiffstats
path: root/Lib/importlib
diff options
context:
space:
mode:
authorNick Coghlan <ncoghlan@gmail.com>2016-09-11 04:45:49 (GMT)
committerNick Coghlan <ncoghlan@gmail.com>2016-09-11 04:45:49 (GMT)
commit944368e1cc90a0bebaaf1a0a6f4346a81d8f46ad (patch)
treeea2c59fec386dfbe32c0f53ba8a85f75860e554d /Lib/importlib
parentfc3f7d56773b3816eb0e8f4151239a0983aedb2c (diff)
downloadcpython-944368e1cc90a0bebaaf1a0a6f4346a81d8f46ad.zip
cpython-944368e1cc90a0bebaaf1a0a6f4346a81d8f46ad.tar.gz
cpython-944368e1cc90a0bebaaf1a0a6f4346a81d8f46ad.tar.bz2
Issue #23722: Initialize __class__ from type.__new__()
The __class__ cell used by zero-argument super() is now initialized from type.__new__ rather than __build_class__, so class methods relying on that will now work correctly when called from metaclass methods during class creation. Patch by Martin Teichmann.
Diffstat (limited to 'Lib/importlib')
-rw-r--r--Lib/importlib/_bootstrap_external.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/Lib/importlib/_bootstrap_external.py b/Lib/importlib/_bootstrap_external.py
index 9a7e6ec..bfb89da 100644
--- a/Lib/importlib/_bootstrap_external.py
+++ b/Lib/importlib/_bootstrap_external.py
@@ -236,7 +236,8 @@ _code_type = type(_write_atomic.__code__)
# Python 3.6b1 3373 (add BUILD_STRING opcode #27078)
# Python 3.6b1 3375 (add SETUP_ANNOTATIONS and STORE_ANNOTATION opcodes
# #27985)
-# Python 3.6a1 3376 (simplify CALL_FUNCTIONs & BUILD_MAP_UNPACK_WITH_CALL)
+# Python 3.6b1 3376 (simplify CALL_FUNCTIONs & BUILD_MAP_UNPACK_WITH_CALL)
+# Python 3.6b1 3377 (set __class__ cell from type.__new__ #23722)
#
# MAGIC must change whenever the bytecode emitted by the compiler may no
# longer be understood by older implementations of the eval loop (usually
@@ -245,7 +246,7 @@ _code_type = type(_write_atomic.__code__)
# Whenever MAGIC_NUMBER is changed, the ranges in the magic_values array
# in PC/launcher.c must also be updated.
-MAGIC_NUMBER = (3376).to_bytes(2, 'little') + b'\r\n'
+MAGIC_NUMBER = (3377).to_bytes(2, 'little') + b'\r\n'
_RAW_MAGIC_NUMBER = int.from_bytes(MAGIC_NUMBER, 'little') # For import.c
_PYCACHE = '__pycache__'