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