1 write to _factory
Microsoft.CodeAnalysis.CSharp (1)
Lowering\AsyncRewriter\RuntimeAsyncRewriter.cs (1)
99
_factory
= factory;
53 references to _factory
Microsoft.CodeAnalysis.CSharp (53)
Lowering\AsyncRewriter\RuntimeAsyncRewriter.cs (53)
68
Debug.Assert(rewriter.
_factory
.CurrentFunction is not null);
69
var thisParameter = rewriter.
_factory
.CurrentFunction.ThisParameter;
78
var hoistedThis = rewriter.
_factory
.StoreToTemp(rewriter.
_factory
.This(), out BoundAssignmentOperator store, kind: SynthesizedLocalKind.AwaitByRefSpill);
110
_refInitializationHoister = new RefInitializationHoister<LocalSymbol, BoundLocal>(
_factory
,
_factory
.CurrentFunction, TypeMap.Empty);
118
var oldSyntax =
_factory
.Syntax;
119
_factory
.Syntax = node.Syntax;
121
_factory
.Syntax = oldSyntax;
151
_factory
.Compilation.GetSpecialType(InternalSpecialType.System_Runtime_CompilerServices_AsyncHelpers)));
198
var tmp =
_factory
.StoreToTemp(getAwaiter, out BoundAssignmentOperator store, kind: SynthesizedLocalKind.Awaiter);
204
var isCompletedCall =
_factory
.Call(tmp, isCompletedMethod);
214
var ifNotCompleted =
_factory
.HiddenSequencePoint(
215
_factory
.If(
_factory
.Not(isCompletedCall),
_factory
.ExpressionStatement(awaitCall)));
220
var getResultCall =
_factory
.Call(tmp, getResultMethod);
223
return
_factory
.SpillSequence(
225
sideEffects: [
_factory
.ExpressionStatement(store), ifNotCompleted],
249
var tmp =
_factory
.StoreToTemp(getAwaiter, out BoundAssignmentOperator store, kind: SynthesizedLocalKind.Awaiter);
259
resultType:
_factory
.SpecialType(SpecialType.System_Boolean)).ToExpression();
262
var criticalNotifyCompletionType =
_factory
.WellKnownType(WellKnownType.System_Runtime_CompilerServices_ICriticalNotifyCompletion);
263
var critTemp =
_factory
.SynthesizedLocal(criticalNotifyCompletionType);
264
var critTempAssignment =
_factory
.AssignmentExpression(
_factory
.Local(critTemp),
_factory
.As(tmp, criticalNotifyCompletionType));
266
var unsafeAwaitAwaiterDefinition = (MethodSymbol)
_factory
.SpecialMember(SpecialMember.System_Runtime_CompilerServices_AsyncHelpers__UnsafeAwaitAwaiter_TAwaiter);
268
var unsafeAwaitCall =
_factory
.Call(
271
_factory
.Local(critTemp));
274
var notifyCompletionType =
_factory
.WellKnownType(WellKnownType.System_Runtime_CompilerServices_INotifyCompletion);
275
var awaitAwaiterDefinition = (MethodSymbol)
_factory
.SpecialMember(SpecialMember.System_Runtime_CompilerServices_AsyncHelpers__AwaitAwaiter_TAwaiter);
277
var safeAwaitCall =
_factory
.Call(
280
_factory
.Convert(notifyCompletionType, tmp, Conversion.ExplicitReference));
282
var awaitBranch =
_factory
.Block(
284
_factory
.ExpressionStatement(critTempAssignment),
285
_factory
.If(
286
condition:
_factory
.ObjectNotEqual(
_factory
.Local(critTemp),
_factory
.Null(criticalNotifyCompletionType)),
287
thenClause:
_factory
.ExpressionStatement(unsafeAwaitCall),
288
elseClauseOpt:
_factory
.ExpressionStatement(safeAwaitCall)));
290
var ifNotCompleted =
_factory
.HiddenSequencePoint(
291
_factory
.If(
_factory
.Not(isCompletedCall), awaitBranch));
295
return
_factory
.SpillSequence(
297
sideEffects: [
_factory
.ExpressionStatement(store), ifNotCompleted],
352
var assignment =
_factory
.AssignmentExpression(leftLocal, visitedLeftOrProxy, isRef: true);
353
return
_factory
.Sequence([assignment], node.Update(leftLocal, visitedRight, node.IsRef, node.Type));
360
var hoistedLocal = @this.
_factory
.SynthesizedLocal(type, syntax: local.GetDeclaratorSyntax(), kind: SynthesizedLocalKind.AwaitByRefSpill);
366
=> @this.
_factory
.Local(local);
408
Debug.Assert(
_factory
.CurrentFunction is not null);
409
var thisParameter = this.
_factory
.CurrentFunction.ThisParameter;
432
return
_factory
.StatementList();