mirror of https://github.com/python/cpython
Add a few ``__dynamic__ = 0'' lines in classes that need to preserve
staticness when __dynamic__ = 1 becomes the default: - Some classes which are used to test the difference between static and dynamic. - Subclasses of complex: complex uses old-style numbers and the slot wrappers used by dynamic classes only support new-style numbers. (Ideally, the complex type should be fixed, but that looks like a labor-intensive job.)
This commit is contained in:
parent
4bb1e36eec
commit
751c4c864c
|
@ -832,9 +832,10 @@ def dynamics():
|
||||||
verify(list.__dynamic__ == 0)
|
verify(list.__dynamic__ == 0)
|
||||||
class S1:
|
class S1:
|
||||||
__metaclass__ = type
|
__metaclass__ = type
|
||||||
|
__dynamic__ = 0
|
||||||
verify(S1.__dynamic__ == 0)
|
verify(S1.__dynamic__ == 0)
|
||||||
class S(object):
|
class S(object):
|
||||||
pass
|
__dynamic__ = 0
|
||||||
verify(S.__dynamic__ == 0)
|
verify(S.__dynamic__ == 0)
|
||||||
class D(object):
|
class D(object):
|
||||||
__dynamic__ = 1
|
__dynamic__ = 1
|
||||||
|
@ -1522,6 +1523,7 @@ def inherits():
|
||||||
verify((+a).__class__ is float)
|
verify((+a).__class__ is float)
|
||||||
|
|
||||||
class madcomplex(complex):
|
class madcomplex(complex):
|
||||||
|
__dynamic__ = 0
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "%.17gj%+.17g" % (self.imag, self.real)
|
return "%.17gj%+.17g" % (self.imag, self.real)
|
||||||
a = madcomplex(-3, 4)
|
a = madcomplex(-3, 4)
|
||||||
|
@ -1901,11 +1903,12 @@ def rich_comparisons():
|
||||||
if verbose:
|
if verbose:
|
||||||
print "Testing rich comparisons..."
|
print "Testing rich comparisons..."
|
||||||
class Z(complex):
|
class Z(complex):
|
||||||
pass
|
__dynamic__ = 0
|
||||||
z = Z(1)
|
z = Z(1)
|
||||||
verify(z == 1+0j)
|
verify(z == 1+0j)
|
||||||
verify(1+0j == z)
|
verify(1+0j == z)
|
||||||
class ZZ(complex):
|
class ZZ(complex):
|
||||||
|
__dynamic__ = 0
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
try:
|
try:
|
||||||
return abs(self - other) <= 1e-6
|
return abs(self - other) <= 1e-6
|
||||||
|
@ -1992,7 +1995,8 @@ def coercions():
|
||||||
coerce(0, F(0))
|
coerce(0, F(0))
|
||||||
coerce(0L, F(0))
|
coerce(0L, F(0))
|
||||||
coerce(0., F(0))
|
coerce(0., F(0))
|
||||||
class C(complex): pass
|
class C(complex):
|
||||||
|
__dynamic__ = 0
|
||||||
coerce(C(0), 0)
|
coerce(C(0), 0)
|
||||||
coerce(C(0), 0L)
|
coerce(C(0), 0L)
|
||||||
coerce(C(0), 0.)
|
coerce(C(0), 0.)
|
||||||
|
|
Loading…
Reference in New Issue