File: src\RoslynAnalyzers\Utilities\FlowAnalysis\FlowAnalysis\Analysis\PointsToAnalysis\PointsToAbstractValueKind.cs
Web Access
Project: src\src\RoslynAnalyzers\Microsoft.CodeAnalysis.AnalyzerUtilities\Microsoft.CodeAnalysis.AnalyzerUtilities.csproj (Microsoft.CodeAnalysis.AnalyzerUtilities)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
namespace Microsoft.CodeAnalysis.FlowAnalysis.DataFlow.PointsToAnalysis
{
    /// <summary>
    /// Kind for the <see cref="PointsToAbstractValue"/>.
    /// </summary>
    public enum PointsToAbstractValueKind
    {
        /// <summary>
        /// Invalid value based on predicate analysis.
        /// </summary>
        Invalid,
 
        /// <summary>
        /// Undefined value.
        /// </summary>
        Undefined,
 
        /// <summary>
        /// Points to one or more known possible locations.
        /// </summary>
        KnownLocations,
 
        /// <summary>
        /// Points to one or more known possible l-values.
        /// Used for pointers, ref expressions and l-value flow captures.
        /// </summary>
        KnownLValueCaptures,
 
        /// <summary>
        /// Points to unknown set of locations, which is known to be null.
        /// Note that this value kind is theoretically not needed, as the underlying
        /// value is null, but it has been added to ensure monotonicity of value merge.
        /// </summary>
        UnknownNull,
 
        /// <summary>
        /// Points to unknown set of locations, which is known to be non-null.
        /// </summary>
        UnknownNotNull,
 
        /// <summary>
        /// Points to unknown set of locations, which may or may not be null.
        /// </summary>
        Unknown,
    }
}