public static string ToLocalizableString(this TypeOrNamespaceUsageInfo info) { // We don't support localizing value combinations. Debug.Assert(info.IsSingleBitSet()); switch (info) { case TypeOrNamespaceUsageInfo.Qualified: return(WorkspacesResources.TypeOrNamespaceUsageInfo_Qualify); case TypeOrNamespaceUsageInfo.TypeArgument: return(WorkspacesResources.TypeOrNamespaceUsageInfo_TypeArgument); case TypeOrNamespaceUsageInfo.TypeConstraint: return(WorkspacesResources.TypeOrNamespaceUsageInfo_TypeConstraint); case TypeOrNamespaceUsageInfo.Base: return(WorkspacesResources.TypeOrNamespaceUsageInfo_BaseType); case TypeOrNamespaceUsageInfo.ObjectCreation: return(WorkspacesResources.TypeOrNamespaceUsageInfo_Construct); case TypeOrNamespaceUsageInfo.Import: return(WorkspacesResources.TypeOrNamespaceUsageInfo_Import); case TypeOrNamespaceUsageInfo.NamespaceDeclaration: return(WorkspacesResources.TypeOrNamespaceUsageInfo_Declare); default: Debug.Fail($"Unhandled value: '{info.ToString()}'"); return(info.ToString()); } }
public static ImmutableArray <string> ToLocalizableValues(this TypeOrNamespaceUsageInfo usageInfo) { if (usageInfo == TypeOrNamespaceUsageInfo.None) { return(ImmutableArray <string> .Empty); } var builder = ArrayBuilder <string> .GetInstance(); foreach (TypeOrNamespaceUsageInfo value in Enum.GetValues(typeof(TypeOrNamespaceUsageInfo))) { if (value.IsSingleBitSet() && (usageInfo & value) != 0) { builder.Add(value.ToLocalizableString()); } } return(builder.ToImmutableAndFree()); }
public static SymbolUsageInfo Create(TypeOrNamespaceUsageInfo typeOrNamespaceUsageInfo) => new SymbolUsageInfo(valueUsageInfoOpt: null, typeOrNamespaceUsageInfo);
public static bool IsSingleBitSet(this TypeOrNamespaceUsageInfo usageInfo) => usageInfo != TypeOrNamespaceUsageInfo.None && (usageInfo & (usageInfo - 1)) == 0;