diff options
author | Benjamin Peterson <benjamin@python.org> | 2016-01-19 05:18:35 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2016-01-19 05:18:35 (GMT) |
commit | 2c028492d46e058ceaf81c3ec3c806226bf39b0b (patch) | |
tree | e42b8e7846ff239b48a8dcde1d8e478951f6b3cd | |
parent | 3114d763fb0eb469dcae24b616c727303261b30f (diff) | |
parent | 9ad11544bfb80b7881e0d567e40ef2fa2da58f02 (diff) | |
download | cpython-2c028492d46e058ceaf81c3ec3c806226bf39b0b.zip cpython-2c028492d46e058ceaf81c3ec3c806226bf39b0b.tar.gz cpython-2c028492d46e058ceaf81c3ec3c806226bf39b0b.tar.bz2 |
merge 3.5 (#25731)
-rw-r--r-- | Lib/test/test_descr.py | 8 | ||||
-rw-r--r-- | Misc/NEWS | 2 | ||||
-rw-r--r-- | Objects/typeobject.c | 2 |
3 files changed, 11 insertions, 1 deletions
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py index 06d660e..d1b2905 100644 --- a/Lib/test/test_descr.py +++ b/Lib/test/test_descr.py @@ -4564,6 +4564,14 @@ order (MRO) for bases """ self.assertRegex(repr(method), r"<bound method qualname of <object object at .*>>") + def test_deleting_new_in_subclasses(self): + class X: + def __init__(self, a): + pass + X.__new__ = None + del X.__new__ + X(1) # should work + class DictProxyTests(unittest.TestCase): def setUp(self): @@ -13,6 +13,8 @@ Core and Builtins - Issue #25791: Trying to resolve a relative import without __spec__ or __package__ defined now raises an ImportWarning +- Issue #25731: Fix set and deleting __new__ on a class. + - Issue #25961: Disallowed null characters in the type name. - Issue #25973: Fix segfault when an invalid nonlocal statement binds a name diff --git a/Objects/typeobject.c b/Objects/typeobject.c index db15cf6..46fb27e 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -6791,7 +6791,7 @@ update_one_slot(PyTypeObject *type, slotdef *p) sanity checks and constructing a new argument list. Cut all that nonsense short -- this speeds up instance creation tremendously. */ - specific = (void *)type->tp_new; + specific = (void *)((PyTypeObject *)PyCFunction_GET_SELF(descr))->tp_new; /* XXX I'm not 100% sure that there isn't a hole in this reasoning that requires additional sanity checks. I'll buy the first person to |