5 instantiations of GlobalFlowStateAnalysisValueSet
Microsoft.CodeAnalysis.NetAnalyzers (5)
src\8ce1f4f68b646e6d\GlobalFlowStateAnalysisValueSet.cs (5)
18
public static readonly GlobalFlowStateAnalysisValueSet Unset =
new
(
20
public static readonly GlobalFlowStateAnalysisValueSet Empty =
new
(
22
public static readonly GlobalFlowStateAnalysisValueSet Unknown =
new
(
50
return
new
(analysisValues, parents, height, GlobalFlowStateAnalysisValueSetKind.Known);
54
=>
new
(ImmutableHashSet.Create(analysisValue), ImmutableHashSet<GlobalFlowStateAnalysisValueSet>.Empty, height: 0, GlobalFlowStateAnalysisValueSetKind.Known);
137 references to GlobalFlowStateAnalysisValueSet
Microsoft.CodeAnalysis.NetAnalyzers (137)
Microsoft.NetCore.Analyzers\InteropServices\PlatformCompatibilityAnalyzer.cs (7)
367
var
value = analysisResult[platformSpecificOperation.Key.Kind, platformSpecificOperation.Key.Syntax];
413
GlobalFlowStateAnalysisValueSet
> analysisResult, SmallDictionary<string, Versions>? originalCsAttributes, SmallDictionary<string, Versions> originalAttributes)
427
var
localValue = localResult[platformSpecificOperation.Kind, platformSpecificOperation.Syntax];
481
ref SmallDictionary<string, Versions>? csAttributes,
GlobalFlowStateAnalysisValueSet
value,
490
GlobalFlowStateAnalysisValueSet
value,
618
foreach (
var
parent in value.Parents)
705
static bool IsNegationOfParentValues(
GlobalFlowStateAnalysisValueSet
value, ImmutableHashSet<IAbstractAnalysisValue>.Enumerator parentEnumerator)
Microsoft.NetCore.Analyzers\InteropServices\PlatformCompatibilityAnalyzer.OperationVisitor.cs (14)
43
internal bool TryParseGuardAttributes(ISymbol symbol, ref
GlobalFlowStateAnalysisValueSet
value, ImmutableArray<IArgumentOperation> visitedArguments)
58
var
newValue =
GlobalFlowStateAnalysisValueSet
.Create(infosBuilder[i]);
178
public override
GlobalFlowStateAnalysisValueSet
VisitInvocation_NonLambdaOrDelegateOrLocalFunction(
184
GlobalFlowStateAnalysisValueSet
defaultValue)
186
var
value = base.VisitInvocation_NonLambdaOrDelegateOrLocalFunction(method, visitedInstance, visitedArguments, invokedAsDelegate, originalOperation, defaultValue);
196
var
newValue =
GlobalFlowStateAnalysisValueSet
.Create(infosBuilder[i]);
207
var
newValue =
GlobalFlowStateAnalysisValueSet
.Create(infosBuilder[i]);
262
public override
GlobalFlowStateAnalysisValueSet
VisitFieldReference(IFieldReferenceOperation operation, object? argument)
264
var
value = base.VisitFieldReference(operation, argument);
274
public override
GlobalFlowStateAnalysisValueSet
VisitPropertyReference(IPropertyReferenceOperation operation, object? argument)
276
var
value = base.VisitPropertyReference(operation, argument);
src\8ce1f4f68b646e6d\GlobalFlowStateAnalysis.cs (4)
13
using GlobalFlowStateAnalysisDomain = MapAbstractDomain<AnalysisEntity,
GlobalFlowStateAnalysisValueSet
>;
14
using GlobalFlowStateAnalysisData = DictionaryAnalysisData<AnalysisEntity,
GlobalFlowStateAnalysisValueSet
>;
15
using GlobalFlowStateAnalysisResult = DataFlowAnalysisResult<GlobalFlowStateBlockAnalysisResult,
GlobalFlowStateAnalysisValueSet
>;
21
internal sealed partial class GlobalFlowStateAnalysis : ForwardDataFlowAnalysis<GlobalFlowStateAnalysisData, GlobalFlowStateAnalysisContext, GlobalFlowStateAnalysisResult, GlobalFlowStateBlockAnalysisResult,
GlobalFlowStateAnalysisValueSet
>
src\8ce1f4f68b646e6d\GlobalFlowStateAnalysis.GlobalFlowStateAnalysisValueSetDomain.cs (39)
13
using GlobalFlowStateAnalysisData = DictionaryAnalysisData<AnalysisEntity,
GlobalFlowStateAnalysisValueSet
>;
14
using GlobalFlowStateAnalysisResult = DataFlowAnalysisResult<GlobalFlowStateBlockAnalysisResult,
GlobalFlowStateAnalysisValueSet
>;
16
internal partial class GlobalFlowStateAnalysis : ForwardDataFlowAnalysis<GlobalFlowStateAnalysisData, GlobalFlowStateAnalysisContext, GlobalFlowStateAnalysisResult, GlobalFlowStateBlockAnalysisResult,
GlobalFlowStateAnalysisValueSet
>
18
internal sealed class GlobalFlowStateAnalysisValueSetDomain : AbstractValueDomain<
GlobalFlowStateAnalysisValueSet
>
24
public override
GlobalFlowStateAnalysisValueSet
Bottom =>
GlobalFlowStateAnalysisValueSet
.Unset;
26
public override
GlobalFlowStateAnalysisValueSet
UnknownOrMayBeValue =>
GlobalFlowStateAnalysisValueSet
.Unknown;
28
public override int Compare(
GlobalFlowStateAnalysisValueSet
oldValue,
GlobalFlowStateAnalysisValueSet
newValue, bool assertMonotonicity)
50
public override
GlobalFlowStateAnalysisValueSet
Merge(
GlobalFlowStateAnalysisValueSet
value1,
GlobalFlowStateAnalysisValueSet
value2)
70
return
GlobalFlowStateAnalysisValueSet
.Unknown;
74
return
GlobalFlowStateAnalysisValueSet
.Empty;
102
return
GlobalFlowStateAnalysisValueSet
.Empty;
106
return
GlobalFlowStateAnalysisValueSet
.Create(
112
public static
GlobalFlowStateAnalysisValueSet
Intersect(
GlobalFlowStateAnalysisValueSet
value1,
GlobalFlowStateAnalysisValueSet
value2)
132
return
GlobalFlowStateAnalysisValueSet
.Unknown;
136
return
GlobalFlowStateAnalysisValueSet
.Empty;
151
var currentNodes = new Queue<
GlobalFlowStateAnalysisValueSet
>();
152
using var candidateNodes = PooledHashSet<
GlobalFlowStateAnalysisValueSet
>.GetInstance();
170
var
node = currentNodes.Dequeue();
171
foreach (
var
parent in node.Parents)
184
foreach (
var
candidate in candidateNodes)
204
GlobalFlowStateAnalysisValueSet
? result = null;
205
foreach (
var
candidate in candidateNodes)
213
return
GlobalFlowStateAnalysisValueSet
.Empty;
219
static
GlobalFlowStateAnalysisValueSet
Intersect(
GlobalFlowStateAnalysisValueSet
value1,
GlobalFlowStateAnalysisValueSet
value2)
221
_ = TryIntersect(value1, value2, out
var
result);
225
static bool TryIntersect(
GlobalFlowStateAnalysisValueSet
value1,
GlobalFlowStateAnalysisValueSet
value2, out
GlobalFlowStateAnalysisValueSet
result)
231
result =
GlobalFlowStateAnalysisValueSet
.Empty;
245
result =
GlobalFlowStateAnalysisValueSet
.Create(sets, value1.Parents, value1.Height);
src\8ce1f4f68b646e6d\GlobalFlowStateAnalysisContext.cs (8)
14
using InterproceduralGlobalFlowStateAnalysisData = InterproceduralAnalysisData<DictionaryAnalysisData<AnalysisEntity,
GlobalFlowStateAnalysisValueSet
>, GlobalFlowStateAnalysisContext,
GlobalFlowStateAnalysisValueSet
>;
15
using GlobalFlowStateAnalysisData = DictionaryAnalysisData<AnalysisEntity,
GlobalFlowStateAnalysisValueSet
>;
16
using GlobalFlowStateAnalysisResult = DataFlowAnalysisResult<GlobalFlowStateBlockAnalysisResult,
GlobalFlowStateAnalysisValueSet
>;
22
internal sealed class GlobalFlowStateAnalysisContext : AbstractDataFlowAnalysisContext<GlobalFlowStateAnalysisData, GlobalFlowStateAnalysisContext, GlobalFlowStateAnalysisResult,
GlobalFlowStateAnalysisValueSet
>
25
AbstractValueDomain<
GlobalFlowStateAnalysisValueSet
> valueDomain,
53
AbstractValueDomain<
GlobalFlowStateAnalysisValueSet
> valueDomain,
91
protected override bool ComputeEqualsByHashCodeParts(AbstractDataFlowAnalysisContext<GlobalFlowStateAnalysisData, GlobalFlowStateAnalysisContext, GlobalFlowStateAnalysisResult,
GlobalFlowStateAnalysisValueSet
> obj)
src\8ce1f4f68b646e6d\GlobalFlowStateAnalysisValueSet.cs (40)
16
internal sealed class GlobalFlowStateAnalysisValueSet : CacheBasedEquatable<
GlobalFlowStateAnalysisValueSet
>
18
public static readonly
GlobalFlowStateAnalysisValueSet
Unset = new(
19
ImmutableHashSet<IAbstractAnalysisValue>.Empty, ImmutableHashSet<
GlobalFlowStateAnalysisValueSet
>.Empty, 0, GlobalFlowStateAnalysisValueSetKind.Unset);
20
public static readonly
GlobalFlowStateAnalysisValueSet
Empty = new(
21
ImmutableHashSet<IAbstractAnalysisValue>.Empty, ImmutableHashSet<
GlobalFlowStateAnalysisValueSet
>.Empty, 0, GlobalFlowStateAnalysisValueSetKind.Empty);
22
public static readonly
GlobalFlowStateAnalysisValueSet
Unknown = new(
23
ImmutableHashSet<IAbstractAnalysisValue>.Empty, ImmutableHashSet<
GlobalFlowStateAnalysisValueSet
>.Empty, 0, GlobalFlowStateAnalysisValueSetKind.Unknown);
27
ImmutableHashSet<
GlobalFlowStateAnalysisValueSet
> parents,
44
public static
GlobalFlowStateAnalysisValueSet
Create(
46
ImmutableHashSet<
GlobalFlowStateAnalysisValueSet
> parents,
53
public static
GlobalFlowStateAnalysisValueSet
Create(IAbstractAnalysisValue analysisValue)
54
=> new(ImmutableHashSet.Create(analysisValue), ImmutableHashSet<
GlobalFlowStateAnalysisValueSet
>.Empty, height: 0, GlobalFlowStateAnalysisValueSetKind.Known);
57
public ImmutableHashSet<
GlobalFlowStateAnalysisValueSet
> Parents { get; }
61
private
GlobalFlowStateAnalysisValueSet
WithRootParent(
GlobalFlowStateAnalysisValueSet
newRoot)
68
return
GlobalFlowStateAnalysisValueSet
.Create(AnalysisValues, ImmutableHashSet.Create(newRoot), newHeight);
71
using var parentsBuilder = PooledHashSet<
GlobalFlowStateAnalysisValueSet
>.GetInstance();
72
foreach (
var
parent in Parents)
77
return
GlobalFlowStateAnalysisValueSet
.Create(AnalysisValues, parentsBuilder.ToImmutable(), newHeight);
80
internal
GlobalFlowStateAnalysisValueSet
WithAdditionalAnalysisValues(
GlobalFlowStateAnalysisValueSet
newAnalysisValuesSet, bool negate)
85
private
GlobalFlowStateAnalysisValueSet
WithAdditionalAnalysisValuesCore(
GlobalFlowStateAnalysisValueSet
newAnalysisValues)
96
return
GlobalFlowStateAnalysisValueSet
.Create(
103
internal
GlobalFlowStateAnalysisValueSet
GetNegatedValue()
110
return
GlobalFlowStateAnalysisValueSet
.Create(negatedAnalysisValues, Parents, Height);
118
var parentsBuilder = ImmutableHashSet.CreateBuilder<
GlobalFlowStateAnalysisValueSet
>();
121
parentsBuilder.Add(
GlobalFlowStateAnalysisValueSet
.Create(analysisValue.GetNegatedValue()));
127
var
negatedValueFromParents = GetNegateValueFromParents(Parents);
138
return
GlobalFlowStateAnalysisValueSet
.Create(ImmutableHashSet<IAbstractAnalysisValue>.Empty, parentsBuilder.ToImmutable(), height);
141
static
GlobalFlowStateAnalysisValueSet
GetNegateValueFromParents(ImmutableHashSet<
GlobalFlowStateAnalysisValueSet
> parents)
145
var parentsBuilder = ImmutableHashSet.CreateBuilder<
GlobalFlowStateAnalysisValueSet
>();
148
foreach (
var
parent in parents)
156
var
negatedParent = parent.GetNegatedValue();
162
return
GlobalFlowStateAnalysisValueSet
.Create(analysisValuesBuilder.ToImmutable(), parentsBuilder.ToImmutable(), height);
174
protected override bool ComputeEqualsByHashCodeParts(CacheBasedEquatable<
GlobalFlowStateAnalysisValueSet
> obj)
176
var
other = (
GlobalFlowStateAnalysisValueSet
)obj;
195
foreach (
var
parent in Parents)
src\8ce1f4f68b646e6d\GlobalFlowStateBlockAnalysisResult.cs (3)
8
using GlobalFlowStateAnalysisData = DictionaryAnalysisData<AnalysisEntity,
GlobalFlowStateAnalysisValueSet
>;
19
Data = blockAnalysisData?.ToImmutableDictionary() ?? ImmutableDictionary<AnalysisEntity,
GlobalFlowStateAnalysisValueSet
>.Empty;
22
public ImmutableDictionary<AnalysisEntity,
GlobalFlowStateAnalysisValueSet
> Data { get; }
src\8ce1f4f68b646e6d\GlobalFlowStateValueSetFlowOperationVisitor.cs (22)
11
using GlobalFlowStateAnalysisData = DictionaryAnalysisData<AnalysisEntity,
GlobalFlowStateAnalysisValueSet
>;
12
using GlobalFlowStateAnalysisResult = DataFlowAnalysisResult<GlobalFlowStateBlockAnalysisResult,
GlobalFlowStateAnalysisValueSet
>;
18
: GlobalFlowStateDataFlowOperationVisitor<GlobalFlowStateAnalysisContext, GlobalFlowStateAnalysisResult,
GlobalFlowStateAnalysisValueSet
>
34
var
branchValue = GetCachedAbstractValue(branch.BranchValue);
42
protected void MergeAndSetGlobalState(
GlobalFlowStateAnalysisValueSet
value, bool negate = false)
48
var
currentGlobalValue = GetAbstractValue(GlobalEntity);
51
var
newGlobalValue = currentGlobalValue.WithAdditionalAnalysisValues(value, negate);
57
protected sealed override
GlobalFlowStateAnalysisValueSet
GetAbstractDefaultValue(ITypeSymbol? type)
58
=>
GlobalFlowStateAnalysisValueSet
.Unset;
60
protected sealed override void SetAbstractValue(AnalysisEntity analysisEntity,
GlobalFlowStateAnalysisValueSet
value)
66
protected override void SetAbstractValue(GlobalFlowStateAnalysisData analysisData, AnalysisEntity analysisEntity,
GlobalFlowStateAnalysisValueSet
value)
90
if (value1.TryGetValue(GlobalEntity, out
var
value) && value ==
GlobalFlowStateAnalysisValueSet
.Unset)
91
value1[GlobalEntity] =
GlobalFlowStateAnalysisValueSet
.Empty;
93
if (value2.TryGetValue(GlobalEntity, out value) && value ==
GlobalFlowStateAnalysisValueSet
.Unset)
94
value2[GlobalEntity] =
GlobalFlowStateAnalysisValueSet
.Empty;
107
public override
GlobalFlowStateAnalysisValueSet
VisitInvocation_NonLambdaOrDelegateOrLocalFunction(
113
GlobalFlowStateAnalysisValueSet
defaultValue)
115
var
value = base.VisitInvocation_NonLambdaOrDelegateOrLocalFunction(method, visitedInstance, visitedArguments, invokedAsDelegate, originalOperation, defaultValue);
120
var
argumentValue = GetCachedAbstractValue(visitedArguments[0]);
127
public override
GlobalFlowStateAnalysisValueSet
VisitUnaryOperatorCore(IUnaryOperation operation, object? argument)
129
var
value = base.VisitUnaryOperatorCore(operation, argument);