Esempio n. 1
0
 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;
Esempio n. 3
0
        /// <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()));
        }