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)); }