protected override bool ShouldIgnoreAccessor(IMethodSymbol accessorMethod, Compilation compilation) { if (!(accessorMethod.GetFirstSyntaxRef() is AccessorDeclarationSyntax accessor) || ((SyntaxNode)accessor.Body ?? accessor).ContainsGetOrSetOnDependencyProperty(compilation)) { return(true); } // Special case: ignore the accessor if the only statement/expression is a throw. if (accessor.Body == null) { // Expression-bodied syntax return(accessor.DescendantNodes().FirstOrDefault() is ArrowExpressionClauseSyntax arrowClause && ThrowExpressionSyntaxWrapper.IsInstance(arrowClause.Expression)); } // Statement-bodied syntax return(accessor.Body.DescendantNodes().Count(n => n is StatementSyntax) == 1 && accessor.Body.DescendantNodes().Count(n => n is ThrowStatementSyntax) == 1); }