76 references to ParameterValidationAbstractValue
Microsoft.CodeAnalysis.NetAnalyzers (76)
src\47c588c5b8785708\ParameterValidationAnalysis.cs (5)
14using ParameterValidationAnalysisData = DictionaryAnalysisData<AbstractLocation, ParameterValidationAbstractValue>; 15using ParameterValidationAnalysisDomain = MapAbstractDomain<AbstractLocation, ParameterValidationAbstractValue>; 18/// Dataflow analysis to track <see cref="ParameterValidationAbstractValue"/> of <see cref="AbstractLocation"/>/<see cref="IOperation"/> instances. 20internal partial class ParameterValidationAnalysis : ForwardDataFlowAnalysis<ParameterValidationAnalysisData, ParameterValidationAnalysisContext, ParameterValidationAnalysisResult, ParameterValidationBlockAnalysisResult, ParameterValidationAbstractValue> 109DataFlowAnalysisResult<ParameterValidationBlockAnalysisResult, ParameterValidationAbstractValue> dataFlowAnalysisResult)
src\47c588c5b8785708\ParameterValidationAnalysis.ParameterValidationAbstractValueDomain.cs (18)
8using ParameterValidationAnalysisData = DictionaryAnalysisData<AbstractLocation, ParameterValidationAbstractValue>; 10internal partial class ParameterValidationAnalysis : ForwardDataFlowAnalysis<ParameterValidationAnalysisData, ParameterValidationAnalysisContext, ParameterValidationAnalysisResult, ParameterValidationBlockAnalysisResult, ParameterValidationAbstractValue> 13/// Abstract value domain for <see cref="ParameterValidationAnalysis"/> to merge and compare <see cref="ParameterValidationAbstractValue"/> values. 15private class ParameterValidationAbstractValueDomain : AbstractValueDomain<ParameterValidationAbstractValue> 21public override ParameterValidationAbstractValue Bottom => ParameterValidationAbstractValue.NotApplicable; 23public override ParameterValidationAbstractValue UnknownOrMayBeValue => ParameterValidationAbstractValue.MayBeValidated; 25public override int Compare(ParameterValidationAbstractValue oldValue, ParameterValidationAbstractValue newValue, bool assertMonotonicity) 27return Comparer<ParameterValidationAbstractValue>.Default.Compare(oldValue, newValue); 30public override ParameterValidationAbstractValue Merge(ParameterValidationAbstractValue value1, ParameterValidationAbstractValue value2) 36else if (value1 == ParameterValidationAbstractValue.NotApplicable || 37value2 == ParameterValidationAbstractValue.NotApplicable) 39return ParameterValidationAbstractValue.NotApplicable; 42return ParameterValidationAbstractValue.MayBeValidated;
src\47c588c5b8785708\ParameterValidationAnalysis.ParameterValidationDataFlowOperationVisitor.cs (41)
16using ParameterValidationAnalysisData = DictionaryAnalysisData<AbstractLocation, ParameterValidationAbstractValue>; 18internal partial class ParameterValidationAnalysis : ForwardDataFlowAnalysis<ParameterValidationAnalysisData, ParameterValidationAnalysisContext, ParameterValidationAnalysisResult, ParameterValidationBlockAnalysisResult, ParameterValidationAbstractValue> 24AbstractLocationDataFlowOperationVisitor<ParameterValidationAnalysisData, ParameterValidationAnalysisContext, ParameterValidationAnalysisResult, ParameterValidationAbstractValue> 52protected override ParameterValidationAbstractValue GetAbstractDefaultValue(ITypeSymbol? type) => ValueDomain.Bottom; 56protected override ParameterValidationAbstractValue GetAbstractValue(AbstractLocation location) 57=> CurrentAnalysisData.TryGetValue(location, out var value) ? value : ValueDomain.Bottom; 82CurrentAnalysisData.TryGetValue(location, out var value) && 83(value == ParameterValidationAbstractValue.NotValidated || value == ParameterValidationAbstractValue.MayBeValidated); 87protected override void SetAbstractValue(AbstractLocation location, ParameterValidationAbstractValue value) 95protected override void SetAbstractValueForAssignment(IOperation target, IOperation? assignedValueOperation, ParameterValidationAbstractValue assignedValue, bool mayBeAssignment = false) 104protected override void SetAbstractValueForTupleElementAssignment(AnalysisEntity tupleElementEntity, IOperation assignedValueOperation, ParameterValidationAbstractValue assignedValue) 109protected override void SetAbstractValueForArrayElementInitializer(IArrayCreationOperation arrayCreation, ImmutableArray<AbstractIndex> indices, ITypeSymbol elementType, IOperation initializer, ParameterValidationAbstractValue value) 118var value = HasAnyNullValidationAttribute(parameter) ? ParameterValidationAbstractValue.Validated : ParameterValidationAbstractValue.NotValidated; 139SetAbstractValue(notValidatedLocations, ParameterValidationAbstractValue.Validated); 145=> SetAbstractValue(GetNotValidatedLocations(operation), ParameterValidationAbstractValue.Validated); 218public override ParameterValidationAbstractValue Visit(IOperation? operation, object? argument) 220var value = base.Visit(operation, argument); 234public override ParameterValidationAbstractValue VisitReDimClause(IReDimClauseOperation operation, object? argument) 236var value = base.VisitReDimClause(operation, argument); 241public override ParameterValidationAbstractValue VisitObjectCreation(IObjectCreationOperation operation, object? argument) 243var value = base.VisitObjectCreation(operation, argument)!; 248public override ParameterValidationAbstractValue VisitInvocation_NonLambdaOrDelegateOrLocalFunction( 254ParameterValidationAbstractValue defaultValue) 256var value = base.VisitInvocation_NonLambdaOrDelegateOrLocalFunction(method, visitedInstance, visitedArguments, invokedAsDelegate, originalOperation, defaultValue); 261public override ParameterValidationAbstractValue VisitInvocation_Lambda( 265ParameterValidationAbstractValue defaultValue) 267var value = base.VisitInvocation_Lambda(lambda, visitedArguments, originalOperation, defaultValue); 272public override ParameterValidationAbstractValue VisitInvocation_LocalFunction( 276ParameterValidationAbstractValue defaultValue) 278var value = base.VisitInvocation_LocalFunction(localFunction, visitedArguments, originalOperation, defaultValue); 379public override ParameterValidationAbstractValue VisitBinaryOperatorCore(IBinaryOperation operation, object? argument) 381var value = base.VisitBinaryOperatorCore(operation, argument); 421public override ParameterValidationAbstractValue VisitIsNull(IIsNullOperation operation, object? argument) 423var value = base.VisitIsNull(operation, argument); 432public override ParameterValidationAbstractValue VisitIsPattern(IIsPatternOperation operation, object? argument) 434var value = base.VisitIsPattern(operation, argument); 454public override ParameterValidationAbstractValue VisitIsType(IIsTypeOperation operation, object? argument) 456var value = base.VisitIsType(operation, argument);
src\47c588c5b8785708\ParameterValidationAnalysisContext.cs (7)
15using InterproceduralParameterValidationAnalysisData = InterproceduralAnalysisData<DictionaryAnalysisData<AbstractLocation, ParameterValidationAbstractValue>, ParameterValidationAnalysisContext, ParameterValidationAbstractValue>; 16using ParameterValidationAnalysisData = DictionaryAnalysisData<AbstractLocation, ParameterValidationAbstractValue>; 22internal sealed class ParameterValidationAnalysisContext : AbstractDataFlowAnalysisContext<ParameterValidationAnalysisData, ParameterValidationAnalysisContext, ParameterValidationAnalysisResult, ParameterValidationAbstractValue> 25AbstractValueDomain<ParameterValidationAbstractValue> valueDomain, 49AbstractValueDomain<ParameterValidationAbstractValue> valueDomain, 108protected override bool ComputeEqualsByHashCodeParts(AbstractDataFlowAnalysisContext<ParameterValidationAnalysisData, ParameterValidationAnalysisContext, ParameterValidationAnalysisResult, ParameterValidationAbstractValue> obj)
src\47c588c5b8785708\ParameterValidationAnalysisResult.cs (2)
11internal sealed class ParameterValidationAnalysisResult : DataFlowAnalysisResult<ParameterValidationBlockAnalysisResult, ParameterValidationAbstractValue> 14DataFlowAnalysisResult<ParameterValidationBlockAnalysisResult, ParameterValidationAbstractValue> parameterValidationAnalysisResult,
src\47c588c5b8785708\ParameterValidationBlockAnalysisResult.cs (3)
8using ParameterValidationAnalysisData = DictionaryAnalysisData<AbstractLocation, ParameterValidationAbstractValue>; 19Data = blockAnalysisData?.ToImmutableDictionary() ?? ImmutableDictionary<AbstractLocation, ParameterValidationAbstractValue>.Empty; 22public ImmutableDictionary<AbstractLocation, ParameterValidationAbstractValue> Data { get; }