public override IEnumerable<InspectionResultBase> GetInspectionResults()
{
var items = UserDeclarations.ToList();
// ignore arrays. todo: ArrayIndicesNotAccessedInspection
var arrays = items.Where(declaration =>
declaration.DeclarationType == DeclarationType.Variable
&& declaration.IsArray()).ToList();
var declarations = items.Where(declaration =>
declaration.DeclarationType == DeclarationType.Variable
&& !declaration.IsWithEvents
&& !arrays.Contains(declaration)
&& !items.Any(item =>
item.IdentifierName == declaration.AsTypeName
&& item.DeclarationType == DeclarationType.UserDefinedType) // UDT variables don't need to be assigned
&& !declaration.IsSelfAssigned
&& !declaration.References.Any(reference => reference.IsAssignment));
return declarations.Select(issue =>
new IdentifierNotAssignedInspectionResult(this, issue, issue.Context, issue.QualifiedName.QualifiedModuleName));
}
}