src\11b41c7305441175\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (37)
21using PropertySetAnalysisData = DictionaryAnalysisData<AbstractLocation, PropertySetAbstractValue>;
29AbstractLocationDataFlowOperationVisitor<PropertySetAnalysisData, PropertySetAnalysisContext, PropertySetAnalysisResult, PropertySetAbstractValue>
89protected override PropertySetAbstractValue GetAbstractDefaultValue(ITypeSymbol? type) => ValueDomain.Bottom;
93protected override PropertySetAbstractValue GetAbstractValue(AbstractLocation location)
94=> this.CurrentAnalysisData.TryGetValue(location, out var value) ? value : ValueDomain.Bottom;
100protected override void SetAbstractValue(AbstractLocation location, PropertySetAbstractValue value)
102if (value != PropertySetAbstractValue.Unknown
132protected override void SetAbstractValueForArrayElementInitializer(IArrayCreationOperation arrayCreation, ImmutableArray<AbstractIndex> indices, ITypeSymbol elementType, IOperation initializer, PropertySetAbstractValue value)
136protected override void SetAbstractValueForAssignment(IOperation target, IOperation? assignedValueOperation, PropertySetAbstractValue assignedValue, bool mayBeAssignment = false)
140protected override void SetAbstractValueForTupleElementAssignment(AnalysisEntity tupleElementEntity, IOperation assignedValueOperation, PropertySetAbstractValue assignedValue)
144public override PropertySetAbstractValue VisitObjectCreation(IObjectCreationOperation operation, object? argument)
146PropertySetAbstractValue abstractValue = base.VisitObjectCreation(operation, argument);
153if (constructorMapper.MapWithoutValueContent?.Invoke(operation.Constructor) is PropertySetAbstractValue mappedValue)
159abstractValue = PropertySetAbstractValue.GetInstance(constructorMapper.PropertyAbstractValues);
207(PropertySetAbstractValue abstractValue) => hazardousUsageEvaluator.InvocationEvaluator!(
216protected override PropertySetAbstractValue VisitAssignmentOperation(IAssignmentOperation operation, object? argument)
218PropertySetAbstractValue? baseValue = base.VisitAssignmentOperation(operation, argument);
315PropertySetAbstractValue propertySetAbstractValue = this.GetAbstractValue(location);
330return baseValue ?? PropertySetAbstractValue.Unknown.ReplaceAt(index, propertySetAbstractValueKind);
388out var propertySetAbstractValue))
390propertySetAbstractValue = PropertySetAbstractValue.Unknown;
418initializationHazardousUsageEvaluator?.ValueEvaluator!(PropertySetAbstractValue.Unknown);
457public override PropertySetAbstractValue VisitInvocation_NonLambdaOrDelegateOrLocalFunction(IMethodSymbol method, IOperation? visitedInstance, ImmutableArray<IArgumentOperation> visitedArguments, bool invokedAsDelegate, IOperation originalOperation, PropertySetAbstractValue defaultValue)
459PropertySetAbstractValue baseValue = base.VisitInvocation_NonLambdaOrDelegateOrLocalFunction(method, visitedInstance, visitedArguments, invokedAsDelegate, originalOperation, defaultValue);
472(PropertySetAbstractValue abstractValue) => argumentHazardousUsageEvaluator.ValueEvaluator!(abstractValue));
496(PropertySetAbstractValue abstractValue) => hazardousUsageEvaluator!.InvocationEvaluator!(method, abstractValue));
599Func<PropertySetAbstractValue, HazardousUsageEvaluationResult> evaluationFunction,
600Func<AbstractLocation, PropertySetAbstractValue>? locationToAbstractValueMapping = null)
608PropertySetAbstractValue locationAbstractValue = locationToAbstractValueMapping(location);
636public override PropertySetAbstractValue VisitInvocation_LocalFunction(IMethodSymbol localFunction, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, PropertySetAbstractValue defaultValue)
638PropertySetAbstractValue baseValue = base.VisitInvocation_LocalFunction(localFunction, visitedArguments, originalOperation, defaultValue);
644public override PropertySetAbstractValue VisitInvocation_Lambda(IFlowAnonymousFunctionOperation lambda, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation, PropertySetAbstractValue defaultValue)
646PropertySetAbstractValue baseValue = base.VisitInvocation_Lambda(lambda, visitedArguments, originalOperation, defaultValue);
665(PropertySetAbstractValue abstractValue) => hazardousUsageEvaluator.ValueEvaluator!(abstractValue));
src\11b41c7305441175\PropertySetAnalysisContext.cs (7)
18using InterproceduralPropertySetAnalysisData = InterproceduralAnalysisData<DictionaryAnalysisData<AbstractLocation, PropertySetAbstractValue>, PropertySetAnalysisContext, PropertySetAbstractValue>;
19using PropertySetAnalysisData = DictionaryAnalysisData<AbstractLocation, PropertySetAbstractValue>;
25internal sealed class PropertySetAnalysisContext : AbstractDataFlowAnalysisContext<PropertySetAnalysisData, PropertySetAnalysisContext, PropertySetAnalysisResult, PropertySetAbstractValue>
28AbstractValueDomain<PropertySetAbstractValue> valueDomain,
71AbstractValueDomain<PropertySetAbstractValue> valueDomain,
167protected override bool ComputeEqualsByHashCodeParts(AbstractDataFlowAnalysisContext<PropertySetAnalysisData, PropertySetAnalysisContext, PropertySetAnalysisResult, PropertySetAbstractValue> obj)