1 write to _factory
Microsoft.CodeAnalysis.CSharp (1)
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (1)
140_factory = factory;
68 references to _factory
Microsoft.CodeAnalysis.CSharp (68)
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (68)
148_factory, 267=> (MethodSymbol?)Binder.GetWellKnownTypeMember(_factory.Compilation, overload, _diagnostics, syntax: syntax, isOptional: false); 275_scope.Open(_factory.SynthesizedLocal(_contextType, original.Syntax, kind: SynthesizedLocalKind.LocalStoreTracker)); 293Debug.Assert(_factory.TopLevelMethod is not null); 294Debug.Assert(_factory.CurrentFunction is not null); 296var isStateMachine = _factory.CurrentFunction.IsAsync || _factory.CurrentFunction.IsIterator; 298var prologueBuilder = ArrayBuilder<BoundStatement>.GetInstance(_factory.CurrentFunction.ParameterCount); 300foreach (var parameter in _factory.CurrentFunction.Parameters) 307var parameterLogger = GetLocalOrParameterStoreLogger(parameter.Type, parameter, refAssignmentSourceIsLocal: null, _factory.Syntax); 310prologueBuilder.Add(_factory.ExpressionStatement(_factory.Call(receiver: _factory.Local(_scope.ContextVariable), parameterLogger, 311MakeStoreLoggerArguments(parameterLogger.Parameters[0], parameter, parameter.Type, _factory.Parameter(parameter), refAssignmentSourceIndex: null, _factory.Literal((ushort)parameter.Ordinal))))); 320prologue = _factory.StatementList(prologueBuilder.ToImmutableAndFree()); 326new[] { _factory.MethodDefIndex(_factory.TopLevelMethod) }), 329new[] { _factory.MethodDefIndex(_factory.TopLevelMethod), _factory.MethodDefIndex(_factory.CurrentFunction) }), 332new[] { _factory.MethodDefIndex(_factory.TopLevelMethod), _factory.StateMachineInstanceId() }), 335new[] { _factory.MethodDefIndex(_factory.TopLevelMethod), _factory.MethodDefIndex(_factory.CurrentFunction), _factory.StateMachineInstanceId() }), 338var entryLogger = GetWellKnownMethodSymbol(entryOverload, _factory.Syntax); 340_factory.Assignment(_factory.Local(_scope.ContextVariable), _factory.Call(receiver: null, entryLogger, entryArgs)) : _factory.NoOp(NoOpStatementFlavor.Default); 342var returnLogger = GetWellKnownMethodSymbol(WellKnownMember.Microsoft_CodeAnalysis_Runtime_LocalStoreTracker__LogReturn, _factory.Syntax); 344_factory.ExpressionStatement(_factory.Call(receiver: _factory.Local(_scope.ContextVariable), returnLogger)) : _factory.NoOp(NoOpStatementFlavor.Default); 350_factory.Syntax, 371refAssignmentSourceIndex = _factory.LocalId(rightLocal.LocalSymbol); 376refAssignmentSourceIndex = _factory.ParameterId(rightParameter.ParameterSymbol); 402return _factory.Sequence(new[] 404_factory.Call( 405receiver: _factory.Local(_scope.ContextVariable), 417indexExpression = _factory.LocalId(localSymbol); 427indexExpression = _factory.ParameterId(parameterSymbol); 447return ImmutableArray.Create(_factory.Sequence(new[] { value }, refAssignmentSourceIndex), index); 458(BoundExpression)new BoundAddressOfOperator(_factory.Syntax, value, isManaged: false, parameter.Type) : 459_factory.Sequence(new[] { value }, new BoundAddressOfOperator(_factory.Syntax, VariableRead(targetSymbol), isManaged: false, parameter.Type)); 461return ImmutableArray.Create(addressOf, _factory.Sizeof(targetType), index); 472toString = _factory.Literal(""); 478toString = _factory.Call(value, toStringMethod); 484return ImmutableArray.Create(_factory.Convert(parameter.Type, value), index); 490LocalSymbol local => _factory.Local(local), 491ParameterSymbol param => _factory.Parameter(param), 525var targetIndex = _factory.LocalId(targetSymbol); 533var logCallStatement = _factory.ExpressionStatement( 534_factory.Call( 535receiver: _factory.Local(_scope.ContextVariable), 539rewrittenFilterPrologue = _factory.StatementList( 569temp = _factory.StoreToTemp(invocation, out var store); 597builder.Add(_factory.Call( 598receiver: _factory.Local(_scope.ContextVariable), 605return _factory.Sequence(ImmutableArray.Create(temp.LocalSymbol), builder.ToImmutableAndFree(), temp); 611return _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, builder.ToImmutableAndFree(), lastExpression);