' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. Imports System.Runtime.CompilerServices Namespace Microsoft.CodeAnalysis.VisualBasic.Syntax.InternalSyntax Friend Enum Feature AutoProperties LineContinuation StatementLambdas CoContraVariance CollectionInitializers SubLambdas ArrayLiterals AsyncExpressions Iterators GlobalNamespace NullPropagatingOperator NameOfExpressions InterpolatedStrings ReadonlyAutoProperties RegionsEverywhere MultilineStringLiterals CObjInAttributeArguments LineContinuationComments TypeOfIsNot YearFirstDateLiterals WarningDirectives PartialModules PartialInterfaces ImplementingReadonlyOrWriteonlyPropertyWithReadwrite DigitSeparators BinaryLiterals End Enum Friend Module FeatureExtensions Friend Function GetFeatureFlag(feature As Feature) As String Select Case feature Case Feature.DigitSeparators Return "digitSeparators" Case feature.BinaryLiterals Return "binaryLiterals" Case Else Return Nothing End Select End Function Friend Function GetLanguageVersion(feature As Feature) As LanguageVersion Select Case feature Case Feature.AutoProperties, Feature.LineContinuation, Feature.StatementLambdas, Feature.CoContraVariance, Feature.CollectionInitializers, Feature.SubLambdas, Feature.ArrayLiterals Return LanguageVersion.VisualBasic10 Case Feature.AsyncExpressions, Feature.Iterators, Feature.GlobalNamespace Return LanguageVersion.VisualBasic11 Case Feature.NullPropagatingOperator, Feature.NameOfExpressions, Feature.InterpolatedStrings, Feature.ReadonlyAutoProperties, Feature.RegionsEverywhere, Feature.MultilineStringLiterals, Feature.CObjInAttributeArguments, Feature.LineContinuationComments, Feature.TypeOfIsNot, Feature.YearFirstDateLiterals, Feature.WarningDirectives, Feature.PartialModules, Feature.PartialInterfaces, Feature.ImplementingReadonlyOrWriteonlyPropertyWithReadwrite Return LanguageVersion.VisualBasic14 Case Else Throw ExceptionUtilities.UnexpectedValue(feature) End Select End Function Friend Function GetResourceId(feature As Feature) As ERRID Select Case feature Case Feature.AutoProperties Return ERRID.FEATURE_AutoProperties Case Feature.ReadonlyAutoProperties Return ERRID.FEATURE_ReadonlyAutoProperties Case Feature.LineContinuation Return ERRID.FEATURE_LineContinuation Case Feature.StatementLambdas Return ERRID.FEATURE_StatementLambdas Case Feature.CoContraVariance Return ERRID.FEATURE_CoContraVariance Case Feature.CollectionInitializers Return ERRID.FEATURE_CollectionInitializers Case Feature.SubLambdas Return ERRID.FEATURE_SubLambdas Case Feature.ArrayLiterals Return ERRID.FEATURE_ArrayLiterals Case Feature.AsyncExpressions Return ERRID.FEATURE_AsyncExpressions Case Feature.Iterators Return ERRID.FEATURE_Iterators Case Feature.GlobalNamespace Return ERRID.FEATURE_GlobalNamespace Case Feature.NullPropagatingOperator Return ERRID.FEATURE_NullPropagatingOperator Case Feature.NameOfExpressions Return ERRID.FEATURE_NameOfExpressions Case Feature.RegionsEverywhere Return ERRID.FEATURE_RegionsEverywhere Case Feature.MultilineStringLiterals Return ERRID.FEATURE_MultilineStringLiterals Case Feature.CObjInAttributeArguments Return ERRID.FEATURE_CObjInAttributeArguments Case Feature.LineContinuationComments Return ERRID.FEATURE_LineContinuationComments Case Feature.TypeOfIsNot Return ERRID.FEATURE_TypeOfIsNot Case Feature.YearFirstDateLiterals Return ERRID.FEATURE_YearFirstDateLiterals Case Feature.WarningDirectives Return ERRID.FEATURE_WarningDirectives Case Feature.PartialModules Return ERRID.FEATURE_PartialModules Case Feature.PartialInterfaces Return ERRID.FEATURE_PartialInterfaces Case Feature.ImplementingReadonlyOrWriteonlyPropertyWithReadwrite Return ERRID.FEATURE_ImplementingReadonlyOrWriteonlyPropertyWithReadwrite Case Feature.DigitSeparators Return ERRID.FEATURE_DigitSeparators Case Feature.BinaryLiterals Return ERRID.FEATURE_BinaryLiterals Case Else Throw ExceptionUtilities.UnexpectedValue(feature) End Select End Function End Module End Namespace