예제 #1
0
        private static void FadeOut(SyntaxNodeAnalysisContext context, AnonymousMethodExpressionSyntax anonymousMethod)
        {
            DiagnosticDescriptor descriptor = DiagnosticDescriptors.UseLambdaExpressionInsteadOfAnonymousMethodFadeOut;

            FadeOutToken(context, anonymousMethod.DelegateKeyword, descriptor);

            BlockSyntax block = anonymousMethod.Block;

            if (block.Statements.Count == 1 && block.IsSingleline())
            {
                StatementSyntax statement = block.Statements[0];

                if (statement.IsAnyKind(SyntaxKind.ReturnStatement, SyntaxKind.ExpressionStatement))
                {
                    FadeOutBraces(context, block, descriptor);

                    if (statement.IsKind(SyntaxKind.ReturnStatement))
                    {
                        FadeOutToken(context, ((ReturnStatementSyntax)statement).ReturnKeyword, descriptor);
                    }
                }
            }
        }