From: Raymond Hettinger Date: Sat, 7 Dec 2002 10:15:38 +0000 (+0000) Subject: Fix typo in abstract.c which caused __rpow__ to not be invoked. X-Git-Tag: v2.2.3c1~203 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ac4ff87825309e218495218da9404b6e1362e44b;p=thirdparty%2FPython%2Fcpython.git Fix typo in abstract.c which caused __rpow__ to not be invoked. Added related testcase. Closes SF bug #643260. --- diff --git a/Lib/test/test_pow.py b/Lib/test/test_pow.py index 64c589005044..7b067c3a4147 100644 --- a/Lib/test/test_pow.py +++ b/Lib/test/test_pow.py @@ -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. diff --git a/Objects/abstract.c b/Objects/abstract.c index 1d574da6575f..8aee6ac124f4 100644 --- a/Objects/abstract.c +++ b/Objects/abstract.c @@ -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;