Ejemplo n.º 1
0
        internal static Accessibility GetEffectiveAccessibility(this AccessorDeclarationSyntax syntax, SemanticModel semanticModel, CancellationToken cancellationToken)
        {
            Requires.NotNull(syntax, nameof(syntax));
            Requires.NotNull(semanticModel, nameof(semanticModel));

            Accessibility declaredAccessibility = syntax.GetDeclaredAccessibility(semanticModel, cancellationToken);

            if (declaredAccessibility <= Accessibility.Private)
            {
                return(declaredAccessibility);
            }

            BasePropertyDeclarationSyntax enclosingProperty = syntax.Parent.Parent as BasePropertyDeclarationSyntax;

            if (enclosingProperty == null)
            {
                return(declaredAccessibility);
            }

            Accessibility enclosingAccessibility = enclosingProperty.GetEffectiveAccessibility(semanticModel, cancellationToken);

            return(CombineEffectiveAccessibility(declaredAccessibility, enclosingAccessibility));
        }