1 write to _factory
Microsoft.CodeAnalysis.CSharp (1)
Lowering\AsyncRewriter\RuntimeAsyncRewriter.cs (1)
98
_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;
77
var hoistedThis = rewriter.
_factory
.StoreToTemp(rewriter.
_factory
.This(), out BoundAssignmentOperator store, kind: SynthesizedLocalKind.AwaitByRefSpill);
109
_refInitializationHoister = new RefInitializationHoister<LocalSymbol, BoundLocal>(
_factory
,
_factory
.CurrentFunction, TypeMap.Empty);
117
var oldSyntax =
_factory
.Syntax;
118
_factory
.Syntax = node.Syntax;
120
_factory
.Syntax = oldSyntax;
150
_factory
.Compilation.GetSpecialType(InternalSpecialType.System_Runtime_CompilerServices_AsyncHelpers)));
197
var tmp =
_factory
.StoreToTemp(getAwaiter, out BoundAssignmentOperator store, kind: SynthesizedLocalKind.Awaiter);
203
var isCompletedCall =
_factory
.Call(tmp, isCompletedMethod);
213
var ifNotCompleted =
_factory
.HiddenSequencePoint(
214
_factory
.If(
_factory
.Not(isCompletedCall),
_factory
.ExpressionStatement(awaitCall)));
219
var getResultCall =
_factory
.Call(tmp, getResultMethod);
222
return
_factory
.SpillSequence(
224
sideEffects: [
_factory
.ExpressionStatement(store), ifNotCompleted],
248
var tmp =
_factory
.StoreToTemp(getAwaiter, out BoundAssignmentOperator store, kind: SynthesizedLocalKind.Awaiter);
258
resultType:
_factory
.SpecialType(SpecialType.System_Boolean)).ToExpression();
261
var criticalNotifyCompletionType =
_factory
.WellKnownType(WellKnownType.System_Runtime_CompilerServices_ICriticalNotifyCompletion);
262
var critTemp =
_factory
.SynthesizedLocal(criticalNotifyCompletionType);
263
var critTempAssignment =
_factory
.AssignmentExpression(
_factory
.Local(critTemp),
_factory
.As(tmp, criticalNotifyCompletionType));
265
var unsafeAwaitAwaiterDefinition = (MethodSymbol)
_factory
.SpecialMember(SpecialMember.System_Runtime_CompilerServices_AsyncHelpers__UnsafeAwaitAwaiter_TAwaiter);
267
var unsafeAwaitCall =
_factory
.Call(
270
_factory
.Local(critTemp));
273
var notifyCompletionType =
_factory
.WellKnownType(WellKnownType.System_Runtime_CompilerServices_INotifyCompletion);
274
var awaitAwaiterDefinition = (MethodSymbol)
_factory
.SpecialMember(SpecialMember.System_Runtime_CompilerServices_AsyncHelpers__AwaitAwaiter_TAwaiter);
276
var safeAwaitCall =
_factory
.Call(
279
_factory
.Convert(notifyCompletionType, tmp, Conversion.ExplicitReference));
281
var awaitBranch =
_factory
.Block(
283
_factory
.ExpressionStatement(critTempAssignment),
284
_factory
.If(
285
condition:
_factory
.ObjectNotEqual(
_factory
.Local(critTemp),
_factory
.Null(criticalNotifyCompletionType)),
286
thenClause:
_factory
.ExpressionStatement(unsafeAwaitCall),
287
elseClauseOpt:
_factory
.ExpressionStatement(safeAwaitCall)));
289
var ifNotCompleted =
_factory
.HiddenSequencePoint(
290
_factory
.If(
_factory
.Not(isCompletedCall), awaitBranch));
294
return
_factory
.SpillSequence(
296
sideEffects: [
_factory
.ExpressionStatement(store), ifNotCompleted],
351
var assignment =
_factory
.AssignmentExpression(leftLocal, visitedLeftOrProxy, isRef: true);
352
return
_factory
.Sequence([assignment], node.Update(leftLocal, visitedRight, node.IsRef, node.Type));
359
var hoistedLocal = @this.
_factory
.SynthesizedLocal(type, syntax: local.GetDeclaratorSyntax(), kind: SynthesizedLocalKind.AwaitByRefSpill);
365
=> @this.
_factory
.Local(local);
407
Debug.Assert(
_factory
.CurrentFunction is not null);
408
var thisParameter = this.
_factory
.CurrentFunction.ThisParameter;
431
return
_factory
.StatementList();