summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2002-12-07 10:05:27 (GMT)
committerRaymond Hettinger <python@rcn.com>2002-12-07 10:05:27 (GMT)
commitc2e095f6f4bc7234442c704919429bfbe39b00c3 (patch)
tree0eb5e62645488448874ef6771c1ca6947d2f0ee0
parentf9229d98ae86aa9a68a34b6b3f4db0706be214f5 (diff)
downloadcpython-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.py5
-rw-r--r--Objects/abstract.c2
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;