• Guido van Rossum's avatar
    PyNumber_CoerceEx: this took a shortcut (not doing anything) when the · 517c7d4f
    Guido van Rossum yazdı
    left and right type were of the same type and not classic instances.
    
    This shortcut is dangerous for proxy types, because it means that
    coerce(Proxy(1), Proxy(2.1)) leaves Proxy(1) unchanged rather than
    turning it into Proxy(1.0).
    
    In an ever-so-slight change of semantics, I now only take the shortcut
    when the left and right types are of the same type and don't have the
    CHECKTYPES feature.  It so happens that classic instances have this
    flag, so the shortcut is still skipped in this case (i.e. nothing
    changes for classic instances).  Proxies also have this flag set
    (otherwise implementing numeric operations on proxies would become
    nightmarish) and this means that the shortcut is also skipped there,
    as desired.  It so happens that int, long and float also have this
    flag set; that means that e.g. coerce(1, 1) will now invoke
    int_coerce().  This is fine: int_coerce() can deal with this, and I'm
    not worried about the performance; int_coerce() is only invoked when
    the user explicitly calls coerce(), which should be rarer than rare.
    517c7d4f
Adı
Son kayıt (commit)
Son güncelleme
Demo Loading commit data...
Doc Loading commit data...
Grammar Loading commit data...
Include Loading commit data...
Lib Loading commit data...
Mac Loading commit data...
Misc Loading commit data...
Modules Loading commit data...
Objects Loading commit data...
PC Loading commit data...
PCbuild Loading commit data...
Parser Loading commit data...
Python Loading commit data...
RISCOS Loading commit data...
Tools Loading commit data...
.cvsignore Loading commit data...
.hgtags Loading commit data...
LICENSE Loading commit data...
Makefile.pre.in Loading commit data...
PLAN.txt Loading commit data...
README Loading commit data...
configure Loading commit data...
configure.in Loading commit data...
install-sh Loading commit data...
pyconfig.h.in Loading commit data...
setup.py Loading commit data...