private void AnalyzeSymbol(SymbolAnalysisContext context)
{
var symbol = (IMethodSymbol)context.Symbol;
if (CommonFunctions.SkipSymbolAnalysisIgnoringAttributes(symbol, _settingsHandler)) return;
var ignoredVariables = CommonFunctions.ItemsToIgnoreFromAttributes(symbol, SuppressionAttributes).ToList();
var syntax = symbol.DeclaringSyntaxReferences[0].GetSyntaxAsync().Result;
var identifiers = symbol.Parameters.Select(p => p.Name).ToList();
foreach (var reassignment in GetAllNonIgnoredMutations(syntax, ignoredVariables, identifiers))
{
context.ReportDiagnostic(Diagnostic.Create(AnalyzerRule,
reassignment.Location,
reassignment.Name));
}
foreach (var ignoredSyntaxInfo in NonExistantIgnoredVariables(ignoredVariables, identifiers))
{
context.ReportDiagnostic(Diagnostic.Create(SuppressionMisuseRule,
ignoredSyntaxInfo.Location,
ignoredSyntaxInfo.Name));
}
}
}