Exemple #1
0
 protected virtual void VisitMethodInvocationExpression(BoundMethodInvocationExpression node)
 {
     VisitExpression(node.Target);
     foreach (var argument in node.Arguments)
     {
         VisitExpression(argument);
     }
 }
Exemple #2
0
        private Expression BuildMethodInvocationExpression(BoundMethodInvocationExpression expression)
        {
            var liftedInstance     = BuildCachedExpression(expression.Target);
            var liftedArguments    = expression.Arguments.Select(BuildCachedExpression).ToImmutableArray();
            var nullableResultType = expression.Type.GetNullableType();

            return
                (Expression.Condition(
                     BuildNullCheck(liftedInstance, liftedArguments),
                     BuildNullValue(nullableResultType),
                     BuildInvocation(expression.Symbol, liftedInstance, liftedArguments)
                     ));
        }
Exemple #3
0
        protected override void VisitMethodInvocationExpression(BoundMethodInvocationExpression node)
        {
            var sourceMethodSymbol = node.Symbol as SourceFunctionSymbol;

            if (sourceMethodSymbol != null)
            {
                if (sourceMethodSymbol.DefinitionSyntax == null && !IsInterfaceMethod(sourceMethodSymbol))
                {
                    _diagnostics.ReportMethodMissingImplementation(node.Syntax);
                }
            }

            base.VisitMethodInvocationExpression(node);
        }
Exemple #4
0
 private static Symbol GetSymbol(BoundMethodInvocationExpression expression)
 {
     return(expression.Symbol);
 }