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