summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_descr.py
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2001-09-11 22:31:33 (GMT)
committerTim Peters <tim.peters@gmail.com>2001-09-11 22:31:33 (GMT)
commit69c2de3ad69219d60c53827670856deee6f4241c (patch)
treedb2d77467381516fef3efe9c2e52cb2879530659 /Lib/test/test_descr.py
parent0280cf79a71cf2bf710d57e921d61184aa1b2dfd (diff)
downloadcpython-69c2de3ad69219d60c53827670856deee6f4241c.zip
cpython-69c2de3ad69219d60c53827670856deee6f4241c.tar.gz
cpython-69c2de3ad69219d60c53827670856deee6f4241c.tar.bz2
More bug 460020. Disable a number of long optimizations for long subclasses.
Diffstat (limited to 'Lib/test/test_descr.py')
-rw-r--r--Lib/test/test_descr.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index a50785f..11a3a5d 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -1389,6 +1389,30 @@ def inherits():
a = octlong(12345)
verify(long(a) == 12345L)
verify(long(a).__class__ is long)
+ verify((+a).__class__ is long)
+ verify((-a).__class__ is long)
+ verify((-octlong(0)).__class__ is long)
+ verify((a >> 0).__class__ is long)
+ verify((a << 0).__class__ is long)
+ verify((a - 0).__class__ is long)
+ verify((a * 1).__class__ is long)
+ verify((a ** 1).__class__ is long)
+ verify((a // 1).__class__ is long)
+ verify((1 * a).__class__ is long)
+ verify((a | 0).__class__ is long)
+ verify((a ^ 0).__class__ is long)
+ verify((a & -1L).__class__ is long)
+ verify((octlong(0) << 12).__class__ is long)
+ verify((octlong(0) >> 12).__class__ is long)
+ verify(abs(octlong(0)).__class__ is long)
+
+ # Because octlong overrides __add__, we can't check the absence of +0
+ # optimizations using octlong.
+ class longclone(long):
+ pass
+ a = longclone(1)
+ verify((a + 0).__class__ is long)
+ verify((0 + a).__class__ is long)
class precfloat(float):
__slots__ = ['prec']