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));
293
Debug.Assert(
_factory
.TopLevelMethod is not null);
294
Debug.Assert(
_factory
.CurrentFunction is not null);
296
var isStateMachine =
_factory
.CurrentFunction.IsAsync ||
_factory
.CurrentFunction.IsIterator;
298
var prologueBuilder = ArrayBuilder<BoundStatement>.GetInstance(
_factory
.CurrentFunction.ParameterCount);
300
foreach (var parameter in
_factory
.CurrentFunction.Parameters)
307
var parameterLogger = GetLocalOrParameterStoreLogger(parameter.Type, parameter, refAssignmentSourceIsLocal: null,
_factory
.Syntax);
310
prologueBuilder.Add(
_factory
.ExpressionStatement(
_factory
.Call(receiver:
_factory
.Local(_scope.ContextVariable), parameterLogger,
311
MakeStoreLoggerArguments(parameterLogger.Parameters[0], parameter, parameter.Type,
_factory
.Parameter(parameter), refAssignmentSourceIndex: null,
_factory
.Literal((ushort)parameter.Ordinal)))));
320
prologue =
_factory
.StatementList(prologueBuilder.ToImmutableAndFree());
326
new[] {
_factory
.MethodDefIndex(
_factory
.TopLevelMethod) }),
329
new[] {
_factory
.MethodDefIndex(
_factory
.TopLevelMethod),
_factory
.MethodDefIndex(
_factory
.CurrentFunction) }),
332
new[] {
_factory
.MethodDefIndex(
_factory
.TopLevelMethod),
_factory
.StateMachineInstanceId() }),
335
new[] {
_factory
.MethodDefIndex(
_factory
.TopLevelMethod),
_factory
.MethodDefIndex(
_factory
.CurrentFunction),
_factory
.StateMachineInstanceId() }),
338
var entryLogger = GetWellKnownMethodSymbol(entryOverload,
_factory
.Syntax);
340
_factory
.Assignment(
_factory
.Local(_scope.ContextVariable),
_factory
.Call(receiver: null, entryLogger, entryArgs)) :
_factory
.NoOp(NoOpStatementFlavor.Default);
342
var 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,
371
refAssignmentSourceIndex =
_factory
.LocalId(rightLocal.LocalSymbol);
376
refAssignmentSourceIndex =
_factory
.ParameterId(rightParameter.ParameterSymbol);
402
return
_factory
.Sequence(new[]
404
_factory
.Call(
405
receiver:
_factory
.Local(_scope.ContextVariable),
417
indexExpression =
_factory
.LocalId(localSymbol);
427
indexExpression =
_factory
.ParameterId(parameterSymbol);
447
return 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));
461
return ImmutableArray.Create(addressOf,
_factory
.Sizeof(targetType), index);
472
toString =
_factory
.Literal("");
478
toString =
_factory
.Call(value, toStringMethod);
484
return ImmutableArray.Create(
_factory
.Convert(parameter.Type, value), index);
490
LocalSymbol local =>
_factory
.Local(local),
491
ParameterSymbol param =>
_factory
.Parameter(param),
525
var targetIndex =
_factory
.LocalId(targetSymbol);
533
var logCallStatement =
_factory
.ExpressionStatement(
534
_factory
.Call(
535
receiver:
_factory
.Local(_scope.ContextVariable),
539
rewrittenFilterPrologue =
_factory
.StatementList(
569
temp =
_factory
.StoreToTemp(invocation, out var store);
597
builder.Add(
_factory
.Call(
598
receiver:
_factory
.Local(_scope.ContextVariable),
605
return
_factory
.Sequence(ImmutableArray.Create(temp.LocalSymbol), builder.ToImmutableAndFree(), temp);
611
return
_factory
.Sequence(ImmutableArray<LocalSymbol>.Empty, builder.ToImmutableAndFree(), lastExpression);