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