diff options
author | Raymond Hettinger <python@rcn.com> | 2002-12-07 10:05:27 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2002-12-07 10:05:27 (GMT) |
commit | c2e095f6f4bc7234442c704919429bfbe39b00c3 (patch) | |
tree | 0eb5e62645488448874ef6771c1ca6947d2f0ee0 | |
parent | f9229d98ae86aa9a68a34b6b3f4db0706be214f5 (diff) | |
download | cpython-c2e095f6f4bc7234442c704919429bfbe39b00c3.zip cpython-c2e095f6f4bc7234442c704919429bfbe39b00c3.tar.gz cpython-c2e095f6f4bc7234442c704919429bfbe39b00c3.tar.bz2 |
Fix typo in abstract.c which caused __rpow__ to not be invoked.
Added related testcase.
Closes SF bug #643260.
-rw-r--r-- | Lib/test/test_pow.py | 5 | ||||
-rw-r--r-- | Objects/abstract.c | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/Lib/test/test_pow.py b/Lib/test/test_pow.py index 2b3465c..e88a63d 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 5f98a4c..e77cde3 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; |