Robert Bradshaw, 15.04.2010 08:07: > On Apr 14, 2010, at 10:55 PM, Stefan Behnel wrote: > >> Robert Bradshaw, 15.04.2010 01:39: >>> On Apr 14, 2010, at 4:31 PM, Lisandro Dalcin wrote: >>> >>>> On 14 April 2010 19:38, Greg Ewing wrote: >>>>> Stefan Behnel wrote: >>>>> >>>>>> Should builtins continue to accept None or should it behave like >>>>>> other >>>>>> extension types? >>>>> >>>>> Pyrex treats them just like any other extension type. In >>>>> fact the *are* just extension types that happen to be >>>>> predeclared. >>> >>> In Cython, builtin types are a bit special as it checks to make sure >>> it is exactly the specified type, not just a subclass. (Otherwise, >>> there's little room for optimization and so little point in declaring >>> them.) >>> >>>> I agree with Greg and Stefan, i.e., no special handling for builtin >>>> types. >>> >>> Yes, lets not an an exception to the exception... >> >> Ok, so it looks like we agree that this should raise an exception: >> >> def func(list L not None): >> >> How about this: >> >> def func(object obj not None): >> >> which should likely behave the same as this: >> >> def func(obj not None): >> >> I assume that this should also be allowed and behave like the other >> extension types, right? > > No, I would actually make an exception here--normally > > def func(Type x not None) > > throws an error if and only if not isinstance(x, Type). The "object" > type is different is not really treated like an extension type. If > something is "[object] obj not None" then I think it should actually > reject None.
;) that's exactly what I meant. Stefan _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
