protected override void CreateArguments (ResolveContext ec, Parameter parameter, ref Arguments args)
{
args = new Arguments (4);
if (IdentifierType != null)
expr = CreateCastExpression (expr);
args.Add (new Argument (expr));
outer_selector.SetParameter (parameter.Clone ());
var lambda = new LambdaExpression (outer_selector.StartLocation);
lambda.Block = outer_selector;
args.Add (new Argument (lambda));
inner_selector.SetParameter (new ImplicitLambdaParameter (identifier.Name, identifier.Location));
lambda = new LambdaExpression (inner_selector.StartLocation);
lambda.Block = inner_selector;
args.Add (new Argument (lambda));
base.CreateArguments (ec, parameter, ref args);
}