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

56 lines
2.1 KiB
C#

using Roslyn.Utilities;
namespace Microsoft.CodeAnalysis.CSharp;
internal static class LanguageVersionExtensionsInternal
{
internal static bool IsValid(this LanguageVersion value)
{
switch (value)
{
case LanguageVersion.CSharp1:
case LanguageVersion.CSharp2:
case LanguageVersion.CSharp3:
case LanguageVersion.CSharp4:
case LanguageVersion.CSharp5:
case LanguageVersion.CSharp6:
case LanguageVersion.CSharp7:
case LanguageVersion.CSharp7_1:
case LanguageVersion.CSharp7_2:
case LanguageVersion.CSharp7_3:
case LanguageVersion.CSharp8:
case LanguageVersion.CSharp9:
case LanguageVersion.CSharp10:
case LanguageVersion.CSharp11:
case LanguageVersion.CSharp12:
case LanguageVersion.Preview:
return true;
default:
return false;
}
}
internal static ErrorCode GetErrorCode(this LanguageVersion version)
{
return version switch
{
LanguageVersion.CSharp1 => ErrorCode.ERR_FeatureNotAvailableInVersion1,
LanguageVersion.CSharp2 => ErrorCode.ERR_FeatureNotAvailableInVersion2,
LanguageVersion.CSharp3 => ErrorCode.ERR_FeatureNotAvailableInVersion3,
LanguageVersion.CSharp4 => ErrorCode.ERR_FeatureNotAvailableInVersion4,
LanguageVersion.CSharp5 => ErrorCode.ERR_FeatureNotAvailableInVersion5,
LanguageVersion.CSharp6 => ErrorCode.ERR_FeatureNotAvailableInVersion6,
LanguageVersion.CSharp7 => ErrorCode.ERR_FeatureNotAvailableInVersion7,
LanguageVersion.CSharp7_1 => ErrorCode.ERR_FeatureNotAvailableInVersion7_1,
LanguageVersion.CSharp7_2 => ErrorCode.ERR_FeatureNotAvailableInVersion7_2,
LanguageVersion.CSharp7_3 => ErrorCode.ERR_FeatureNotAvailableInVersion7_3,
LanguageVersion.CSharp8 => ErrorCode.ERR_FeatureNotAvailableInVersion8,
LanguageVersion.CSharp9 => ErrorCode.ERR_FeatureNotAvailableInVersion9,
LanguageVersion.CSharp10 => ErrorCode.ERR_FeatureNotAvailableInVersion10,
LanguageVersion.CSharp11 => ErrorCode.ERR_FeatureNotAvailableInVersion11,
LanguageVersion.CSharp12 => ErrorCode.ERR_FeatureNotAvailableInVersion12,
_ => throw ExceptionUtilities.UnexpectedValue((object)version),
};
}
}