1 write to F
Microsoft.CodeAnalysis.VisualBasic (1)
Lowering\StateMachineRewriter\StateMachineRewriter.StateMachineMethodToClassRewriter.vb (1)
92
Me.
F
= F
327 references to F
Microsoft.CodeAnalysis.VisualBasic (327)
Lowering\AsyncRewriter\AsyncRewriter.AsyncMethodToClassRewriter.Await.vb (83)
35
Dim awaiterTemp As LocalSymbol = Me.
F
.SynthesizedLocal(awaiterType, kind:=SynthesizedLocalKind.Awaiter, syntax:=node.Syntax)
41
PlaceholderReplacementMap.Add(awaiterInstancePlaceholder, Me.
F
.Local(awaiterTemp, True))
77
Me.
F
.If(
78
condition:=Me.
F
.Convert(Me.
F
.SpecialType(SpecialType.System_Boolean), rewrittenIsCompleted),
79
thenClause:=Me.
F
.StatementList(),
84
Me.
F
.If(
85
condition:=Me.
F
.Not(rewrittenIsCompleted),
91
Me.
F
.AssignmentExpression(Me.
F
.Local(awaiterTemp, True), Me.
F
.Null(awaiterTemp.Type))
97
Dim resultTemp As LocalSymbol = Me.
F
.SynthesizedLocal(rewrittenType)
98
onAwaitFinished = Me.
F
.Sequence(resultTemp,
99
Me.
F
.AssignmentExpression(Me.
F
.Local(resultTemp, True), rewrittenGetResult),
101
Me.
F
.Local(resultTemp, False))
106
onAwaitFinished = Me.
F
.Sequence(rewrittenGetResult, clearAwaiterTemp)
109
Return builder.BuildSequenceAndFree(Me.
F
, onAwaitFinished)
120
awaiterFieldType = Me.
F
.SpecialType(SpecialType.System_Object)
128
Me.
F
.Assignment(
129
Me.
F
.Field(Me.
F
.Me(), Me.StateField, True),
130
Me.
F
.AssignmentExpression(Me.
F
.Local(Me.CachedState, True), Me.
F
.Literal(state))))
133
blockBuilder.Add(Me.
F
.NoOp(NoOpStatementFlavor.AwaitYieldPoint))
137
Me.
F
.Assignment(
138
Me.
F
.Field(Me.
F
.Me(), awaiterField, True),
140
DirectCast(Me.
F
.Local(awaiterTemp, False), BoundExpression),
141
Me.
F
.Convert(awaiterFieldType, Me.
F
.Local(awaiterTemp, False)))))
148
Dim builderFieldAsRValue As BoundExpression = Me.
F
.Field(Me.
F
.Me(), Me._builder, False)
150
Dim ICriticalNotifyCompletion = Me.
F
.WellKnownType(WellKnownType.System_Runtime_CompilerServices_ICriticalNotifyCompletion)
161
Dim asCriticalNotifyCompletion As LocalSymbol = Me.
F
.SynthesizedLocal(ICriticalNotifyCompletion)
163
Me.
F
.SynthesizedLocal(Me.
F
.WellKnownType(WellKnownType.System_Runtime_CompilerServices_INotifyCompletion))
165
Dim awaiterTempAsRValue As BoundLocal = Me.
F
.Local(awaiterTemp, False)
166
Dim criticalNotifyCompletionAsLValue As BoundLocal = Me.
F
.Local(asCriticalNotifyCompletion, True)
167
Dim notifyCompletionAsLValue As BoundLocal = Me.
F
.Local(asNotifyCompletion, True)
172
Me.
F
.TryCast(awaiterTempAsRValue, asCriticalNotifyCompletion.Type),
177
Me.
F
.ExpressionStatement(
182
ImmutableArray.Create(Of TypeSymbol)(asCriticalNotifyCompletion.Type, Me.
F
.Me().Type),
183
{criticalNotifyCompletionAsLValue, Me.
F
.ReferenceOrByrefMe()}))
189
Me.
F
.DirectCast(awaiterTempAsRValue, asNotifyCompletion.Type),
194
Me.
F
.ExpressionStatement(
199
ImmutableArray.Create(Of TypeSymbol)(asNotifyCompletion.Type, Me.
F
.Me().Type),
200
{notifyCompletionAsLValue, Me.
F
.ReferenceOrByrefMe()}))
203
Me.
F
.Block(
206
Me.
F
.If(
207
condition:=Me.
F
.Not(Me.
F
.ReferenceIsNothing(Me.
F
.Local(asCriticalNotifyCompletion, False))),
209
elseClause:=Me.
F
.Block(
217
Dim useSiteInfo As New CompoundUseSiteInfo(Of AssemblySymbol)(Me.
F
.Diagnostics, Me.CompilationState.Compilation.Assembly)
225
Me.
F
.Diagnostics.Add(Me.
F
.Syntax, useSiteInfo)
228
Me.
F
.ExpressionStatement(
233
ImmutableArray.Create(Of TypeSymbol)(awaiterType, Me.
F
.Me().Type),
234
{Me.
F
.Local(awaiterTemp, True), Me.
F
.ReferenceOrByrefMe()})))
243
blockBuilder.Add(Me.
F
.Goto(Me._exitLabel))
246
blockBuilder.Add(Me.
F
.Label(resumeLabel))
250
blockBuilder.Add(Me.
F
.NoOp(NoOpStatementFlavor.AwaitResumePoint))
254
Me.
F
.Assignment(
255
Me.
F
.Field(Me.
F
.Me(), Me.StateField, True),
256
Me.
F
.AssignmentExpression(Me.
F
.Local(Me.CachedState, True), Me.
F
.Literal(StateMachineState.NotStartedOrRunningState))))
262
Me.
F
.Assignment(
263
Me.
F
.Local(awaiterTemp, True),
265
DirectCast(Me.
F
.Field(Me.
F
.Me(), awaiterField, False), BoundExpression),
266
Me.
F
.Convert(awaiterTemp.Type, Me.
F
.Field(Me.
F
.Me(), awaiterField, False)))))
272
Me.
F
.Assignment(
273
Me.
F
.Field(Me.
F
.Me(), awaiterField, True),
274
Me.
F
.Null(awaiterField.Type)))
276
Return Me.
F
.Block(blockBuilder.ToImmutableAndFree())
Lowering\AsyncRewriter\AsyncRewriter.AsyncMethodToClassRewriter.Expressions.vb (54)
79
Return builder.BuildSequenceAndFree(Me.
F
, valueOpt)
89
Return Me.
F
.ExpressionStatement(expression)
106
Return builder.BuildSequenceAndFree(Me.
F
,
130
Return builder.BuildSequenceAndFree(Me.
F
,
175
Dim tempLocal As LocalSymbol = Me.
F
.SynthesizedLocal(rewritten.Type)
180
Me.
F
.If(condition:=spilledLeft,
182
elseClause:=MakeAssignmentStatement(Me.
F
.Literal(False), tempLocal)),
183
Me.
F
.If(condition:=spilledLeft,
184
thenClause:=MakeAssignmentStatement(Me.
F
.Literal(True), tempLocal),
187
Return builder.BuildSequenceAndFree(Me.
F
,
188
Me.
F
.Local(tempLocal, False))
192
Return builder.BuildSequenceAndFree(Me.
F
,
242
Return builder.BuildSequenceAndFree(Me.
F
,
306
Return Me.
F
.Sequence(initializersBuilder.ToArrayAndFree)
433
Dim tempLocal As LocalSymbol = Me.
F
.SynthesizedLocal(rewritten.Type)
438
Me.
F
.If(
443
sequenceValueOpt = Me.
F
.Local(tempLocal, False)
446
Me.
F
.If(
454
Return builder.BuildSequenceAndFree(Me.
F
, sequenceValueOpt)
462
Return RewriteSpillSequenceIntoBlock(spill, False, Me.
F
.Assignment(Me.
F
.Local(temp, True), spill.ValueOpt))
464
Return Me.
F
.Assignment(Me.
F
.Local(temp, True), expression)
470
Return Me.
F
.Assignment(Me.
F
.Local(temp, True), expression)
578
receiverLocal = Me.
F
.SynthesizedLocal(receiver.Type)
581
nullCheckTarget = Me.
F
.AssignmentExpression(Me.
F
.Local(receiverLocal, isLValue:=True), receiver.MakeRValue())
582
capturedReceiver = Me.
F
.Local(receiverLocal, isLValue:=True)
596
placeholderReplacement = New BoundComplexConditionalAccessReceiver(Me.
F
.Syntax,
618
condition = Me.
F
.ReferenceIsNotNothing(nullCheckTarget)
627
Dim notReferenceType = Me.
F
.ReferenceIsNotNothing(Me.
F
.DirectCast(Me.
F
.DirectCast(Me.
F
.Null(),
629
Me.
F
.SpecialType(SpecialType.System_Object)))
631
condition = Me.
F
.LogicalOrElse(notReferenceType,
632
Me.
F
.ReferenceIsNotNothing(Me.
F
.DirectCast(nullCheckTarget,
633
Me.
F
.SpecialType(SpecialType.System_Object))))
640
Me.
F
.If(condition:=condition,
643
Return builder.BuildSequenceAndFree(Me.
F
, expression:=Nothing)
646
Dim tempLocal As LocalSymbol = Me.
F
.SynthesizedLocal(type)
650
builder.AddStatement(Me.
F
.If(condition:=condition,
654
Return builder.BuildSequenceAndFree(Me.
F
, expression:=Me.
F
.Local(tempLocal, False))
737
Return builder.BuildSequenceAndFree(Me.
F
,
786
Return builder.BuildSequenceAndFree(Me.
F
,
839
Dim tempLocal As LocalSymbol = Me.
F
.SynthesizedLocal(rewritten.Type)
845
Me.
F
.If(
846
condition:=Me.
F
.ReferenceIsNothing(Me.
F
.Local(tempLocal, False)),
849
Return builder.BuildSequenceAndFree(Me.
F
,
850
Me.
F
.Local(tempLocal, False))
Lowering\AsyncRewriter\AsyncRewriter.AsyncMethodToClassRewriter.Spilling.vb (14)
278
builder.AddStatement(Me.
F
.ExpressionStatement(sideEffect))
306
builder.AddStatement(Me.
F
.ExpressionStatement(array))
335
builder.AddStatement(Me.
F
.ExpressionStatement(fieldAccess))
388
Dim initialization As BoundStatement = Me.
F
.Assignment(Me.
F
.Field(Me.
F
.Me(), spillField, True), expr)
396
Return Me.
F
.Field(Me.
F
.Me(), spillField, False)
415
newStatements.Add(Me.
F
.ExpressionStatement(spill.ValueOpt))
426
newStatements.Add(
F
.Assignment(
F
.Field(
F
.Me(), field, True),
F
.Null(field.Type)))
432
Return Me.
F
.Block(spill.Locals, newStatements.ToImmutableAndFree())
Lowering\AsyncRewriter\AsyncRewriter.AsyncMethodToClassRewriter.Statements.vb (9)
32
Return Me.
F
.Block(
36
Me.
F
.Assignment(Me.
F
.Local(Me._exprRetValue, True), spill.ValueOpt)),
37
Me.
F
.Goto(Me._exprReturnLabel))
39
Return Me.
F
.Block(
40
Me.
F
.Assignment(
41
Me.
F
.Local(Me._exprRetValue, True), expression),
42
Me.
F
.Goto(Me._exprReturnLabel))
46
Return
F
.Goto(Me._exprReturnLabel)
Lowering\AsyncRewriter\AsyncRewriter.AsyncMethodToClassRewriter.vb (43)
85
Me._exprRetValue = Me.
F
.SynthesizedLocal(Me._owner._resultType, SynthesizedLocalKind.StateMachineReturnValue, F.Syntax)
112
If Me.SlotAllocatorOpt Is Nothing OrElse Not Me.SlotAllocatorOpt.TryGetPreviousAwaiterSlotIndex(
F
.CompilationState.ModuleBuilderOpt.Translate(awaiterType,
F
.Syntax,
F
.Diagnostics.DiagnosticBag),
F
.Diagnostics.DiagnosticBag, slotIndex) Then
118
result = Me.
F
.StateMachineField(awaiterType, Me._method, fieldName, SynthesizedLocalKind.AwaiterField, slotIndex, accessibility:=Accessibility.Friend)
128
Me.
F
.CurrentMethod = moveNextMethod
158
Me.
F
.Assignment(
159
Me.
F
.Local(Me.CachedState, True),
160
Me.
F
.Field(Me.
F
.Me(), Me.StateField, False)))
166
Dim exceptionLocal = Me.
F
.SynthesizedLocal(Me.
F
.WellKnownType(WellKnownType.System_Exception))
168
Me.
F
.Try(
169
Me.
F
.Block(
175
Me.
F
.CatchBlocks(
176
Me.
F
.Catch(
178
Me.
F
.Block(
180
Me.
F
.Assignment(Me.
F
.Field(Me.
F
.Me(), Me.StateField, True), Me.
F
.Literal(StateMachineState.FinishedState)),
181
Me.
F
.ExpressionStatement(
183
Me.
F
.Field(Me.
F
.Me(), Me._builder, False),
186
Me.
F
.Local(exceptionLocal, False))),
187
Me.
F
.Goto(Me._exitLabel)),
191
bodyBuilder.Add(Me.
F
.Label(Me._exprReturnLabel))
194
Dim stateDone = Me.
F
.Assignment(
195
Me.
F
.Field(Me.
F
.Me(), Me.StateField, True),
196
Me.
F
.AssignmentExpression(Me.
F
.Local(Me.CachedState, True), Me.
F
.Literal(StateMachineState.FinishedState)))
201
bodyBuilder.Add(Me.
F
.SequencePointWithSpan(block, block.EndBlockStatement.Span, stateDone))
207
Me.
F
.ExpressionStatement(
209
Me.
F
.Field(Me.
F
.Me(), Me._builder, False),
213
{Me.
F
.Local(Me._exprRetValue, False)}, Array.Empty(Of BoundExpression)()))))
216
bodyBuilder.Add(Me.
F
.Label(Me._exitLabel))
217
bodyBuilder.Add(Me.
F
.Return())
220
Dim newBody = Me.
F
.Block(
240
Return Me.
F
.Goto(Me._exitLabel)
Lowering\AsyncRewriter\AsyncRewriter.CapturedSymbolOrExpression.vb (6)
58
Return New BoundLiteral(rewriter.
F
.Syntax, Me._constValue, Me._type)
73
Dim syntax As SyntaxNode = rewriter.
F
.Syntax
76
Return rewriter.
F
.Field(framePointer, proxyFieldParented, isLValue)
128
rewriter.
F
.AssignmentExpression(
157
Return rewriter.
F
.Field(newReceiverOpt, Me.Field, isLValue)
194
Return rewriter.
F
.ArrayAccess(arrayPointer, isLValue, indices)
Lowering\IteratorRewriter\IteratorRewriter.IteratorMethodToClassRewriter.vb (76)
58
F
.CurrentMethod = moveNextMethod
63
Me._methodValue = Me.
F
.SynthesizedLocal(
F
.CurrentMethod.ReturnType, SynthesizedLocalKind.StateMachineReturnValue,
F
.Syntax)
78
F
.CloseMethod(
79
F
.Block(
82
F
.Assignment(Me.
F
.Local(Me.CachedState, True),
F
.Field(
F
.Me, Me.StateField, False)),
85
F
.Label(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))),
95
F
.CurrentMethod = disposeMethod
96
Dim breakLabel =
F
.GenerateLabel("break")
100
Select
F
.SwitchSection(
102
F
.Assignment(
F
.Field(
F
.Me, Me.StateField, True),
F
.Literal(Value)),
103
F
.Goto(breakLabel))).ToArray()
106
F
.CloseMethod(
F
.Block(
107
F
.Select(
108
F
.Field(
F
.Me, Me.StateField, False),
110
F
.Assignment(
F
.Field(
F
.Me, Me.StateField, True),
F
.Literal(StateMachineState.NotStartedOrRunningState)),
111
F
.Label(breakLabel),
112
F
.ExpressionStatement(
F
.Call(
F
.Me, moveNextMethod)),
113
F
.Return()
116
F
.CloseMethod(
F
.Return())
123
Return
F
.StatementList()
128
Return
F
.Block(
130
F
.Assignment(
F
.Local(Me._methodValue, True),
F
.Literal(True)),
131
F
.Label(Me._exitLabel),
132
F
.Return(Me.
F
.Local(Me._methodValue, False))
138
Dim result =
F
.Literal(Not finished)
142
Return
F
.Return(result)
148
Me._exitLabel =
F
.GenerateLabel("exitLabel")
151
Return Me.
F
.Block(
152
Me.
F
.Assignment(Me.
F
.Local(Me._methodValue, True), result),
153
Me.
F
.Goto(Me._exitLabel)
197
Return
F
.SequencePoint(
199
F
.Block(
200
F
.Assignment(
F
.Field(
F
.Me, Me._current, True), DirectCast(Visit(node.Expression), BoundExpression)),
201
F
.Assignment(
F
.Field(
F
.Me, Me.StateField, True),
F
.AssignmentExpression(
F
.Local(Me.CachedState, True),
F
.Literal(stateNumber))),
203
F
.Label(resumeLabel),
204
F
.Assignment(
F
.Field(
F
.Me, Me.StateField, True),
F
.AssignmentExpression(
F
.Local(Me.CachedState, True),
F
.Literal(StateMachineState.NotStartedOrRunningState)))
217
Dim syntax As SyntaxNode = Me.
F
.Syntax
220
Return Me.
F
.Field(framePointer, proxyFieldParented, origExpression.IsLValue)
Lowering\StateMachineRewriter\StateMachineRewriter.StateMachineMethodToClassRewriter.vb (42)
124
Return Me.
F
.CurrentType.TypeSubstitution
130
Return Me.
F
.CurrentMethod
136
Return Me.
F
.TopLevelMethod
141
Dim oldSyntax As SyntaxNode = Me.
F
.Syntax
142
Me.
F
.Syntax = syntax
143
Dim result = Me.
F
.Me()
145
Me.
F
.Syntax = oldSyntax
190
resumeLabel =
F
.GenerateLabel(ResumeLabelName)
204
Select
F
.SwitchSection(kv.Value,
F
.Goto(kv.Key))
206
Dim result =
F
.Select(
F
.Local(CachedState, isLValue:=False), sections)
217
result =
F
.Block(result, missingStateDispatch)
225
Return _resumableStateAllocator.GenerateThrowMissingStateDispatch(
F
,
F
.Local(CachedState, isLValue:=False), EncMissingStateMessage)
235
Dim oldSyntax As SyntaxNode = Me.
F
.Syntax
236
Me.
F
.Syntax = node.Syntax
238
Me.
F
.Syntax = oldSyntax
291
Return Me.
F
.Block(New BoundStateMachineScope(Me.
F
.Syntax, hoistedLocals, statement).MakeCompilerGenerated)
343
Dim tryBlock As BoundBlock = Me.
F
.Block(DirectCast(Me.Visit(node.TryBlock), BoundStatement))
346
dispatchLabel = Me.
F
.GenerateLabel("tryDispatch")
353
Dim finalizer As GeneratedLabelSymbol = Me.
F
.GenerateLabel("finalizer")
356
Dim skipFinalizer As GeneratedLabelSymbol = Me.
F
.GenerateLabel("skipFinalizer")
357
tryBlock = Me.
F
.Block(SyntheticBoundNodeFactory.HiddenSequencePoint(),
359
Me.
F
.Goto(skipFinalizer),
360
Me.
F
.Label(finalizer),
361
Me.
F
.Assignment(
362
F
.Field(
F
.Me(), Me.StateField, True),
363
F
.AssignmentExpression(
F
.Local(Me.CachedState, True),
F
.Literal(StateMachineState.NotStartedOrRunningState))),
365
Me.
F
.Label(skipFinalizer),
369
tryBlock = Me.
F
.Block(SyntheticBoundNodeFactory.HiddenSequencePoint(), Me.Dispatch(isOutermost:=False), tryBlock)
386
Me.
F
.Block(
388
Me.
F
.If(
389
condition:=Me.
F
.IntLessThan(
390
Me.
F
.Local(Me.CachedState, False),
391
Me.
F
.Literal(StateMachineState.FirstUnusedState)),
397
result = Me.
F
.Block(SyntheticBoundNodeFactory.HiddenSequencePoint(), Me.
F
.Label(dispatchLabel), result)