private static IEnumerable <IPropertySymbol> GetSymbolsForToString(INamedTypeSymbol type) { foreach (var typeProperty in type.GetMembers().Where(t => t.Kind == SymbolKind.Property)) { if (typeProperty is IPropertySymbol propertySymbol) { var visible = propertySymbol.DeclaredAccessibility == Accessibility.Public || propertySymbol.DeclaredAccessibility == Accessibility.Internal; var containsSkipAttribute = CompilationHelper.SymbolContainsAttribute <SkipToStringAttribute>(propertySymbol); if (visible && !containsSkipAttribute) { yield return(propertySymbol); } } } }
internal static bool ShouldUseGenerator([ValidatedNotNull] INamedTypeSymbol symbol) { return(CompilationHelper.SymbolContainsAttribute <AutoToStringAttribute>(symbol)); }