1 write to DataFlowAnalysisContext
Microsoft.CodeAnalysis.AnalyzerUtilities (1)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Framework\DataFlow\DataFlowOperationVisitor.cs (1)
247
DataFlowAnalysisContext
= analysisContext;
144 references to DataFlowAnalysisContext
Microsoft.CodeAnalysis.AnalyzerUtilities (144)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\CopyAnalysis\CopyAnalysis.CopyDataFlowOperationVisitor.cs (1)
478
DataFlowAnalysisContext
.InterproceduralAnalysisData != null)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\DisposeAnalysis\DisposeAnalysis.DisposeDataFlowOperationVisitor.cs (4)
27
private ImmutableHashSet<INamedTypeSymbol> DisposeOwnershipTransferLikelyTypes =>
DataFlowAnalysisContext
.DisposeOwnershipTransferLikelyTypes;
28
private bool DisposeOwnershipTransferAtConstructor =>
DataFlowAnalysisContext
.DisposeOwnershipTransferAtConstructor;
29
private bool DisposeOwnershipTransferAtMethodCall =>
DataFlowAnalysisContext
.DisposeOwnershipTransferAtMethodCall;
97
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)
71
if (
DataFlowAnalysisContext
.InterproceduralAnalysisData == null)
76
return
DataFlowAnalysisContext
.InterproceduralAnalysisData.MethodsBeingAnalyzed
341
var isNullCheckValidationMethod =
DataFlowAnalysisContext
.IsNullCheckValidationMethod(targetMethod.OriginalDefinition);
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PointsToAnalysis\PointsToAnalysis.PointsToDataFlowOperationVisitor.cs (15)
86
=> PointsToAnalysis.ShouldBeTracked(analysisEntity,
DataFlowAnalysisContext
.PointsToAnalysisKind, IsDisposable);
195
if (
DataFlowAnalysisContext
.CopyAnalysisResult == null &&
243
AbstractLocation.CreateSymbolLocation(parameter,
DataFlowAnalysisContext
.InterproceduralAnalysisData?.CallStack),
252
Debug.Assert(
DataFlowAnalysisContext
.InterproceduralAnalysisData == null);
294
var location = AbstractLocation.CreateAllocationLocation(operation, analysisEntity.Type,
DataFlowAnalysisContext
);
336
DataFlowAnalysisContext
.InterproceduralAnalysisData == null)
789
Debug.Assert(value.NullState == NullAbstractValue.NotNull ||
DataFlowAnalysisContext
.InterproceduralAnalysisData != null);
799
AbstractLocation location = AbstractLocation.CreateAllocationLocation(operation, operation.Type!,
DataFlowAnalysisContext
);
830
AbstractLocation location = AbstractLocation.CreateAllocationLocation(operation, operation.Operand.Type,
DataFlowAnalysisContext
);
844
AbstractLocation location = AbstractLocation.CreateAllocationLocation(operation, type,
DataFlowAnalysisContext
);
863
AbstractLocation location = AbstractLocation.CreateAllocationLocation(operation, operation.Type,
DataFlowAnalysisContext
);
885
? PointsToAbstractValue.Create(AbstractLocation.CreateAllocationLocation(operation, operation.Type,
DataFlowAnalysisContext
), mayBeNull: false)
928
AbstractLocation location = AbstractLocation.CreateAllocationLocation(operation, operation.Type,
DataFlowAnalysisContext
);
960
if (IsSpecialMethodReturningNonNullValue(method,
DataFlowAnalysisContext
.WellKnownTypeProvider) &&
1213
var location = AbstractLocation.CreateAllocationLocation(operation, operation.Type,
DataFlowAnalysisContext
);
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (14)
78
if (this.
DataFlowAnalysisContext
.HazardousUsageEvaluators.TryGetInitializationHazardousUsageEvaluator(out _))
153
ConstructorMapper constructorMapper = this.
DataFlowAnalysisContext
.ConstructorMapper;
171
Debug.Assert(this.
DataFlowAnalysisContext
.ValueContentAnalysisResult != null);
284
&& this.
DataFlowAnalysisContext
.PropertyMappers.TryGetPropertyMapper(
298
Debug.Assert(this.
DataFlowAnalysisContext
.ValueContentAnalysisResult != null);
321
baseValue = this.
DataFlowAnalysisContext
.ValueDomain.Merge(baseValue, propertySetAbstractValue);
352
this.
DataFlowAnalysisContext
.HazardousUsageEvaluators.TryGetInitializationHazardousUsageEvaluator(
358
if (!this.
DataFlowAnalysisContext
.PointsToAnalysisResult!.ExitBlockOutput.Data.TryGetValue(
458
if (this.
DataFlowAnalysisContext
.HazardousUsageEvaluators.TryGetArgumentHazardousUsageEvaluator(
479
&& this.
DataFlowAnalysisContext
.HazardousUsageEvaluators.TryGetHazardousUsageEvaluator(
538
&& this.
DataFlowAnalysisContext
.HazardousUsageEvaluators.TryGetHazardousUsageEvaluator(
561
if (this.
DataFlowAnalysisContext
.HazardousUsageTypesToNames.TryGetValue(
571
if (this.
DataFlowAnalysisContext
.HazardousUsageTypesToNames.TryGetValue(
655
&& this.
DataFlowAnalysisContext
.HazardousUsageEvaluators.TryGetReturnHazardousUsageEvaluator(
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\TaintedDataAnalysis\TaintedDataAnalysis.TaintedDataOperationVisitor.cs (13)
123
if (this.
DataFlowAnalysisContext
.SourceInfos.IsSourceParameter(parameter, WellKnownTypeProvider))
234
&& this.
DataFlowAnalysisContext
.SourceInfos.IsSourceProperty(propertyReferenceOperation.Property))
306
if (this.
DataFlowAnalysisContext
.SourceInfos.IsSourceMethod(
309
new Lazy<PointsToAnalysisResult?>(() =>
DataFlowAnalysisContext
.PointsToAnalysisResult),
310
new Lazy<(PointsToAnalysisResult?, ValueContentAnalysisResult?)>(() => (
DataFlowAnalysisContext
.PointsToAnalysisResult,
DataFlowAnalysisContext
.ValueContentAnalysisResult)),
343
if (this.
DataFlowAnalysisContext
.SourceInfos.IsSourceTransferMethod(
505
&& this.
DataFlowAnalysisContext
.SourceInfos.IsSourceConstantArrayOfType(arrayTypeSymbol, operation)
564
IEnumerable<SinkInfo>? infosForType = this.
DataFlowAnalysisContext
.SinkInfos.GetInfosForType(targetMethod.ContainingType);
613
if (this.
DataFlowAnalysisContext
.SourceInfos.IsSourceTransferProperty(propertyReferenceOperation))
635
foreach (SanitizerInfo sanitizerInfo in this.
DataFlowAnalysisContext
.SanitizerInfos.GetInfosForType(method.ContainingType))
665
foreach (SanitizerInfo sanitizerInfo in this.
DataFlowAnalysisContext
.SanitizerInfos.GetInfosForType(method.ContainingType))
727
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)
85
=>
DataFlowAnalysisContext
.InterproceduralAnalysisConfiguration.InterproceduralAnalysisKind;
92
=>
DataFlowAnalysisContext
.InterproceduralAnalysisConfiguration.MaxInterproceduralMethodCallChain;
99
=>
DataFlowAnalysisContext
.InterproceduralAnalysisConfiguration.MaxInterproceduralLambdaOrLocalFunctionCallChain;
162
public AbstractValueDomain<TAbstractAnalysisValue> ValueDomain =>
DataFlowAnalysisContext
.ValueDomain;
163
protected ISymbol OwningSymbol =>
DataFlowAnalysisContext
.OwningSymbol;
164
protected WellKnownTypeProvider WellKnownTypeProvider =>
DataFlowAnalysisContext
.WellKnownTypeProvider;
166
=>
DataFlowAnalysisContext
.TryGetOrComputeAnalysisResult;
209
protected bool PessimisticAnalysis =>
DataFlowAnalysisContext
.PessimisticAnalysis;
214
protected bool PredicateAnalysis =>
DataFlowAnalysisContext
.PredicateAnalysis;
238
CurrentBasicBlock, WellKnownTypeProvider,
DataFlowAnalysisContext
.InterproceduralAnalysisData?.CallStack);
326
DataFlowAnalysisContext
.ControlFlowGraph,
327
DataFlowAnalysisContext
.WellKnownTypeProvider,
556
var argumentValuesMap =
DataFlowAnalysisContext
.InterproceduralAnalysisData?.ArgumentValuesMap ??
594
if (parameter.RefKind == RefKind.None ||
DataFlowAnalysisContext
.InterproceduralAnalysisData == null)
605
if (
DataFlowAnalysisContext
.PointsToAnalysisResult is { } pointsToAnalysisResult)
612
foreach (var localFunction in
DataFlowAnalysisContext
.ControlFlowGraph.LocalFunctions)
633
Debug.Assert(
DataFlowAnalysisContext
.ControlFlowGraph.LocalFunctions.Contains(localFunction));
651
if (
DataFlowAnalysisContext
.ExceptionPathsAnalysis && !ExecutingExceptionPathsAnalysisPostPass)
660
if (_lazyParameterEntities != null &&
DataFlowAnalysisContext
.InterproceduralAnalysisData != null)
663
_addressSharedEntitiesProvider.SetAddressSharedEntities(
DataFlowAnalysisContext
.InterproceduralAnalysisData.AddressSharedEntities);
730
var info = ThrownExceptionInfo.Create(CurrentBasicBlock, exceptionType,
DataFlowAnalysisContext
.InterproceduralAnalysisData?.CallStack);
763
if (
DataFlowAnalysisContext
.PointsToAnalysisResult != null &&
764
isPredicateAlwaysFalseForBranch(
DataFlowAnalysisContext
.PointsToAnalysisResult.GetPredicateKind(branch.BranchValue)))
769
if (
DataFlowAnalysisContext
.CopyAnalysisResult != null &&
770
isPredicateAlwaysFalseForBranch(
DataFlowAnalysisContext
.CopyAnalysisResult.GetPredicateKind(branch.BranchValue)))
775
if (
DataFlowAnalysisContext
.ValueContentAnalysisResult != null &&
776
isPredicateAlwaysFalseForBranch(
DataFlowAnalysisContext
.ValueContentAnalysisResult.GetPredicateKind(branch.BranchValue)))
840
var location = AbstractLocation.CreateAllocationLocation(returnValueOperation, method.ReturnType,
DataFlowAnalysisContext
.InterproceduralAnalysisData?.CallStack);
856
DataFlowAnalysisContext
.InterproceduralAnalysisData == null)
1055
if (
DataFlowAnalysisContext
.InterproceduralAnalysisData != null)
1057
return
DataFlowAnalysisContext
.InterproceduralAnalysisData.GetCachedAbstractValueFromCaller(operation);
1069
if (
DataFlowAnalysisContext
.InterproceduralAnalysisConfiguration.InterproceduralAnalysisKind != InterproceduralAnalysisKind.None)
1091
if (
DataFlowAnalysisContext
.CopyAnalysisResult == null)
1097
return
DataFlowAnalysisContext
.CopyAnalysisResult[operation];
1103
if (
DataFlowAnalysisContext
.PointsToAnalysisResult == null)
1109
return
DataFlowAnalysisContext
.PointsToAnalysisResult[operation];
1115
if (
DataFlowAnalysisContext
.ValueContentAnalysisResult == null)
1121
return
DataFlowAnalysisContext
.ValueContentAnalysisResult[operation];
1127
if (operation == null ||
DataFlowAnalysisContext
.PointsToAnalysisResult == null)
1133
return
DataFlowAnalysisContext
.PointsToAnalysisResult.GetEscapedAbstractLocations(operation);
1140
if (parameterEntity == null ||
DataFlowAnalysisContext
.PointsToAnalysisResult == null)
1146
return
DataFlowAnalysisContext
.PointsToAnalysisResult.GetEscapedAbstractLocations(parameterEntity);
1153
RoslynDebug.Assert(
DataFlowAnalysisContext
.PointsToAnalysisResult != null);
1155
var outputData =
DataFlowAnalysisContext
.PointsToAnalysisResult.EntryBlockOutput.Data;
1161
RoslynDebug.Assert(
DataFlowAnalysisContext
.PointsToAnalysisResult != null);
1162
var inputData =
DataFlowAnalysisContext
.PointsToAnalysisResult[CurrentBasicBlock].Data;
1175
RoslynDebug.Assert(
DataFlowAnalysisContext
.PointsToAnalysisResult != null);
1176
var inputData =
DataFlowAnalysisContext
.PointsToAnalysisResult.MergedStateForUnhandledThrowOperations?.Data;
1369
(
DataFlowAnalysisContext
.CopyAnalysisResult == null ||
DataFlowAnalysisContext
.CopyAnalysisResult[basicBlock].IsReachable) &&
1370
(
DataFlowAnalysisContext
.PointsToAnalysisResult == null ||
DataFlowAnalysisContext
.PointsToAnalysisResult[basicBlock].IsReachable) &&
1371
(
DataFlowAnalysisContext
.ValueContentAnalysisResult == null ||
DataFlowAnalysisContext
.ValueContentAnalysisResult[basicBlock].IsReachable);
2156
var adjustedExceptionInfo = exceptionInfo.With(CurrentBasicBlock,
DataFlowAnalysisContext
.InterproceduralAnalysisData?.CallStack);
2216
DataFlowAnalysisContext
.InterproceduralAnalysisPredicate?.SkipInterproceduralAnalysis(invokedMethod, isLambdaOrLocalFunction) == true ||
2217
DataFlowAnalysisContext
.AnalyzerOptions.IsConfiguredToSkipAnalysis(s_dummyDataflowAnalysisDescriptor, invokedMethod, OwningSymbol, WellKnownTypeProvider.Compilation);
2231
var currentMethodsBeingAnalyzed =
DataFlowAnalysisContext
.InterproceduralAnalysisData?.MethodsBeingAnalyzed ?? ImmutableHashSet<TAnalysisContext>.Empty;
2232
var newMethodsBeingAnalyzed = currentMethodsBeingAnalyzed.Add(
DataFlowAnalysisContext
);
2249
var pointsToAnalysisResult = (PointsToAnalysisResult?)
DataFlowAnalysisContext
.PointsToAnalysisResult?.TryGetInterproceduralResult(originalOperation);
2250
var copyAnalysisResult =
DataFlowAnalysisContext
.CopyAnalysisResult?.TryGetInterproceduralResult(originalOperation);
2251
var valueContentAnalysisResult =
DataFlowAnalysisContext
.ValueContentAnalysisResult?.TryGetInterproceduralResult(originalOperation);
2281
var interproceduralDataFlowAnalysisContext =
DataFlowAnalysisContext
.ForkForInterproceduralAnalysis(
2285
if (
DataFlowAnalysisContext
.InterproceduralAnalysisPredicate?.SkipInterproceduralAnalysis(interproceduralDataFlowAnalysisContext) == true)
2636
var pointsToAnalysisResult = (PointsToAnalysisResult?)
DataFlowAnalysisContext
.PointsToAnalysisResult?.TryGetStandaloneLocalFunctionAnalysisResult(localFunction);
2637
var copyAnalysisResult =
DataFlowAnalysisContext
.CopyAnalysisResult?.TryGetStandaloneLocalFunctionAnalysisResult(localFunction);
2638
var valueContentAnalysisResult =
DataFlowAnalysisContext
.ValueContentAnalysisResult?.TryGetStandaloneLocalFunctionAnalysisResult(localFunction);
2644
DataFlowAnalysisContext
.GetLocalFunctionControlFlowGraph(localFunction);
2656
_interproceduralCallStack.Push(
DataFlowAnalysisContext
.ControlFlowGraph.OriginalOperation);
2663
var interproceduralDataFlowAnalysisContext =
DataFlowAnalysisContext
.ForkForInterproceduralAnalysis(
2686
var pointsToAnalysisResult = (PointsToAnalysisResult?)
DataFlowAnalysisContext
.PointsToAnalysisResult?.TryGetInterproceduralResult(lambda);
2687
var copyAnalysisResult =
DataFlowAnalysisContext
.CopyAnalysisResult?.TryGetInterproceduralResult(lambda);
2688
var valueContentAnalysisResult =
DataFlowAnalysisContext
.ValueContentAnalysisResult?.TryGetInterproceduralResult(lambda);
2694
DataFlowAnalysisContext
.GetAnonymousFunctionControlFlowGraph(lambda);
2712
var interproceduralDataFlowAnalysisContext =
DataFlowAnalysisContext
.ForkForInterproceduralAnalysis(
2736
var currentMethodsBeingAnalyzed =
DataFlowAnalysisContext
.InterproceduralAnalysisData?.MethodsBeingAnalyzed ?? ImmutableHashSet<TAnalysisContext>.Empty;
2737
var newMethodsBeingAnalyzed = currentMethodsBeingAnalyzed.Add(
DataFlowAnalysisContext
);
2973
var flowCaptureForCaptureId =
DataFlowAnalysisContext
.ControlFlowGraph
3547
if (
DataFlowAnalysisContext
.InterproceduralAnalysisData != null)
3549
return
DataFlowAnalysisContext
.InterproceduralAnalysisData.GetInterproceduralControlFlowGraph(method);
3568
return
DataFlowAnalysisContext
.InterproceduralAnalysisData?.CallStack;
3571
return
DataFlowAnalysisContext
.InterproceduralAnalysisData?.GetInterproceduralCallStackForOwningSymbol(forOwningSymbol);
3580
ControlFlowGraph? getCfg() =>
DataFlowAnalysisContext
.GetLocalFunctionControlFlowGraph(localFunction);
3598
ControlFlowGraph? getCfg() =>
DataFlowAnalysisContext
.GetAnonymousFunctionControlFlowGraph(lambda);