complex_coerce(): add explicit PyComplex_Check() test. Previously,
complex_coerce() would never be called with a complex argument,
because PyNumber_Coerce[Ex] doesn't bother calling the type's coercion
method if the values already have the same type. But now, of course,
it's possible to pass an instance of a complex *subtype*, and those
must be accepted.
diff --git a/Objects/complexobject.c b/Objects/complexobject.c
index a8419e3..a2ccadb 100644
--- a/Objects/complexobject.c
+++ b/Objects/complexobject.c
@@ -538,6 +538,11 @@
Py_INCREF(*pv);
return 0;
}
+ else if (PyComplex_Check(*pw)) {
+ Py_INCREF(*pv);
+ Py_INCREF(*pw);
+ return 0;
+ }
return 1; /* Can't do it */
}