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