protected override void GenerateMoveNext(SynthesizedImplementationMethod moveNextMethod) { MethodSymbol setResultMethod = F.WellKnownMethod(WellKnownMember.System_Threading_Tasks_Sources_ManualResetValueTaskSourceCore_T__SetResult, isOptional: true); if ((object)setResultMethod != null) { setResultMethod = (MethodSymbol)setResultMethod.SymbolAsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type.TypeSymbol); } MethodSymbol setExceptionMethod = F.WellKnownMethod(WellKnownMember.System_Threading_Tasks_Sources_ManualResetValueTaskSourceCore_T__SetException, isOptional: true); if ((object)setExceptionMethod != null) { setExceptionMethod = (MethodSymbol)setExceptionMethod.SymbolAsMember((NamedTypeSymbol)_promiseOfValueOrEndField.Type.TypeSymbol); } var rewriter = new AsyncMethodToStateMachineRewriter( method: method, methodOrdinal: _methodOrdinal, asyncMethodBuilderMemberCollection: _asyncMethodBuilderMemberCollection, asyncIteratorInfo: new AsyncIteratorInfo(_promiseOfValueOrEndField, _currentField, setResultMethod, setExceptionMethod), F: F, state: stateField, builder: _builderField, hoistedVariables: hoistedVariables, nonReusableLocalProxies: nonReusableLocalProxies, synthesizedLocalOrdinals: synthesizedLocalOrdinals, slotAllocatorOpt: slotAllocatorOpt, nextFreeHoistedLocalSlot: nextFreeHoistedLocalSlot, diagnostics: diagnostics); rewriter.GenerateMoveNext(body, moveNextMethod); }
private void GenerateMoveNext(SynthesizedImplementationMethod moveNextMethod) { var rewriter = new AsyncMethodToStateMachineRewriter( method: method, asyncMethodBuilderMemberCollection: asyncMethodBuilderMemberCollection, F: F, state: stateField, builder: builderField, variablesCaptured: variablesCaptured, nonReusableLocalProxies: nonReusableLocalProxies, diagnostics: diagnostics); rewriter.GenerateMoveNext(body, moveNextMethod); }
private void GenerateMoveNext(SynthesizedImplementationMethod moveNextMethod) { var rewriter = new AsyncMethodToStateMachineRewriter( method: method, methodOrdinal: _methodOrdinal, asyncMethodBuilderMemberCollection: _asyncMethodBuilderMemberCollection, F: F, state: stateField, builder: _builderField, hoistedVariables: hoistedVariables, nonReusableLocalProxies: nonReusableLocalProxies, synthesizedLocalOrdinals: synthesizedLocalOrdinals, slotAllocatorOpt: slotAllocatorOpt, nextFreeHoistedLocalSlot: nextFreeHoistedLocalSlot, diagnostics: diagnostics); rewriter.GenerateMoveNext(body, moveNextMethod); }