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?). Stefan _______________________________________________ Cython-dev mailing list Cython-dev@codespeak.net http://codespeak.net/mailman/listinfo/cython-dev