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