private static void CheckInvocationInfo(
            [NotNull] ICSharpInvocationInfo invocationInfo, [CanBeNull] ITreeNode invocationAnchor, [NotNull] IHighlightingConsumer consumer)
        {
            var invocationReference = invocationInfo.Reference;

            if (invocationReference == null)
            {
                return;
            }

            var resolveResult = invocationReference.Resolve();

            var parametersOwner = resolveResult.DeclaredElement as IParametersOwner;

            if (parametersOwner == null)
            {
                return;
            }

            if (resolveResult.ResolveErrorType != ResolveErrorType.OK)
            {
                return;
            }

            var parameters = parametersOwner.Parameters;

            if (parameters.Count == 0)
            {
                return;
            }

            var lastParameter = parameters[parameters.Count - 1];

            if (!lastParameter.IsParameterArray)
            {
                return;
            }

            ICSharpExpression paramsArgument = null;

            foreach (var argumentInfo in invocationInfo.Arguments)
            {
                var parameter = ArgumentsUtil.GetParameter(argumentInfo);
                if (parameter == null)
                {
                    continue;
                }

                if (!Equals(parameter.Element, lastParameter))
                {
                    continue;
                }

                // found explicit array pass
                if (parameter.Expanded == ArgumentsUtil.ExpandedKind.None)
                {
                    return;
                }

                var argument = argumentInfo as ICSharpArgument;
                if (argument != null)
                {
                    paramsArgument = argument.Value;
                }

                break;
            }

            var anchor = invocationAnchor ?? paramsArgument ?? invocationInfo as ICSharpExpression;

            if (anchor == null)
            {
                return;
            }

            if (IsCachedEmptyArrayAvailable(anchor))
            {
                return;
            }

            var expression  = anchor as ICSharpExpression;
            var paramsRange = expression?.GetExpressionRange() ?? anchor.GetDocumentRange();

            var description = $"parameters array '{lastParameter.ShortName}' creation";

            consumer.AddHighlighting(new ObjectAllocationHighlighting(anchor, description), paramsRange);
        }