1 write to _factory
Microsoft.CodeAnalysis.CSharp (1)
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (1)
140_factory = factory;
70 references to _factory
Microsoft.CodeAnalysis.CSharp (70)
Lowering\Instrumentation\LocalStateTracingInstrumenter.cs (70)
148_factory, 269=> (MethodSymbol?)Binder.GetWellKnownTypeMember(_factory.Compilation, overload, _diagnostics, syntax: syntax, isOptional: false); 272=> (MethodSymbol?)Binder.GetSpecialTypeMember(_factory.Compilation, overload, _diagnostics, syntax: syntax); 280_scope.Open(_factory.SynthesizedLocal(_contextType, original.Syntax, kind: SynthesizedLocalKind.LocalStoreTracker)); 298Debug.Assert(_factory.TopLevelMethod is not null); 299Debug.Assert(_factory.CurrentFunction is not null); 301var isStateMachine = _factory.CurrentFunction.IsAsync || _factory.CurrentFunction.IsIterator; 303var prologueBuilder = ArrayBuilder<BoundStatement>.GetInstance(_factory.CurrentFunction.ParameterCount); 305foreach (var parameter in _factory.CurrentFunction.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true)) 312var parameterLogger = GetLocalOrParameterStoreLogger(parameter.Type, parameter, refAssignmentSourceIsLocal: null, _factory.Syntax); 319prologueBuilder.Add(_factory.ExpressionStatement(_factory.Call(receiver: _factory.Local(_scope.ContextVariable), parameterLogger, 320MakeStoreLoggerArguments(parameterLogger.Parameters[0], parameter, parameter.Type, _factory.Parameter(parameter), refAssignmentSourceIndex: null, _factory.Literal((ushort)ordinal))))); 329prologue = _factory.StatementList(prologueBuilder.ToImmutableAndFree()); 335new[] { _factory.MethodDefIndex(_factory.TopLevelMethod) }), 338new[] { _factory.MethodDefIndex(_factory.TopLevelMethod), _factory.MethodDefIndex(_factory.CurrentFunction) }), 341new[] { _factory.MethodDefIndex(_factory.TopLevelMethod), _factory.StateMachineInstanceId() }), 344new[] { _factory.MethodDefIndex(_factory.TopLevelMethod), _factory.MethodDefIndex(_factory.CurrentFunction), _factory.StateMachineInstanceId() }), 347var entryLogger = GetWellKnownMethodSymbol(entryOverload, _factory.Syntax); 349_factory.Assignment(_factory.Local(_scope.ContextVariable), _factory.Call(receiver: null, entryLogger, entryArgs)) : _factory.NoOp(NoOpStatementFlavor.Default); 351var returnLogger = GetWellKnownMethodSymbol(WellKnownMember.Microsoft_CodeAnalysis_Runtime_LocalStoreTracker__LogReturn, _factory.Syntax); 353_factory.ExpressionStatement(_factory.Call(receiver: _factory.Local(_scope.ContextVariable), returnLogger)) : _factory.NoOp(NoOpStatementFlavor.Default); 355instrumentation = _factory.CombineInstrumentation(instrumentation, _scope.ContextVariable, instrumentationPrologue, instrumentationEpilogue); 373refAssignmentSourceIndex = _factory.LocalId(rightLocal.LocalSymbol); 378refAssignmentSourceIndex = _factory.ParameterId(rightParameter.ParameterSymbol); 404return _factory.Sequence(new[] 406_factory.Call( 407receiver: _factory.Local(_scope.ContextVariable), 419indexExpression = _factory.LocalId(localSymbol); 429indexExpression = _factory.ParameterId(parameterSymbol); 450return ImmutableArray.Create(_factory.Sequence(new[] { value }, refAssignmentSourceIndex), index); 461(BoundExpression)new BoundAddressOfOperator(_factory.Syntax, value, isManaged: false, parameter.Type) : 462_factory.Sequence(new[] { value }, new BoundAddressOfOperator(_factory.Syntax, VariableRead(targetSymbol), isManaged: false, parameter.Type)); 464return ImmutableArray.Create(addressOf, _factory.Sizeof(targetType), index); 475toString = _factory.Literal(""); 481toString = _factory.Call(value, toStringMethod); 487Conversion c = _factory.ClassifyEmitConversion(value, parameter.Type); 489return ImmutableArray.Create(_factory.Convert(parameter.Type, value, c), index); 495LocalSymbol local => _factory.Local(local), 496ParameterSymbol param => _factory.Parameter(param), 530var targetIndex = _factory.LocalId(targetSymbol); 538var logCallStatement = _factory.ExpressionStatement( 539_factory.Call( 540receiver: _factory.Local(_scope.ContextVariable), 544rewrittenFilterPrologue = _factory.StatementList( 587temp = _factory.StoreToTemp(invocation, out var store); 616builder.Add(_factory.Call( 617receiver: _factory.Local(_scope.ContextVariable), 624return _factory.Sequence(ImmutableArray.Create(temp.LocalSymbol), builder.ToImmutableAndFree(), temp); 630return _factory.Sequence(ImmutableArray<LocalSymbol>.Empty, builder.ToImmutableAndFree(), lastExpression);