[pypy-commit] extradoc extradoc: Tied this issue to a 3.5 issue
arigo
pypy.commits at gmail.com
Sat Sep 24 02:45:15 EDT 2016
Author: Armin Rigo <arigo at tunes.org>
Branch: extradoc
Changeset: r5712:2d8db6ebad85
Date: 2016-09-24 08:45 +0200
http://bitbucket.org/pypy/extradoc/changeset/2d8db6ebad85/
Log: Tied this issue to a 3.5 issue
diff --git a/planning/py3.5/cpython-crashers.rst b/planning/py3.5/cpython-crashers.rst
--- a/planning/py3.5/cpython-crashers.rst
+++ b/planning/py3.5/cpython-crashers.rst
@@ -75,11 +75,15 @@
get an exception from calling the user-defined __await__() or checking
what it returns; such an exception is completely eaten.
-* while I'm at it, this is an old issue that was forgotten twice on the
+* this is an old issue that was forgotten twice on the
issue tracker: ``class C: __new__=int.__new__`` and ``class C(int):
__new__=object.__new__`` can each be instantiated, even though they
shouldn't. This is because ``__new__`` is completely ignored if it is
set to a built-in function that uses ``tp_new_wrapper`` as its C code.
This is true for most or all the built-in types' ``__new__``.
- http://bugs.python.org/issue1694663#msg75957
- http://bugs.python.org/issue5322#msg84112
+ http://bugs.python.org/issue1694663#msg75957,
+ http://bugs.python.org/issue5322#msg84112. In (at least) CPython 3.5,
+ a few classes work only thanks to abuse of this bug: for example,
+ ``io.UnsupportedOperation.__new__(io.UnsupportedOperation)`` doesn't
+ work, but that was not noticed because ``io.UnsupportedOperation()``
+ mistakenly works.
More information about the pypy-commit
mailing list