Fix typo in abstract.c which caused __rpow__ to not be invoked.

Added related testcase.
Closes SF bug #643260.
This commit is contained in:
Raymond Hettinger 2002-12-07 10:05:27 +00:00
parent f9229d98ae
commit c2e095f6f4
2 changed files with 6 additions and 1 deletions

View File

@ -118,3 +118,8 @@ for i in range(-10, 11):
o = pow(long(i),j) % k
n = pow(long(i),j,k)
if o != n: print 'Integer mismatch:', i,j,k
class TestRpow:
def __rpow__(self, other):
return None
None ** TestRpow() # Won't fail when __rpow__ invoked. SF bug #643260.

View File

@ -468,7 +468,7 @@ ternary_op(PyObject *v,
if (mv != NULL && NEW_STYLE_NUMBER(v))
slotv = NB_TERNOP(mv, op_slot);
if (w->ob_type != v->ob_type &&
mv != NULL && NEW_STYLE_NUMBER(w)) {
mw != NULL && NEW_STYLE_NUMBER(w)) {
slotw = NB_TERNOP(mw, op_slot);
if (slotw == slotv)
slotw = NULL;