On Sat, Nov 26, 2011 at 8:10 AM, Vitja Makarov <vitja.maka...@gmail.com> wrote: > Hi! > > I'm now trying to make inlined generator expressions work again. And I > found strange thing: > > inlined_generator_expression.pyx: > > def range_sum(int N): > """ > >>> sum(range(10)) > 45 > >>> range_sum(10) > 45 > """ > result = sum(i for i in range(N)) > return result > > 'i' is expected to be integer, but it isn't > > So I tried simple example and 'i' is inferred as object: > > def bar(int N): > cdef int result = 0 > for i in range(N): > result += i > return result > > So, I'm wondering should it be inferred as int or not?
It's not because it's used in an arithmetic expression that might overflow. You can decorate this with @cython.infer_types(True) or use doubles to get the inference you want. - Robert _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel