Files
2026-08-27 10:56:38 -06:00

47 lines
1.3 KiB
C#

using Roslyn.Utilities;
namespace Microsoft.CodeAnalysis.CSharp;
internal static class LookupResultKindExtensions
{
public static CandidateReason ToCandidateReason(this LookupResultKind resultKind)
{
return (CandidateReason)(resultKind switch
{
LookupResultKind.Empty => 0,
LookupResultKind.NotATypeOrNamespace => 1,
LookupResultKind.NotAnAttributeType => 4,
LookupResultKind.WrongArity => 5,
LookupResultKind.Inaccessible => 8,
LookupResultKind.NotCreatable => 6,
LookupResultKind.NotReferencable => 7,
LookupResultKind.NotAValue => 9,
LookupResultKind.NotAVariable => 10,
LookupResultKind.NotInvocable => 11,
LookupResultKind.StaticInstanceMismatch => 12,
LookupResultKind.OverloadResolutionFailure => 13,
LookupResultKind.Ambiguous => 15,
LookupResultKind.MemberGroup => 16,
LookupResultKind.Viable => 0,
_ => throw ExceptionUtilities.UnexpectedValue((object)resultKind),
});
}
public static LookupResultKind WorseResultKind(this LookupResultKind resultKind1, LookupResultKind resultKind2)
{
if (resultKind1 == LookupResultKind.Empty)
{
return resultKind2;
}
if (resultKind2 == LookupResultKind.Empty)
{
return resultKind1;
}
if ((int)resultKind1 < (int)resultKind2)
{
return resultKind1;
}
return resultKind2;
}
}