public EqualityInstanceMemberInfo( InstanceMemberInfo member, string?equalityComparer, string?comparer) { Member = member; EqualityComparer = AdjustEqualityComparer(member, equalityComparer); Comparer = comparer; }
private static string?AdjustEqualityComparer(InstanceMemberInfo member, string?equalityComparer) { if (equalityComparer is null) { return(null); } if (member.IsString()) { return(AdjustStringComparer(equalityComparer)); } return(equalityComparer); }
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 })