internal static ExpressionSyntax OnlyReturn(SyntaxNodeAnalysisContext context, string ident, AttributeSyntax att, SyntaxList<StatementSyntax> statements) { var only = statements.Only(); if (only == null) { Diagnostic(context, ident, att.GetLocation(), statements.Count + " statements"); return null; } var ret = only as ReturnStatementSyntax; if (ret == null) { Diagnostic(context, ident, only.GetLocation(), "no return"); return null; } if (ret.Expression == null) { Diagnostic(context, ident, only.GetLocation(), "no return expression"); return null; } return ret.Expression; }