public static SymbolVisibilityGroup GetSymbolVisibilityGroupOption( this AnalyzerOptions options, DiagnosticDescriptor rule, ISymbol symbol, Compilation compilation, SymbolVisibilityGroup defaultValue, CancellationToken cancellationToken) => options.GetSymbolVisibilityGroupOption(rule, symbol.Locations[0].SourceTree, compilation, defaultValue, cancellationToken);
public static SymbolVisibilityGroup GetSymbolVisibilityGroupOption( this AnalyzerOptions options, DiagnosticDescriptor rule, ISymbol symbol, Compilation compilation, SymbolVisibilityGroup defaultValue, CancellationToken cancellationToken) => TryGetSyntaxTreeForOption(symbol, out var tree) ? options.GetSymbolVisibilityGroupOption(rule, tree, compilation, defaultValue, cancellationToken) : defaultValue;
/// <summary> /// Returns true if the given symbol has required visibility based on options: /// 1. If user has explicitly configured candidate <see cref="SymbolVisibilityGroup"/> in editor config options and /// given symbol's visibility is one of the candidate visibilites. /// 2. Otherwise, if user has not configured visibility, and given symbol's visibility /// matches the given default symbol visibility. /// </summary> public static bool MatchesConfiguredVisibility( this ISymbol symbol, AnalyzerOptions options, DiagnosticDescriptor rule, CancellationToken cancellationToken, SymbolVisibilityGroup defaultRequiredVisibility = SymbolVisibilityGroup.Public) { var allowedVisibilities = options.GetSymbolVisibilityGroupOption(rule, defaultRequiredVisibility, cancellationToken); return(allowedVisibilities.Contains(symbol.GetResultantVisibility())); }