Example #1
0
 internal MethodCallExpression Reduce(ParameterExpression awaiterHolder, uint state, LabelTarget stateLabel, LabelTarget returnLabel, CodeInsertionPoint prologue)
 {
     prologue(Assign(awaiterHolder, GetAwaiter));
     prologue(Condition(new MoveNextExpression(awaiterHolder, state), Empty(), Return(returnLabel), typeof(void)));
     prologue(stateLabel.LandingSite());
     return(awaiterHolder.Call(GetResultMethod));
 }
Example #2
0
 internal FinallyStatement(Expression body, uint previousState, LabelTarget finallyLabel)
     : base(body)
 {
     prologue.AddFirst(finallyLabel.LandingSite());
     prologue.AddLast(new ExitGuardedCodeExpression(previousState));
 }