1 write to DataFlowAnalysisContext
Microsoft.CodeAnalysis.AnalyzerUtilities (1)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (1)
249
DataFlowAnalysisContext
= analysisContext;
144 references to DataFlowAnalysisContext
Microsoft.CodeAnalysis.AnalyzerUtilities (144)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\CopyAnalysis\CopyAnalysis.CopyDataFlowOperationVisitor.cs (1)
477
DataFlowAnalysisContext
.InterproceduralAnalysisData != null)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (4)
29
private ImmutableHashSet<INamedTypeSymbol> DisposeOwnershipTransferLikelyTypes =>
DataFlowAnalysisContext
.DisposeOwnershipTransferLikelyTypes;
30
private bool DisposeOwnershipTransferAtConstructor =>
DataFlowAnalysisContext
.DisposeOwnershipTransferAtConstructor;
31
private bool DisposeOwnershipTransferAtMethodCall =>
DataFlowAnalysisContext
.DisposeOwnershipTransferAtMethodCall;
99
if (
DataFlowAnalysisContext
.IsDisposableTypeNotRequiringToBeDisposed(instanceType))
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\GlobalFlowStateAnalysis\GlobalFlowStateValueSetFlowOperationVisitor.cs (1)
83
=> HasPredicatedGlobalState && forBlock.DominatesPredecessors(
DataFlowAnalysisContext
.ControlFlowGraph) ?
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ParameterValidationAnalysis\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (3)
72
if (
DataFlowAnalysisContext
.InterproceduralAnalysisData == null)
77
return
DataFlowAnalysisContext
.InterproceduralAnalysisData.MethodsBeingAnalyzed
342
var isNullCheckValidationMethod =
DataFlowAnalysisContext
.IsNullCheckValidationMethod(targetMethod.OriginalDefinition);
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PointsToAnalysis\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (15)
88
=> PointsToAnalysis.ShouldBeTracked(analysisEntity,
DataFlowAnalysisContext
.PointsToAnalysisKind, IsDisposable);
197
if (
DataFlowAnalysisContext
.CopyAnalysisResult == null &&
245
AbstractLocation.CreateSymbolLocation(parameter,
DataFlowAnalysisContext
.InterproceduralAnalysisData?.CallStack),
254
Debug.Assert(
DataFlowAnalysisContext
.InterproceduralAnalysisData == null);
296
var location = AbstractLocation.CreateAllocationLocation(operation, analysisEntity.Type,
DataFlowAnalysisContext
);
338
DataFlowAnalysisContext
.InterproceduralAnalysisData == null)
791
Debug.Assert(value.NullState == NullAbstractValue.NotNull ||
DataFlowAnalysisContext
.InterproceduralAnalysisData != null);
801
AbstractLocation location = AbstractLocation.CreateAllocationLocation(operation, operation.Type!,
DataFlowAnalysisContext
);
832
AbstractLocation location = AbstractLocation.CreateAllocationLocation(operation, operation.Operand.Type,
DataFlowAnalysisContext
);
846
AbstractLocation location = AbstractLocation.CreateAllocationLocation(operation, type,
DataFlowAnalysisContext
);
865
AbstractLocation location = AbstractLocation.CreateAllocationLocation(operation, operation.Type,
DataFlowAnalysisContext
);
887
? PointsToAbstractValue.Create(AbstractLocation.CreateAllocationLocation(operation, operation.Type,
DataFlowAnalysisContext
), mayBeNull: false)
930
AbstractLocation location = AbstractLocation.CreateAllocationLocation(operation, operation.Type,
DataFlowAnalysisContext
);
962
if (IsSpecialMethodReturningNonNullValue(method,
DataFlowAnalysisContext
.WellKnownTypeProvider) &&
1215
var location = AbstractLocation.CreateAllocationLocation(operation, operation.Type,
DataFlowAnalysisContext
);
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (14)
80
if (this.
DataFlowAnalysisContext
.HazardousUsageEvaluators.TryGetInitializationHazardousUsageEvaluator(out _))
155
ConstructorMapper constructorMapper = this.
DataFlowAnalysisContext
.ConstructorMapper;
173
Debug.Assert(this.
DataFlowAnalysisContext
.ValueContentAnalysisResult != null);
286
&& this.
DataFlowAnalysisContext
.PropertyMappers.TryGetPropertyMapper(
300
Debug.Assert(this.
DataFlowAnalysisContext
.ValueContentAnalysisResult != null);
323
baseValue = this.
DataFlowAnalysisContext
.ValueDomain.Merge(baseValue, propertySetAbstractValue);
354
this.
DataFlowAnalysisContext
.HazardousUsageEvaluators.TryGetInitializationHazardousUsageEvaluator(
360
if (!this.
DataFlowAnalysisContext
.PointsToAnalysisResult!.ExitBlockOutput.Data.TryGetValue(
460
if (this.
DataFlowAnalysisContext
.HazardousUsageEvaluators.TryGetArgumentHazardousUsageEvaluator(
481
&& this.
DataFlowAnalysisContext
.HazardousUsageEvaluators.TryGetHazardousUsageEvaluator(
540
&& this.
DataFlowAnalysisContext
.HazardousUsageEvaluators.TryGetHazardousUsageEvaluator(
563
if (this.
DataFlowAnalysisContext
.HazardousUsageTypesToNames.TryGetValue(
573
if (this.
DataFlowAnalysisContext
.HazardousUsageTypesToNames.TryGetValue(
657
&& this.
DataFlowAnalysisContext
.HazardousUsageEvaluators.TryGetReturnHazardousUsageEvaluator(
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (13)
124
if (this.
DataFlowAnalysisContext
.SourceInfos.IsSourceParameter(parameter, WellKnownTypeProvider))
235
&& this.
DataFlowAnalysisContext
.SourceInfos.IsSourceProperty(propertyReferenceOperation.Property))
307
if (this.
DataFlowAnalysisContext
.SourceInfos.IsSourceMethod(
310
new Lazy<PointsToAnalysisResult?>(() =>
DataFlowAnalysisContext
.PointsToAnalysisResult),
311
new Lazy<(PointsToAnalysisResult?, ValueContentAnalysisResult?)>(() => (
DataFlowAnalysisContext
.PointsToAnalysisResult,
DataFlowAnalysisContext
.ValueContentAnalysisResult)),
344
if (this.
DataFlowAnalysisContext
.SourceInfos.IsSourceTransferMethod(
506
&& this.
DataFlowAnalysisContext
.SourceInfos.IsSourceConstantArrayOfType(arrayTypeSymbol, operation)
565
IEnumerable<SinkInfo>? infosForType = this.
DataFlowAnalysisContext
.SinkInfos.GetInfosForType(targetMethod.ContainingType);
614
if (this.
DataFlowAnalysisContext
.SourceInfos.IsSourceTransferProperty(propertyReferenceOperation))
636
foreach (SanitizerInfo sanitizerInfo in this.
DataFlowAnalysisContext
.SanitizerInfos.GetInfosForType(method.ContainingType))
666
foreach (SanitizerInfo sanitizerInfo in this.
DataFlowAnalysisContext
.SanitizerInfos.GetInfosForType(method.ContainingType))
728
foreach (SinkInfo sinkInfo in this.
DataFlowAnalysisContext
.SinkInfos.GetInfosForType(propertyReferenceOperation.Member.ContainingType))
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\ValueContentAnalysis\ValueContentAnalysis.ValueContentDataFlowOperationVisitor.cs (3)
80
if (
DataFlowAnalysisContext
.CopyAnalysisResult == null &&
214
else if (
DataFlowAnalysisContext
.GetValueForAdditionalSupportedValueTypeOperation is { } getValueFunc &&
216
DataFlowAnalysisContext
.AdditionalSupportedValueTypes.Contains(namedType))
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AbstractLocationDataFlowOperationVisitor.cs (2)
43
Debug.Assert(
DataFlowAnalysisContext
.InterproceduralAnalysisData != null);
100
if (
DataFlowAnalysisContext
.InterproceduralAnalysisData == null &&
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\AnalysisEntityDataFlowOperationVisitor.cs (4)
688
Debug.Assert(
DataFlowAnalysisContext
.InterproceduralAnalysisData != null);
693
entity.Symbol.ContainingSymbol.Equals(
DataFlowAnalysisContext
.OwningSymbol) ||
695
entity.CaptureId.Value.ControlFlowGraph ==
DataFlowAnalysisContext
.ControlFlowGraph;
702
if (
DataFlowAnalysisContext
.InterproceduralAnalysisData != null &&
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (84)
87
=>
DataFlowAnalysisContext
.InterproceduralAnalysisConfiguration.InterproceduralAnalysisKind;
94
=>
DataFlowAnalysisContext
.InterproceduralAnalysisConfiguration.MaxInterproceduralMethodCallChain;
101
=>
DataFlowAnalysisContext
.InterproceduralAnalysisConfiguration.MaxInterproceduralLambdaOrLocalFunctionCallChain;
164
public AbstractValueDomain<TAbstractAnalysisValue> ValueDomain =>
DataFlowAnalysisContext
.ValueDomain;
165
protected ISymbol OwningSymbol =>
DataFlowAnalysisContext
.OwningSymbol;
166
protected WellKnownTypeProvider WellKnownTypeProvider =>
DataFlowAnalysisContext
.WellKnownTypeProvider;
168
=>
DataFlowAnalysisContext
.TryGetOrComputeAnalysisResult;
211
protected bool PessimisticAnalysis =>
DataFlowAnalysisContext
.PessimisticAnalysis;
216
protected bool PredicateAnalysis =>
DataFlowAnalysisContext
.PredicateAnalysis;
240
CurrentBasicBlock, WellKnownTypeProvider,
DataFlowAnalysisContext
.InterproceduralAnalysisData?.CallStack);
328
DataFlowAnalysisContext
.ControlFlowGraph,
329
DataFlowAnalysisContext
.WellKnownTypeProvider,
558
var argumentValuesMap =
DataFlowAnalysisContext
.InterproceduralAnalysisData?.ArgumentValuesMap ??
596
if (parameter.RefKind == RefKind.None ||
DataFlowAnalysisContext
.InterproceduralAnalysisData == null)
607
if (
DataFlowAnalysisContext
.PointsToAnalysisResult is { } pointsToAnalysisResult)
614
foreach (var localFunction in
DataFlowAnalysisContext
.ControlFlowGraph.LocalFunctions)
635
Debug.Assert(
DataFlowAnalysisContext
.ControlFlowGraph.LocalFunctions.Contains(localFunction));
653
if (
DataFlowAnalysisContext
.ExceptionPathsAnalysis && !ExecutingExceptionPathsAnalysisPostPass)
662
if (_lazyParameterEntities != null &&
DataFlowAnalysisContext
.InterproceduralAnalysisData != null)
665
_addressSharedEntitiesProvider.SetAddressSharedEntities(
DataFlowAnalysisContext
.InterproceduralAnalysisData.AddressSharedEntities);
732
var info = ThrownExceptionInfo.Create(CurrentBasicBlock, exceptionType,
DataFlowAnalysisContext
.InterproceduralAnalysisData?.CallStack);
765
if (
DataFlowAnalysisContext
.PointsToAnalysisResult != null &&
766
isPredicateAlwaysFalseForBranch(
DataFlowAnalysisContext
.PointsToAnalysisResult.GetPredicateKind(branch.BranchValue)))
771
if (
DataFlowAnalysisContext
.CopyAnalysisResult != null &&
772
isPredicateAlwaysFalseForBranch(
DataFlowAnalysisContext
.CopyAnalysisResult.GetPredicateKind(branch.BranchValue)))
777
if (
DataFlowAnalysisContext
.ValueContentAnalysisResult != null &&
778
isPredicateAlwaysFalseForBranch(
DataFlowAnalysisContext
.ValueContentAnalysisResult.GetPredicateKind(branch.BranchValue)))
842
var location = AbstractLocation.CreateAllocationLocation(returnValueOperation, method.ReturnType,
DataFlowAnalysisContext
.InterproceduralAnalysisData?.CallStack);
858
DataFlowAnalysisContext
.InterproceduralAnalysisData == null)
1057
if (
DataFlowAnalysisContext
.InterproceduralAnalysisData != null)
1059
return
DataFlowAnalysisContext
.InterproceduralAnalysisData.GetCachedAbstractValueFromCaller(operation);
1071
if (
DataFlowAnalysisContext
.InterproceduralAnalysisConfiguration.InterproceduralAnalysisKind != InterproceduralAnalysisKind.None)
1093
if (
DataFlowAnalysisContext
.CopyAnalysisResult == null)
1099
return
DataFlowAnalysisContext
.CopyAnalysisResult[operation];
1105
if (
DataFlowAnalysisContext
.PointsToAnalysisResult == null)
1111
return
DataFlowAnalysisContext
.PointsToAnalysisResult[operation];
1117
if (
DataFlowAnalysisContext
.ValueContentAnalysisResult == null)
1123
return
DataFlowAnalysisContext
.ValueContentAnalysisResult[operation];
1129
if (operation == null ||
DataFlowAnalysisContext
.PointsToAnalysisResult == null)
1135
return
DataFlowAnalysisContext
.PointsToAnalysisResult.GetEscapedAbstractLocations(operation);
1142
if (parameterEntity == null ||
DataFlowAnalysisContext
.PointsToAnalysisResult == null)
1148
return
DataFlowAnalysisContext
.PointsToAnalysisResult.GetEscapedAbstractLocations(parameterEntity);
1155
RoslynDebug.Assert(
DataFlowAnalysisContext
.PointsToAnalysisResult != null);
1157
var outputData =
DataFlowAnalysisContext
.PointsToAnalysisResult.EntryBlockOutput.Data;
1163
RoslynDebug.Assert(
DataFlowAnalysisContext
.PointsToAnalysisResult != null);
1164
var inputData =
DataFlowAnalysisContext
.PointsToAnalysisResult[CurrentBasicBlock].Data;
1177
RoslynDebug.Assert(
DataFlowAnalysisContext
.PointsToAnalysisResult != null);
1178
var inputData =
DataFlowAnalysisContext
.PointsToAnalysisResult.MergedStateForUnhandledThrowOperations?.Data;
1371
(
DataFlowAnalysisContext
.CopyAnalysisResult == null ||
DataFlowAnalysisContext
.CopyAnalysisResult[basicBlock].IsReachable) &&
1372
(
DataFlowAnalysisContext
.PointsToAnalysisResult == null ||
DataFlowAnalysisContext
.PointsToAnalysisResult[basicBlock].IsReachable) &&
1373
(
DataFlowAnalysisContext
.ValueContentAnalysisResult == null ||
DataFlowAnalysisContext
.ValueContentAnalysisResult[basicBlock].IsReachable);
2158
var adjustedExceptionInfo = exceptionInfo.With(CurrentBasicBlock,
DataFlowAnalysisContext
.InterproceduralAnalysisData?.CallStack);
2218
DataFlowAnalysisContext
.InterproceduralAnalysisPredicate?.SkipInterproceduralAnalysis(invokedMethod, isLambdaOrLocalFunction) == true ||
2219
DataFlowAnalysisContext
.AnalyzerOptions.IsConfiguredToSkipAnalysis(s_dummyDataflowAnalysisDescriptor, invokedMethod, OwningSymbol, WellKnownTypeProvider.Compilation);
2233
var currentMethodsBeingAnalyzed =
DataFlowAnalysisContext
.InterproceduralAnalysisData?.MethodsBeingAnalyzed ?? ImmutableHashSet<TAnalysisContext>.Empty;
2234
var newMethodsBeingAnalyzed = currentMethodsBeingAnalyzed.Add(
DataFlowAnalysisContext
);
2251
var pointsToAnalysisResult = (PointsToAnalysisResult?)
DataFlowAnalysisContext
.PointsToAnalysisResult?.TryGetInterproceduralResult(originalOperation);
2252
var copyAnalysisResult =
DataFlowAnalysisContext
.CopyAnalysisResult?.TryGetInterproceduralResult(originalOperation);
2253
var valueContentAnalysisResult =
DataFlowAnalysisContext
.ValueContentAnalysisResult?.TryGetInterproceduralResult(originalOperation);
2283
var interproceduralDataFlowAnalysisContext =
DataFlowAnalysisContext
.ForkForInterproceduralAnalysis(
2287
if (
DataFlowAnalysisContext
.InterproceduralAnalysisPredicate?.SkipInterproceduralAnalysis(interproceduralDataFlowAnalysisContext) == true)
2638
var pointsToAnalysisResult = (PointsToAnalysisResult?)
DataFlowAnalysisContext
.PointsToAnalysisResult?.TryGetStandaloneLocalFunctionAnalysisResult(localFunction);
2639
var copyAnalysisResult =
DataFlowAnalysisContext
.CopyAnalysisResult?.TryGetStandaloneLocalFunctionAnalysisResult(localFunction);
2640
var valueContentAnalysisResult =
DataFlowAnalysisContext
.ValueContentAnalysisResult?.TryGetStandaloneLocalFunctionAnalysisResult(localFunction);
2646
DataFlowAnalysisContext
.GetLocalFunctionControlFlowGraph(localFunction);
2658
_interproceduralCallStack.Push(
DataFlowAnalysisContext
.ControlFlowGraph.OriginalOperation);
2665
var interproceduralDataFlowAnalysisContext =
DataFlowAnalysisContext
.ForkForInterproceduralAnalysis(
2688
var pointsToAnalysisResult = (PointsToAnalysisResult?)
DataFlowAnalysisContext
.PointsToAnalysisResult?.TryGetInterproceduralResult(lambda);
2689
var copyAnalysisResult =
DataFlowAnalysisContext
.CopyAnalysisResult?.TryGetInterproceduralResult(lambda);
2690
var valueContentAnalysisResult =
DataFlowAnalysisContext
.ValueContentAnalysisResult?.TryGetInterproceduralResult(lambda);
2696
DataFlowAnalysisContext
.GetAnonymousFunctionControlFlowGraph(lambda);
2714
var interproceduralDataFlowAnalysisContext =
DataFlowAnalysisContext
.ForkForInterproceduralAnalysis(
2738
var currentMethodsBeingAnalyzed =
DataFlowAnalysisContext
.InterproceduralAnalysisData?.MethodsBeingAnalyzed ?? ImmutableHashSet<TAnalysisContext>.Empty;
2739
var newMethodsBeingAnalyzed = currentMethodsBeingAnalyzed.Add(
DataFlowAnalysisContext
);
2975
var flowCaptureForCaptureId =
DataFlowAnalysisContext
.ControlFlowGraph
3549
if (
DataFlowAnalysisContext
.InterproceduralAnalysisData != null)
3551
return
DataFlowAnalysisContext
.InterproceduralAnalysisData.GetInterproceduralControlFlowGraph(method);
3570
return
DataFlowAnalysisContext
.InterproceduralAnalysisData?.CallStack;
3573
return
DataFlowAnalysisContext
.InterproceduralAnalysisData?.GetInterproceduralCallStackForOwningSymbol(forOwningSymbol);
3582
ControlFlowGraph? getCfg() =>
DataFlowAnalysisContext
.GetLocalFunctionControlFlowGraph(localFunction);
3600
ControlFlowGraph? getCfg() =>
DataFlowAnalysisContext
.GetAnonymousFunctionControlFlowGraph(lambda);