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());
        }
예제 #3
0
 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;