Example #1
0
 protected virtual void VisitFunctionInvocationExpression(BoundFunctionInvocationExpression node)
 {
     foreach (var argument in node.Arguments)
     {
         VisitExpression(argument);
     }
 }
Example #2
0
        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);
        }
Example #3
0
        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)
                     ));
        }
Example #4
0
 private static Symbol GetSymbol(BoundFunctionInvocationExpression expression)
 {
     return(expression.Symbol);
 }