📄 Core/MemberCollectors/PublicMembersCollector.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
using System.Collections.Generic;
using Microsoft.CodeAnalysis;

namespace Reacher.MemberCollectors;

internal sealed class PublicMembersCollector : MembersCollector
{
    public static IEnumerable<ISymbol> CollectMembers(IEnumerable<Compilation> compilations)
    {
        var collector = new PublicMembersCollector();
        compilations.Accept(collector);
        return collector.Members;
    }

    protected override bool ShouldMemberBeIncluded(ISymbol member) =>
        member.DeclaredAccessibility is Accessibility.Public;
}