- protected Argument CreateSelectorArgument (EmitContext ec, Expression expr, Parameter parameter, TransparentIdentifiersScope ti)
- {
- return CreateSelectorArgument (ec, expr, new Parameter [] { parameter }, ti);
- }
-
- protected Argument CreateSelectorArgument (EmitContext ec, Expression expr, Parameter[] parameters, TransparentIdentifiersScope ti)
- {
- Parameters p = new Parameters (parameters);
-
- LambdaExpression selector = new LambdaExpression (
- null, null, (TypeContainer)ec.TypeContainer, p, ec.CurrentBlock, loc);
- selector.Block = new SelectorBlock (ec.CurrentBlock, p, ti, loc);
- selector.Block.AddStatement (new ContextualReturn (expr));
-
- if (!ec.IsInProbingMode) {
- selector.CreateAnonymousHelpers ();
-
- // TODO: I am not sure where this should be done to work
- // correctly with anonymous containerss and was called only once
- // FIXME: selector.RootScope == null for nested anonymous
- // methods only ?
- if (selector.RootScope != null)
- selector.RootScope.DefineType ();
- }
-
- return new Argument (selector);
- }
-
- public override void Emit (EmitContext ec)
- {
- throw new NotSupportedException ();
- }
-