private static HierarchyFlags GetFlags(ITypeSymbol type)
        {
            HierarchyFlags flags = 0;

            if (type.IsTypeOf(WellKnownType.System_Reflection_IReflect))
            {
                flags |= HierarchyFlags.IsSystemReflectionIReflect;
            }

            ITypeSymbol?baseType = type;

            while (baseType != null)
            {
                if (baseType.IsTypeOf(WellKnownType.System_Type))
                {
                    flags |= HierarchyFlags.IsSystemType;
                }

                foreach (var iface in baseType.Interfaces)
                {
                    if (iface.IsTypeOf(WellKnownType.System_Reflection_IReflect))
                    {
                        flags |= HierarchyFlags.IsSystemReflectionIReflect;
                    }
                }

                baseType = baseType.BaseType;
            }
            return(flags);
        }
        private static HierarchyFlags GetFlags(ITypeSymbol type)
        {
            HierarchyFlags flags = 0;

            if (type.Name == "IReflect" && type.ContainingNamespace.GetDisplayName() == "System.Reflection")
            {
                flags |= HierarchyFlags.IsSystemReflectionIReflect;
            }

            ITypeSymbol?baseType = type;

            while (baseType != null)
            {
                if (baseType.Name == "Type" && baseType.ContainingNamespace.GetDisplayName() == "System")
                {
                    flags |= HierarchyFlags.IsSystemType;
                }

                foreach (var iface in baseType.Interfaces)
                {
                    if (iface.Name == "IReflect" && iface.ContainingNamespace.GetDisplayName() == "System.Reflection")
                    {
                        flags |= HierarchyFlags.IsSystemReflectionIReflect;
                    }
                }

                baseType = baseType.BaseType;
            }
            return(flags);
        }
 private static bool IsSystemReflectionIReflect(HierarchyFlags flags) => (flags & HierarchyFlags.IsSystemReflectionIReflect) != 0;
 private static bool IsSystemType(HierarchyFlags flags) => (flags & HierarchyFlags.IsSystemType) != 0;