File: BoundTree\BoundNullCoalescingOperatorResultKind.cs
Web Access
Project: src\src\Compilers\CSharp\Portable\Microsoft.CodeAnalysis.CSharp.csproj (Microsoft.CodeAnalysis.CSharp)
// 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.CSharp
{
    /// <summary>
    /// Represents the operand type used for the result of a null-coalescing
    /// operator. Used when determining nullability.
    /// </summary>
    internal enum BoundNullCoalescingOperatorResultKind
    {
        /// <summary>
        /// No valid type for operator.
        /// </summary>
        NoCommonType,
 
        /// <summary>
        /// Type of left operand is used.
        /// </summary>
        LeftType,
 
        /// <summary>
        /// Nullable underlying type of left operand is used.
        /// </summary>
        LeftUnwrappedType,
 
        /// <summary>
        /// Type of right operand is used.
        /// </summary>
        RightType,
 
        /// <summary>
        /// Type of right operand is used and nullable left operand is converted
        /// to underlying type before converting to right operand type.
        /// </summary>
        LeftUnwrappedRightType,
 
        /// <summary>
        /// Type of right operand is dynamic and is used.
        /// </summary>
        RightDynamicType,
    }
}