Пример #1
0
 public EqualityInstanceMemberInfo(
     InstanceMemberInfo member,
     string?equalityComparer,
     string?comparer)
 {
     Member           = member;
     EqualityComparer = AdjustEqualityComparer(member, equalityComparer);
     Comparer         = comparer;
 }
Пример #2
0
    private static string?AdjustEqualityComparer(InstanceMemberInfo member, string?equalityComparer)
    {
        if (equalityComparer is null)
        {
            return(null);
        }

        if (member.IsString())
        {
            return(AdjustStringComparer(equalityComparer));
        }

        return(equalityComparer);
    }
Пример #3
0
    private static bool HasMemberMapping(
        SymbolAnalysisContext context,
        INamedTypeSymbol enumType,
        InstanceMemberInfo memberInfo)
    {
        var mappedMemberName = memberInfo.EnumMemberSettings.MappedMemberName;

        if (mappedMemberName is null)
        {
            return(false);
        }

        var mappedMembers = enumType.GetMembers()
                            .Where(m => m switch
        {
            IFieldSymbol field => field.Name == mappedMemberName,
            IPropertySymbol property => property.Name == mappedMemberName,
            IMethodSymbol method => method.Name == mappedMemberName,
            _ => false
        })