protected virtual void VisitFunctionInvocationExpression(BoundFunctionInvocationExpression node) { foreach (var argument in node.Arguments) { VisitExpression(argument); } }
protected override void VisitFunctionInvocationExpression(BoundFunctionInvocationExpression node) { var sourceFunctionSymbol = node.Symbol as SourceFunctionSymbol; if (sourceFunctionSymbol != null) { if (sourceFunctionSymbol.DefinitionSyntax == null && !IsInterfaceMethod(sourceFunctionSymbol)) { _diagnostics.ReportFunctionMissingImplementation(node.Syntax); } } base.VisitFunctionInvocationExpression(node); }
private Expression BuildFunctionInvocationExpression(BoundFunctionInvocationExpression expression) { var liftedArguments = expression.Arguments.Select(BuildCachedExpression).ToImmutableArray(); if (liftedArguments.Length == 0) { return(BuildInvocation(expression.Symbol, liftedArguments)); } var nullableResultType = expression.Type.GetNullableType(); return (Expression.Condition( BuildNullCheck(liftedArguments), BuildNullValue(nullableResultType), BuildInvocation(expression.Symbol, liftedArguments) )); }
private static Symbol GetSymbol(BoundFunctionInvocationExpression expression) { return(expression.Symbol); }