IronRuby.Runtime.Calls.CallArguments.GetSplattedArgumentExpression C# (CSharp) Method

GetSplattedArgumentExpression() public method

public GetSplattedArgumentExpression ( ) : Expression
return System.Linq.Expressions.Expression
        public Expression GetSplattedArgumentExpression() {
            return _signature.HasSplattedArgument ? _args[GetSplattedArgumentIndex()].Expression : null;
        }

Usage Example

Esempio n. 1
0
        public void AddSplatted(MetaObjectBuilder /*!*/ metaBuilder, CallArguments /*!*/ args)
        {
            var arg       = args.GetSplattedArgument();
            var parameter = args.GetSplattedArgumentExpression();

            int listLength;
            ParameterExpression listVariable;

            if (metaBuilder.AddSplattedArgumentTest(arg, parameter, out listLength, out listVariable))
            {
                if (listLength > 0)
                {
                    for (int i = 0; i < listLength; i++)
                    {
                        Add(
                            Ast.Call(
                                listVariable,
                                typeof(List <object>).GetMethod("get_Item"),
                                Ast.Constant(i)
                                )
                            );
                    }
                }
            }
            else
            {
                // argument is not an array => add the argument itself:
                Add(parameter);
            }
        }
All Usage Examples Of IronRuby.Runtime.Calls.CallArguments::GetSplattedArgumentExpression