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));
298
Debug.Assert(
_factory
.TopLevelMethod is not null);
299
Debug.Assert(
_factory
.CurrentFunction is not null);
301
var currentFunction =
_factory
.CurrentFunction;
302
var isStateMachine = (currentFunction.IsAsync && !
_factory
.Compilation.IsRuntimeAsyncEnabledIn(currentFunction))
305
var prologueBuilder = ArrayBuilder<BoundStatement>.GetInstance(
_factory
.CurrentFunction.ParameterCount);
307
foreach (var parameter in
_factory
.CurrentFunction.GetParametersIncludingExtensionParameter(skipExtensionIfStatic: true))
314
var parameterLogger = GetLocalOrParameterStoreLogger(parameter.Type, parameter, refAssignmentSourceIsLocal: null,
_factory
.Syntax);
321
prologueBuilder.Add(
_factory
.ExpressionStatement(
_factory
.Call(receiver:
_factory
.Local(_scope.ContextVariable), parameterLogger,
322
MakeStoreLoggerArguments(parameterLogger.Parameters[0], parameter, parameter.Type,
_factory
.Parameter(parameter), refAssignmentSourceIndex: null,
_factory
.Literal((ushort)ordinal)))));
331
prologue =
_factory
.StatementList(prologueBuilder.ToImmutableAndFree());
337
new[] {
_factory
.MethodDefIndex(
_factory
.TopLevelMethod) }),
340
new[] {
_factory
.MethodDefIndex(
_factory
.TopLevelMethod),
_factory
.MethodDefIndex(
_factory
.CurrentFunction) }),
343
new[] {
_factory
.MethodDefIndex(
_factory
.TopLevelMethod),
_factory
.StateMachineInstanceId() }),
346
new[] {
_factory
.MethodDefIndex(
_factory
.TopLevelMethod),
_factory
.MethodDefIndex(
_factory
.CurrentFunction),
_factory
.StateMachineInstanceId() }),
349
var entryLogger = GetWellKnownMethodSymbol(entryOverload,
_factory
.Syntax);
351
_factory
.Assignment(
_factory
.Local(_scope.ContextVariable),
_factory
.Call(receiver: null, entryLogger, entryArgs)) :
_factory
.NoOp(NoOpStatementFlavor.Default);
353
var returnLogger = GetWellKnownMethodSymbol(WellKnownMember.Microsoft_CodeAnalysis_Runtime_LocalStoreTracker__LogReturn,
_factory
.Syntax);
355
_factory
.ExpressionStatement(
_factory
.Call(receiver:
_factory
.Local(_scope.ContextVariable), returnLogger)) :
_factory
.NoOp(NoOpStatementFlavor.Default);
357
instrumentation =
_factory
.CombineInstrumentation(instrumentation, _scope.ContextVariable, instrumentationPrologue, instrumentationEpilogue);
375
refAssignmentSourceIndex =
_factory
.LocalId(rightLocal.LocalSymbol);
380
refAssignmentSourceIndex =
_factory
.ParameterId(rightParameter.ParameterSymbol);
406
return
_factory
.Sequence(new[]
408
_factory
.Call(
409
receiver:
_factory
.Local(_scope.ContextVariable),
421
indexExpression =
_factory
.LocalId(localSymbol);
431
indexExpression =
_factory
.ParameterId(parameterSymbol);
452
return ImmutableArray.Create(
_factory
.Sequence(new[] { value }, refAssignmentSourceIndex), index);
463
(BoundExpression)new BoundAddressOfOperator(
_factory
.Syntax, value, isManaged: false, parameter.Type) :
464
_factory
.Sequence(new[] { value }, new BoundAddressOfOperator(
_factory
.Syntax, VariableRead(targetSymbol), isManaged: false, parameter.Type));
466
return ImmutableArray.Create(addressOf,
_factory
.Sizeof(targetType), index);
477
toString =
_factory
.Literal("");
483
toString =
_factory
.Call(value, toStringMethod);
489
Conversion c =
_factory
.ClassifyEmitConversion(value, parameter.Type);
491
return ImmutableArray.Create(
_factory
.Convert(parameter.Type, value, c), index);
497
LocalSymbol local =>
_factory
.Local(local),
498
ParameterSymbol param =>
_factory
.Parameter(param),
532
var targetIndex =
_factory
.LocalId(targetSymbol);
540
var logCallStatement =
_factory
.ExpressionStatement(
541
_factory
.Call(
542
receiver:
_factory
.Local(_scope.ContextVariable),
546
rewrittenFilterPrologue =
_factory
.StatementList(
589
temp =
_factory
.StoreToTemp(invocation, out var store);
618
builder.Add(
_factory
.Call(
619
receiver:
_factory
.Local(_scope.ContextVariable),
626
return
_factory
.Sequence(ImmutableArray.Create(temp.LocalSymbol), builder.ToImmutableAndFree(), temp);
632
return
_factory
.Sequence(ImmutableArray<LocalSymbol>.Empty, builder.ToImmutableAndFree(), lastExpression);