On Tue, Jan 25, 2011 at 11:49 AM, Vitja Makarov <vitja.maka...@gmail.com> wrote: > 2011/1/25 Stefan Behnel <stefan...@behnel.de>: >> Vitja Makarov, 25.01.2011 10:01: >>> 2011/1/25 Stefan Behnel: >>>> def x(): >>>> do_some_stuff() >>>> >>>> return # disable rest of code, e.g. during debugging >>>> >>>> unreachable_code() >>>> >>>> Cython shouldn't bother generating dead code here (even if the C compiler >>>> would drop it anyway). >>> >>> That should be rather easy to do: remove all the nodes in StatList >>> after: break, continue, return, raise, something else? >> >> Careful, this may involve recursive propagation through helper nodes. The >> tree isn't always as simple as that. >> >> I think an attribute "is_terminator" on Nodes might do the job. It's set to >> False by default and to True on all nodes you mentioned above, and is >> inherited by StatListNode if its last node is a terminator (while dropping >> its remaining child nodes at the same time) and by all helper nodes that >> contain StatListNodes. This could be done in analyse_types() (or maybe >> earlier?). >> > > May be it could be placed in StatNodeList.analyse_flow_control()?
This is crufty code that should probably be removed, I wouldn't count on using it too much. - Robert _______________________________________________ Cython-dev mailing list Cython-dev@codespeak.net http://codespeak.net/mailman/listinfo/cython-dev