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