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