private void ApplyAlias(IFieldQueryNode node, IQueryVisitorContext context)
        {
            if (node.Parent == null)
            {
                return;
            }

            var resolver = node.Parent.GetAliasResolver(context);
            var result   = resolver != null && node.Field != null?resolver(node.Field) : null;

            if (result == null)
            {
                var groupNode = node as GroupNode;
                if (groupNode != null)
                {
                    node.SetAliasResolver(_useNestedResolvers ? GetScopedResolver(resolver, node.Field) : resolver);
                }

                return;
            }

            node.SetOriginalField(node.Field);
            node.Field = result.Name;
            if (node is GroupNode)
            {
                node.SetAliasResolver(_useNestedResolvers ? result.Resolver : resolver);
            }
        }