130 references to StateMachineState
Microsoft.CodeAnalysis (26)
CodeGen\StateMachineStateDebugInfo.cs (11)
15public readonly StateMachineState StateNumber; 17public StateMachineStateDebugInfo(int syntaxOffset, StateMachineState stateNumber) 39public readonly StateMachineState? FirstUnusedIncreasingStateMachineState; 48public readonly StateMachineState? FirstUnusedDecreasingStateMachineState; 50private StateMachineStatesDebugInfo(ImmutableArray<StateMachineStateDebugInfo> states, StateMachineState? firstUnusedIncreasingStateMachineState, StateMachineState? firstUnusedDecreasingStateMachineState) 59StateMachineState? firstUnusedIncreasingStateMachineState = null, firstUnusedDecreasingStateMachineState = null; 72var maxState = stateInfos.Max(info => info.StateNumber) + 1; 73var minState = stateInfos.Min(info => info.StateNumber) - 1; 75firstUnusedIncreasingStateMachineState = (firstUnusedIncreasingStateMachineState != null) ? (StateMachineState)Math.Max((int)firstUnusedIncreasingStateMachineState.Value, (int)maxState) : maxState; 79firstUnusedDecreasingStateMachineState = (firstUnusedDecreasingStateMachineState != null) ? (StateMachineState)Math.Min((int)firstUnusedDecreasingStateMachineState.Value, (int)minState) : minState;
CodeGen\VariableSlotAllocator.cs (2)
89public abstract StateMachineState? GetFirstUnusedStateMachineState(bool increasing); 101public abstract bool TryGetPreviousStateMachineState(SyntaxNode syntax, out StateMachineState state);
Emit\EditAndContinue\DefinitionMap.cs (4)
175IReadOnlyDictionary<int, StateMachineState>? stateMachineStateMap = null; 176StateMachineState? firstUnusedIncreasingStateMachineState = null; 177StateMachineState? firstUnusedDecreasingStateMachineState = null; 391out IReadOnlyDictionary<int, StateMachineState>? map)
Emit\EditAndContinue\EncVariableSlotAllocator.cs (8)
38private readonly IReadOnlyDictionary<int, StateMachineState>? _stateMachineStateMap; // SyntaxOffset -> State Ordinal 39private readonly StateMachineState? _firstUnusedDecreasingStateMachineState; 40private readonly StateMachineState? _firstUnusedIncreasingStateMachineState; 61IReadOnlyDictionary<int, StateMachineState>? stateMachineStateMap, 62StateMachineState? firstUnusedIncreasingStateMachineState, 63StateMachineState? firstUnusedDecreasingStateMachineState, 332public override StateMachineState? GetFirstUnusedStateMachineState(bool increasing) 335public override bool TryGetPreviousStateMachineState(SyntaxNode syntax, out StateMachineState state)
Emit\EditAndContinueMethodDebugInformation.cs (1)
334mapBuilder.Add(new StateMachineStateDebugInfo(syntaxOffset, (StateMachineState)stateNumber));
Microsoft.CodeAnalysis.CSharp (64)
Lowering\AsyncRewriter\AsyncIteratorMethodToStateMachineRewriter.cs (7)
42/// States for `yield return` are decreasing from <see cref="StateMachineState.InitialAsyncIteratorState"/>. 74firstState: StateMachineState.FirstResumableAsyncIteratorState, 219return F.IntEqual(F.Local(cachedState), F.Literal(StateMachineState.NotStartedOrRunningState)); 238AddState(StateMachineState.InitialAsyncIteratorState, out GeneratedLabelSymbol resumeLabel); 246GenerateSetBothStates(StateMachineState.NotStartedOrRunningState), // this.state = cachedState = -1; 265AddResumableState(_iteratorStateAllocator, node.Syntax, out var stateNumber, out GeneratedLabelSymbol resumeLabel); 290GenerateSetBothStates(StateMachineState.NotStartedOrRunningState));
Lowering\AsyncRewriter\AsyncMethodToStateMachineRewriter.cs (6)
128protected sealed override StateMachineState FirstIncreasingResumableState 129=> StateMachineState.FirstResumableAsyncState; 165var stateDone = F.Assignment(F.Field(F.This(), stateField), F.Literal(StateMachineState.FinishedState)); 247F.ExpressionStatement(F.AssignmentExpression(F.Field(F.This(), stateField), F.Literal(StateMachineState.FinishedState))); 455AddResumableState(awaiterTemp.GetDeclaratorSyntax(), out StateMachineState stateNumber, out GeneratedLabelSymbol resumeLabel); 509GenerateSetBothStates(StateMachineState.NotStartedOrRunningState));
Lowering\AsyncRewriter\AsyncRewriter.AsyncIteratorRewriter.cs (8)
203var initialState = _isEnumerable ? StateMachineState.FinishedState : StateMachineState.InitialAsyncIteratorState; 331F.IntEqual(F.InstanceField(stateField), F.Literal(StateMachineState.FinishedState)), 441F.IntGreaterThanOrEqual(F.InstanceField(stateField), F.Literal(StateMachineState.NotStartedOrRunningState)), 447F.IntEqual(F.InstanceField(stateField), F.Literal(StateMachineState.FinishedState)), 659GenerateIteratorGetEnumerator(IAsyncEnumerableOfElementType_GetEnumerator, ref managedThreadId, initialState: StateMachineState.InitialAsyncIteratorState); 662protected override void GenerateResetInstance(ArrayBuilder<BoundStatement> builder, StateMachineState initialState)
Lowering\AsyncRewriter\AsyncRewriter.cs (1)
242F.Literal(StateMachineState.NotStartedOrRunningState)));
Lowering\IteratorRewriter\IteratorMethodToStateMachineRewriter.cs (9)
53private StateMachineState _nextFinalizeState; 72_nextFinalizeState = slotAllocatorOpt?.GetFirstUnusedStateMachineState(increasing: false) ?? StateMachineState.FirstIteratorFinalizeState; 79protected override StateMachineState FirstIncreasingResumableState 80=> StateMachineState.FirstResumableIteratorState; 97AddState(StateMachineState.InitialIteratorState, out GeneratedLabelSymbol initialLabel); 120F.Assignment(F.Field(F.This(), stateField), F.Literal(StateMachineState.NotStartedOrRunningState)), 336AddResumableState(node.Syntax, out StateMachineState stateNumber, out GeneratedLabelSymbol resumeLabel); 467if (slotAllocatorOpt?.TryGetPreviousStateMachineState(syntax, out var finalizeState) != true) 493private IteratorFinallyMethodSymbol MakeSynthesizedFinally(StateMachineState finalizeState)
Lowering\IteratorRewriter\IteratorMethodToStateMachineRewriter.IteratorFinallyFrame.cs (7)
19public readonly StateMachineState finalizeState; 31public Dictionary<StateMachineState, IteratorFinallyFrame> knownStates; 45StateMachineState finalizeState, 60this.finalizeState = StateMachineState.NotStartedOrRunningState; 68public void AddState(StateMachineState state) 79private void AddState(StateMachineState state, IteratorFinallyFrame innerHandler) 84this.knownStates = knownStates = new Dictionary<StateMachineState, IteratorFinallyFrame>();
Lowering\IteratorRewriter\IteratorRewriter.cs (4)
262var getEnumeratorGeneric = GenerateIteratorGetEnumerator(IEnumerableOfElementType_GetEnumerator, ref managedThreadId, StateMachineState.InitialIteratorState); 305var initialState = _isEnumerable ? StateMachineState.FinishedState : StateMachineState.InitialIteratorState;
Lowering\StateMachineRewriter\MethodToStateMachineRewriter.cs (12)
64private Dictionary<LabelSymbol, List<StateMachineState>> _dispatches = new(); 162protected abstract StateMachineState FirstIncreasingResumableState { get; } 209protected void AddResumableState(SyntaxNode awaitOrYieldReturnSyntax, out StateMachineState state, out GeneratedLabelSymbol resumeLabel) 212protected void AddResumableState(ResumableStateMachineStateAllocator allocator, SyntaxNode awaitOrYieldReturnSyntax, out StateMachineState stateNumber, out GeneratedLabelSymbol resumeLabel) 219protected void AddStateDebugInfo(SyntaxNode node, StateMachineState state) 227protected void AddState(StateMachineState stateNumber, out GeneratedLabelSymbol resumeLabel) 229_dispatches ??= new Dictionary<LabelSymbol, List<StateMachineState>>(); 232_dispatches.Add(resumeLabel, new List<StateMachineState> { stateNumber }); 856oldDispatches ??= new Dictionary<LabelSymbol, List<StateMachineState>>(); 857oldDispatches.Add(dispatchLabel, new List<StateMachineState>(from kv in _dispatches.Values from n in kv orderby n select n)); 892return F.IntLessThan(F.Local(cachedState), F.Literal(StateMachineState.FirstUnusedState)); 898protected BoundExpressionStatement GenerateSetBothStates(StateMachineState stateNumber)
Lowering\StateMachineRewriter\ResumableStateMachineStateAllocator.cs (5)
19private readonly StateMachineState _firstState; 24private StateMachineState _nextState; 37public ResumableStateMachineStateAllocator(VariableSlotAllocator? slotAllocator, StateMachineState firstState, bool increasing) 46public StateMachineState AllocateState(SyntaxNode awaitOrYieldReturnSyntax) 52if (_slotAllocator?.TryGetPreviousStateMachineState(awaitOrYieldReturnSyntax, out var state) == true)
Lowering\StateMachineRewriter\StateMachineRewriter.cs (3)
388protected SynthesizedImplementationMethod GenerateIteratorGetEnumerator(MethodSymbol getEnumeratorMethod, ref BoundExpression managedThreadId, StateMachineState initialState) 441F.IntEqual(F.Field(F.This(), stateField), F.Literal(StateMachineState.FinishedState)), 490protected virtual void GenerateResetInstance(ArrayBuilder<BoundStatement> builder, StateMachineState initialState)
Lowering\SyntheticBoundNodeFactory.cs (1)
680public BoundLiteral Literal(StateMachineState value)
Symbols\Synthesized\GeneratedNames.cs (1)
36internal static string MakeIteratorFinallyMethodName(StateMachineState finalizeState)
Microsoft.CodeAnalysis.CSharp.ExpressionEvaluator.ExpressionCompiler (2)
EEAssemblyBuilder.cs (2)
176public override bool TryGetPreviousStateMachineState(SyntaxNode awaitOrYieldSyntax, out StateMachineState state) 182public override StateMachineState? GetFirstUnusedStateMachineState(bool increasing) => null;
Microsoft.CodeAnalysis.VisualBasic (36)
CodeGen\ResumableStateMachineStateAllocator.vb (5)
23Private _nextState As StateMachineState 36Public Sub New(slotAllocator As VariableSlotAllocator, firstState As StateMachineState, increasing As Boolean) 44Public Function AllocateState(awaitOrYieldReturnSyntax As SyntaxNode) As StateMachineState 48Dim state As StateMachineState 59_nextState = CType(_nextState + direction, StateMachineState)
Lowering\AsyncRewriter\AsyncRewriter.AsyncMethodToClassRewriter.Await.vb (2)
113Dim state As StateMachineState = 0 256Me.F.AssignmentExpression(Me.F.Local(Me.CachedState, True), Me.F.Literal(StateMachineState.NotStartedOrRunningState))))
Lowering\AsyncRewriter\AsyncRewriter.AsyncMethodToClassRewriter.vb (4)
91Protected Overrides ReadOnly Property FirstIncreasingResumableState As StateMachineState 93Return StateMachineState.FirstResumableAsyncState 180Me.F.Assignment(Me.F.Field(Me.F.Me(), Me.StateField, True), Me.F.Literal(StateMachineState.FinishedState)), 196Me.F.AssignmentExpression(Me.F.Local(Me.CachedState, True), Me.F.Literal(StateMachineState.FinishedState)))
Lowering\AsyncRewriter\AsyncRewriter.vb (1)
219Me.F.Literal(StateMachineState.NotStartedOrRunningState)))
Lowering\IteratorRewriter\IteratorRewriter.IteratorMethodToClassRewriter.vb (7)
41Protected Overrides ReadOnly Property FirstIncreasingResumableState As StateMachineState 43Return StateMachineState.FirstResumableIteratorState 61AddState(StateMachineState.InitialIteratorState, initialLabel) 86F.Assignment(F.Field(F.Me, Me.StateField, True), Me.F.AssignmentExpression(Me.F.Local(Me.CachedState, True), Me.F.Literal(StateMachineState.NotStartedOrRunningState))), 110F.Assignment(F.Field(F.Me, Me.StateField, True), F.Literal(StateMachineState.NotStartedOrRunningState)), 193Dim stateNumber As StateMachineState = 0 204F.Assignment(F.Field(F.Me, Me.StateField, True), F.AssignmentExpression(F.Local(Me.CachedState, True), F.Literal(StateMachineState.NotStartedOrRunningState)))
Lowering\IteratorRewriter\IteratorRewriter.vb (4)
218F.IntEqual(F.Field(F.Me, StateField, False), F.Literal(StateMachineState.FinishedState)), 222F.Assignment(F.Field(F.Me, StateField, True), F.Literal(StateMachineState.FirstUnusedState)), 326Dim initialState = If(_isEnumerable, StateMachineState.FinishedState, StateMachineState.FirstUnusedState)
Lowering\StateMachineRewriter\StateMachineRewriter.StateMachineMethodToClassRewriter.vb (12)
22Private _nextFinalizerState As StateMachineState 64Private _currentFinalizerState As StateMachineState = StateMachineState.NotStartedOrRunningState 102_nextFinalizerState = If(slotAllocatorOpt?.GetFirstUnusedStateMachineState(increasing:=False), StateMachineState.FirstIteratorFinalizeState) 109Protected MustOverride ReadOnly Property FirstIncreasingResumableState As StateMachineState 159Protected Sub AddResumableState(awaitOrYieldReturnSyntax As SyntaxNode, <Out> ByRef state As StateMachineState, <Out> ByRef resumeLabel As GeneratedLabelSymbol) 166_nextFinalizerState = CType(_nextFinalizerState - 1, StateMachineState) 177Protected Sub AddStateDebugInfo(node As SyntaxNode, state As StateMachineState) 336Dim oldFinalizerState As StateMachineState = Me._currentFinalizerState 340Me._currentFinalizerState = StateMachineState.NotStartedOrRunningState 363F.AssignmentExpression(F.Local(Me.CachedState, True), F.Literal(StateMachineState.NotStartedOrRunningState))), 391Me.F.Literal(StateMachineState.FirstUnusedState)),
Lowering\SyntheticBoundNodeFactory.vb (1)
450Public Function Literal(value As StateMachineState) As BoundLiteral
Microsoft.CodeAnalysis.VisualBasic.ExpressionEvaluator.ExpressionCompiler (2)
EEAssemblyBuilder.vb (2)
193Public Overrides Function TryGetPreviousStateMachineState(awaitOrYieldSyntax As SyntaxNode, ByRef state As StateMachineState) As Boolean 198Public Overrides Function GetFirstUnusedStateMachineState(increasing As Boolean) As StateMachineState?