private void HandleSyntaxNode(SyntaxNodeAnalysisContext context)
        {
            var node = context.Node;

            var documentation = XmlCommentHelper.GetDocumentationStructure(node);

            if (documentation != null)
            {
                IEnumerable <ParameterSyntax> parameterList = this.GetParameters(node);

                if (parameterList == null)
                {
                    return;
                }

                if (XmlCommentHelper.GetTopLevelElement(documentation, XmlCommentHelper.InheritdocXmlTag) != null)
                {
                    // Ignore nodes with an <inheritdoc/> tag.
                    return;
                }

                var xmlParameterNames = XmlCommentHelper.GetTopLevelElements(documentation, XmlCommentHelper.ParamTag)
                                        .Select(XmlCommentHelper.GetFirstAttributeOrDefault <XmlNameAttributeSyntax>)
                                        .Where(x => x != null)
                                        .ToImmutableArray();

                foreach (var parameter in parameterList)
                {
                    if (!xmlParameterNames.Any(x => x.Identifier.ToString() == parameter.Identifier.ToString()))
                    {
                        context.ReportDiagnostic(Diagnostic.Create(Descriptor, parameter.Identifier.GetLocation()));
                    }
                }
            }
        }