void AnalyzeInvocation(SyntaxNodeAnalysisContext context, InvocationExpressionSyntax invocation) { var containingMethod = invocation.GetContainingMethod(); if (containingMethod.HasConstAttribute(context.SemanticModel)) { var invokedMethod = invocation.GetInvokedMethod(context.SemanticModel); if (!invokedMethod.Syntax.HasConstAttribute(invokedMethod.Model)) { context.ReportDiagnostic(Diagnostic.Create(Rule, invocation.GetLocation(), context.SemanticModel.GetDeclaredSymbol(containingMethod)?.Name, context.SemanticModel.GetSymbolInfo(invocation).Symbol?.Name)); } } }