set tp_new from the class in the hierarchy that actually owns the descriptor (closes #25731)
Debugging by Eryk Sun.
This commit is contained in:
parent
9e9f850f99
commit
9ad11544bf
|
@ -4564,6 +4564,14 @@ order (MRO) for bases """
|
||||||
self.assertRegex(repr(method),
|
self.assertRegex(repr(method),
|
||||||
r"<bound method qualname of <object object at .*>>")
|
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):
|
class DictProxyTests(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
|
|
@ -10,6 +10,8 @@ Release date: tba
|
||||||
Core and Builtins
|
Core and Builtins
|
||||||
-----------------
|
-----------------
|
||||||
|
|
||||||
|
- Issue #25731: Fix set and deleting __new__ on a class.
|
||||||
|
|
||||||
- Issue #22995: [UPDATE] Comment out the one of the pickleability tests in
|
- Issue #22995: [UPDATE] Comment out the one of the pickleability tests in
|
||||||
_PyObject_GetState() due to regressions observed in Cython-based projects.
|
_PyObject_GetState() due to regressions observed in Cython-based projects.
|
||||||
|
|
||||||
|
|
|
@ -6777,7 +6777,7 @@ update_one_slot(PyTypeObject *type, slotdef *p)
|
||||||
sanity checks and constructing a new argument
|
sanity checks and constructing a new argument
|
||||||
list. Cut all that nonsense short -- this speeds
|
list. Cut all that nonsense short -- this speeds
|
||||||
up instance creation tremendously. */
|
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
|
/* XXX I'm not 100% sure that there isn't a hole
|
||||||
in this reasoning that requires additional
|
in this reasoning that requires additional
|
||||||
sanity checks. I'll buy the first person to
|
sanity checks. I'll buy the first person to
|
||||||
|
|
Loading…
Reference in New Issue