[Cython] CF based type inference

mark florisson markflorisson88 at gmail.com
Wed May 9 14:43:17 CEST 2012


On 9 May 2012 13:39, Vitja Makarov <vitja.makarov at gmail.com> wrote:
> 2012/5/9 Vitja Makarov <vitja.makarov at gmail.com>:
>> 2012/5/9 Stefan Behnel <stefan_ml at behnel.de>:
>>> Stefan Behnel, 08.05.2012 14:24:
>>>> Vitja has rebased the type inference on the control flow
>>>
>>> On a related note, is this fixable now?
>>>
>>>  def test():
>>>      x = 1    # inferred as int
>>>      del x    # error: Deletion of non-Python, non-C++ object
>>>
>>> http://trac.cython.org/cython_trac/ticket/768
>>>
>>> It might be enough to infer "object" for names that are being del-ed for
>>> now, and to fix "del" The Right Way when we split entries.
>>>
>>
>> Do you mean that `x` should be inferred as "python object" in your example?
>>
>> Yes, we may add workaround for del <unspecified_type> case.
>> Del is represented now by NameDeletion with the same rhs and lhs.
>>
>> We can add method infer_type() to NameAssignment and use it instead of
>> Node.infer_type()
>>
>>
>
> Here I've tried to fix it, now deletion always infers as python_object
>
> https://github.com/vitek/cython/commit/225c9c60bed6406db46e87da31596e053056f8b7
>
>
> That may break C++ object deletion
>
> --
> vitja.
> _______________________________________________
> cython-devel mailing list
> cython-devel at python.org
> http://mail.python.org/mailman/listinfo/cython-devel

Memoryviews can be deleted as well.


More information about the cython-devel mailing list