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

Reply via email to