5 instantiations of PropertySetAbstractValue
Microsoft.CodeAnalysis.AnalyzerUtilities (5)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAbstractValue.cs (3)
30
public static readonly PropertySetAbstractValue Unknown =
new
();
52
return new
PropertySetAbstractValue
(propertyAbstractValues.ToImmutable());
64
return new
PropertySetAbstractValue
(propertyAbstractValues);
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAbstractValue.ValuePool.cs (2)
45
this.OneDimensionalPool[i] = new
PropertySetAbstractValue
(
64
this.TwoDimensionalPool[i, j] = new
PropertySetAbstractValue
(
98 references to PropertySetAbstractValue
Microsoft.CodeAnalysis.AnalyzerUtilities (98)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\ConstructorMapper.cs (4)
22
/// Mapping a constructor's arguments to a <see cref="
PropertySetAbstractValue
"/>.
28
public delegate
PropertySetAbstractValue
ValueContentAbstractValueCallback(
34
/// Mapping a constructor's arguments to a <see cref="
PropertySetAbstractValue
"/>.
39
public delegate
PropertySetAbstractValue
PointsToAbstractValueCallback(
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\HazardousUsageEvaluator.cs (7)
11
/// Determines if usage of a <see cref="
PropertySetAbstractValue
"/> is hazardous or not.
18
/// Evaluates if the method invocation with a given <see cref="
PropertySetAbstractValue
"/> is hazardous or not.
23
public delegate HazardousUsageEvaluationResult InvocationEvaluationCallback(IMethodSymbol methodSymbol,
PropertySetAbstractValue
propertySetAbstractValue);
26
/// Evaluates if a given <see cref="
PropertySetAbstractValue
"/> is hazardous or not.
30
public delegate HazardousUsageEvaluationResult EvaluationCallback(
PropertySetAbstractValue
propertySetAbstractValue);
105
/// Evaluates if the method invocation with a given <see cref="
PropertySetAbstractValue
"/> is hazardous or not.
115
/// Evaluates if the return statement or initialization value with a given <see cref="
PropertySetAbstractValue
"/> is hazardous or not.
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAbstractValue.cs (9)
30
public static readonly
PropertySetAbstractValue
Unknown = new();
34
public static
PropertySetAbstractValue
GetInstance(PropertySetAbstractValueKind v1)
39
public static
PropertySetAbstractValue
GetInstance(PropertySetAbstractValueKind v1, PropertySetAbstractValueKind v2)
44
public static
PropertySetAbstractValue
GetInstance(ArrayBuilder<PropertySetAbstractValueKind> propertyAbstractValues)
46
if (TryGetPooledInstance(propertyAbstractValues, out
PropertySetAbstractValue
? instance))
56
public static
PropertySetAbstractValue
GetInstance(ImmutableArray<PropertySetAbstractValueKind> propertyAbstractValues)
58
if (TryGetPooledInstance(propertyAbstractValues, out
PropertySetAbstractValue
? instance))
68
private static bool TryGetPooledInstance(IReadOnlyList<PropertySetAbstractValueKind> values, [NotNullWhen(returnValue: true)] out
PropertySetAbstractValue
? instance)
152
internal
PropertySetAbstractValue
ReplaceAt(int index, PropertySetAbstractValueKind kind)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAbstractValue.ValuePool.cs (7)
20
private readonly
PropertySetAbstractValue
[] OneDimensionalPool;
25
private readonly
PropertySetAbstractValue
[,] TwoDimensionalPool;
36
this.OneDimensionalPool = new
PropertySetAbstractValue
[values.Length];
41
this.OneDimensionalPool[i] =
PropertySetAbstractValue
.Unknown;
50
this.TwoDimensionalPool = new
PropertySetAbstractValue
[values.Length, values.Length];
73
public
PropertySetAbstractValue
GetInstance(PropertySetAbstractValueKind v1)
78
public
PropertySetAbstractValue
GetInstance(PropertySetAbstractValueKind v1, PropertySetAbstractValueKind v2)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysis.cs (5)
20
using PropertySetAnalysisData = DictionaryAnalysisData<AbstractLocation,
PropertySetAbstractValue
>;
21
using PropertySetAnalysisDomain = MapAbstractDomain<AbstractLocation,
PropertySetAbstractValue
>;
25
/// Dataflow analysis to track <see cref="
PropertySetAbstractValue
"/> of <see cref="AbstractLocation"/>/<see cref="IOperation"/> instances.
27
internal partial class PropertySetAnalysis : ForwardDataFlowAnalysis<PropertySetAnalysisData, PropertySetAnalysisContext, PropertySetAnalysisResult, PropertySetBlockAnalysisResult,
PropertySetAbstractValue
>
314
DataFlowAnalysisResult<PropertySetBlockAnalysisResult,
PropertySetAbstractValue
> dataFlowAnalysisResult)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysis.PropertySetAbstractValueDomain.cs (12)
14
/// Abstract value domain for <see cref="PropertySetAnalysis"/> to merge and compare <see cref="
PropertySetAbstractValue
"/> values.
16
private class PropertySetAbstractValueDomain : AbstractValueDomain<
PropertySetAbstractValue
>
22
public override
PropertySetAbstractValue
Bottom =>
PropertySetAbstractValue
.Unknown;
24
public override
PropertySetAbstractValue
UnknownOrMayBeValue =>
PropertySetAbstractValue
.Unknown;
26
public override int Compare(
PropertySetAbstractValue
oldValue,
PropertySetAbstractValue
newValue, bool assertMonotonicity)
57
public override
PropertySetAbstractValue
Merge(
PropertySetAbstractValue
value1,
PropertySetAbstractValue
value2)
69
return
PropertySetAbstractValue
.GetInstance(builder);
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysis.PropertySetDataFlowOperationVisitor.cs (36)
22
using PropertySetAnalysisData = DictionaryAnalysisData<AbstractLocation,
PropertySetAbstractValue
>;
30
AbstractLocationDataFlowOperationVisitor<PropertySetAnalysisData, PropertySetAnalysisContext, PropertySetAnalysisResult,
PropertySetAbstractValue
>
90
protected override
PropertySetAbstractValue
GetAbstractDefaultValue(ITypeSymbol? type) => ValueDomain.Bottom;
94
protected override
PropertySetAbstractValue
GetAbstractValue(AbstractLocation location)
95
=> this.CurrentAnalysisData.TryGetValue(location, out
var
value) ? value : ValueDomain.Bottom;
101
protected override void SetAbstractValue(AbstractLocation location,
PropertySetAbstractValue
value)
103
if (value !=
PropertySetAbstractValue
.Unknown
133
protected override void SetAbstractValueForArrayElementInitializer(IArrayCreationOperation arrayCreation, ImmutableArray<AbstractIndex> indices, ITypeSymbol elementType, IOperation initializer,
PropertySetAbstractValue
value)
137
protected override void SetAbstractValueForAssignment(IOperation target, IOperation? assignedValueOperation,
PropertySetAbstractValue
assignedValue, bool mayBeAssignment = false)
141
protected override void SetAbstractValueForTupleElementAssignment(AnalysisEntity tupleElementEntity, IOperation assignedValueOperation,
PropertySetAbstractValue
assignedValue)
145
public override
PropertySetAbstractValue
VisitObjectCreation(IObjectCreationOperation operation, object? argument)
147
PropertySetAbstractValue
abstractValue = base.VisitObjectCreation(operation, argument);
156
abstractValue =
PropertySetAbstractValue
.GetInstance(constructorMapper.PropertyAbstractValues);
204
(
PropertySetAbstractValue
abstractValue) => hazardousUsageEvaluator.InvocationEvaluator!(
213
protected override
PropertySetAbstractValue
VisitAssignmentOperation(IAssignmentOperation operation, object? argument)
215
PropertySetAbstractValue
? baseValue = base.VisitAssignmentOperation(operation, argument);
312
PropertySetAbstractValue
propertySetAbstractValue = this.GetAbstractValue(location);
327
return baseValue ??
PropertySetAbstractValue
.Unknown.ReplaceAt(index, propertySetAbstractValueKind);
385
out
var
propertySetAbstractValue))
387
propertySetAbstractValue =
PropertySetAbstractValue
.Unknown;
415
initializationHazardousUsageEvaluator?.ValueEvaluator!(
PropertySetAbstractValue
.Unknown);
454
public override
PropertySetAbstractValue
VisitInvocation_NonLambdaOrDelegateOrLocalFunction(IMethodSymbol method, IOperation? visitedInstance, ImmutableArray<IArgumentOperation> visitedArguments, bool invokedAsDelegate, IOperation originalOperation,
PropertySetAbstractValue
defaultValue)
456
PropertySetAbstractValue
baseValue = base.VisitInvocation_NonLambdaOrDelegateOrLocalFunction(method, visitedInstance, visitedArguments, invokedAsDelegate, originalOperation, defaultValue);
469
(
PropertySetAbstractValue
abstractValue) => argumentHazardousUsageEvaluator.ValueEvaluator!(abstractValue));
493
(
PropertySetAbstractValue
abstractValue) => hazardousUsageEvaluator!.InvocationEvaluator!(method, abstractValue));
596
Func<
PropertySetAbstractValue
, HazardousUsageEvaluationResult> evaluationFunction,
597
Func<AbstractLocation,
PropertySetAbstractValue
>? locationToAbstractValueMapping = null)
605
PropertySetAbstractValue
locationAbstractValue = locationToAbstractValueMapping(location);
633
public override
PropertySetAbstractValue
VisitInvocation_LocalFunction(IMethodSymbol localFunction, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation,
PropertySetAbstractValue
defaultValue)
635
PropertySetAbstractValue
baseValue = base.VisitInvocation_LocalFunction(localFunction, visitedArguments, originalOperation, defaultValue);
641
public override
PropertySetAbstractValue
VisitInvocation_Lambda(IFlowAnonymousFunctionOperation lambda, ImmutableArray<IArgumentOperation> visitedArguments, IOperation originalOperation,
PropertySetAbstractValue
defaultValue)
643
PropertySetAbstractValue
baseValue = base.VisitInvocation_Lambda(lambda, visitedArguments, originalOperation, defaultValue);
662
(
PropertySetAbstractValue
abstractValue) => hazardousUsageEvaluator.ValueEvaluator!(abstractValue));
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysisContext.cs (7)
19
using InterproceduralPropertySetAnalysisData = InterproceduralAnalysisData<DictionaryAnalysisData<AbstractLocation,
PropertySetAbstractValue
>, PropertySetAnalysisContext,
PropertySetAbstractValue
>;
20
using PropertySetAnalysisData = DictionaryAnalysisData<AbstractLocation,
PropertySetAbstractValue
>;
26
internal sealed class PropertySetAnalysisContext : AbstractDataFlowAnalysisContext<PropertySetAnalysisData, PropertySetAnalysisContext, PropertySetAnalysisResult,
PropertySetAbstractValue
>
29
AbstractValueDomain<
PropertySetAbstractValue
> valueDomain,
72
AbstractValueDomain<
PropertySetAbstractValue
> valueDomain,
168
protected override bool ComputeEqualsByHashCodeParts(AbstractDataFlowAnalysisContext<PropertySetAnalysisData, PropertySetAnalysisContext, PropertySetAnalysisResult,
PropertySetAbstractValue
> obj)
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetAnalysisResult.cs (2)
15
internal sealed class PropertySetAnalysisResult : DataFlowAnalysisResult<PropertySetBlockAnalysisResult,
PropertySetAbstractValue
>
18
DataFlowAnalysisResult<PropertySetBlockAnalysisResult,
PropertySetAbstractValue
> propertySetAnalysisResult,
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetBlockAnalysisResult.cs (4)
11
using PropertySetAnalysisData = DictionaryAnalysisData<AbstractLocation,
PropertySetAbstractValue
>;
15
/// It stores <see cref="
PropertySetAbstractValue
"/>s for each <see cref="AbstractLocation"/> at the start and end of the basic block.
22
Data = blockAnalysisData?.ToImmutableDictionary() ?? ImmutableDictionary<AbstractLocation,
PropertySetAbstractValue
>.Empty;
25
public ImmutableDictionary<AbstractLocation,
PropertySetAbstractValue
> Data { get; }
src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PropertySetAnalysis\PropertySetCallbacks.cs (5)
122
PropertySetAbstractValue
propertySetAbstractValue)
135
PropertySetAbstractValue
propertySetAbstractValue)
152
PropertySetAbstractValue
propertySetAbstractValue)
169
PropertySetAbstractValue
propertySetAbstractValue)
180
PropertySetAbstractValue
propertySetAbstractValue,