New infrastructure for try/finally in iterators (still unused)
authorRaja R Harinath <harinath@hurrynot.org>
Fri, 4 Apr 2008 20:18:03 +0000 (20:18 -0000)
committerRaja R Harinath <harinath@hurrynot.org>
Fri, 4 Apr 2008 20:18:03 +0000 (20:18 -0000)
commit79b743ce15c86c565c1ad66938c7af302f2534ca
treea457b2d56069bb3259abc2480c3dd8fe63d282d2
parenta6eeaa200ec727cbf8267463651ddb4fa9f00243
New infrastructure for try/finally in iterators (still unused)

* flowanalysis.cs (FlowBranching.AddResumePoint): New.
(FlowBranchingToplevel.AddResumePoint): Hook into
ToplevelBlock.AddResumePoint.
(FlowBranchingTryCatch): Move CS01626 and CS01631 checks here.
(FlowBranchingException): Hook into ExceptionBlock.AddResumePoint.
* statement.cs (ToplevelBlock.AddResumePoint): New.  Collect
resume points and assign program-counter values.
(ExceptionBlock.AddResumePoint): Collect resume points for
de-muxer at the top of try block.
* iterators.cs (Yield.CheckContext): Simplify.
(Yield.Resolve): Use FlowBranching.AddResumePoint.

svn path=/trunk/mcs/; revision=99881
mcs/mcs/ChangeLog
mcs/mcs/flowanalysis.cs
mcs/mcs/iterators.cs
mcs/mcs/statement.cs