Dag Sverre Seljebotn wrote: > Stefan Behnel wrote: >> What about code like this: >> >> def test(a): >> cdef int c >> if a: >> c = 1 >> if not a: >> c = 2 >> > > As for the example, it is a "best-effort" thing. If no assignments are > flagged as first, then the optimization just doesn't happen, which is > the likely outcome of your example. However, if you come up with an > algorithm to check this, then in this case you can flag them both as first.
In fact, in this example there is no first assignment, as you could overload __not__ and have True in both cases :-) In general such sophisticated control only works for c-typed branch tests which makes me doubt the value of it...? But it doesn't look horrendously difficult to write code tackling it either...but that's another GSoC :-) -- Dag Sverre _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
