void FindIssuesInNode(AstNode anchor, AstNode node, string accessorName = "setter")
{
if (node == null || node.IsNull)
{
return;
}
var localResolveResult = context.GetResolverStateBefore(node)
.LookupSimpleNameOrTypeName("value", new List <IType>(), NameLookupMode.Expression) as LocalResolveResult;
if (localResolveResult == null)
{
return;
}
var variable = localResolveResult.Variable;
bool referenceFound = false;
var findRef = new FindReferences();
var syntaxTree = (SyntaxTree)context.RootNode;
findRef.FindLocalReferences(variable, context.UnresolvedFile, syntaxTree, context.Compilation, (n, entity) => {
if (n.StartLocation >= node.StartLocation && n.EndLocation <= node.EndLocation)
{
referenceFound = true;
}
}, CancellationToken.None);
if (!referenceFound)
{
AddIssue(anchor, context.TranslateString("The " + accessorName + " does not use the 'value' parameter"));
}
}