private BoundExpression BindCountAllExpression(CountAllExpressionSyntax node)
        {
            var aggregates = LookupAggregate(node.Name).ToImmutableArray();

            if (aggregates.Length == 0)
            {
                Diagnostics.ReportUndeclaredAggregate(node.Name);
                return(new BoundErrorExpression());
            }

            if (aggregates.Length > 1)
            {
                Diagnostics.ReportAmbiguousAggregate(node.Name, aggregates);
            }

            var aggregate         = aggregates[0];
            var boundArgument     = new BoundLiteralExpression(0);
            var boundAggregatable = BindAggregatable(node.Span, aggregate, boundArgument);
            var boundAggregate    = new BoundAggregateExpression(aggregate, boundAggregatable, boundArgument);

            return(BindAggregate(node, boundAggregate));
        }
Beispiel #2
0
 public virtual void VisitCountAllExpression(CountAllExpressionSyntax node)
 {
     DefaultVisit(node);
 }
Beispiel #3
0
 public virtual TResult VisitCountAllExpression(CountAllExpressionSyntax node)
 {
     return(DefaultVisit(node));
 }
 private void ClassifyCountAllExpression(CountAllExpressionSyntax node)
 {
     ClassifyExpression(node, node.Name);
 }