public void compile_simple() { var definition = new LambdaDefinition(); var parameter = Expression.Parameter(typeof(string)); definition.Arguments = new ParameterExpression[] { parameter }; definition.Body.Add(parameter); var func = definition.Compile <Func <string, string> >(); func("hello").ShouldBe("hello"); }
public Func <Scope, object> BuildResolver() { var arranger = new MethodFrameArranger(this, this); arranger.Arrange(out var mode, out var top); var definition = new LambdaDefinition { Context = _scope }; var scope = definition.RegisterExpression(_scopeArgument).As <ParameterExpression>(); definition.Arguments = new [] { scope }; if (top is IResolverFrame frame) { frame.WriteExpressions(definition); return(definition.Compile <Func <Scope, object> >()); } throw new InvalidOperationException($"Frame type {top} does not implement {nameof(IResolverFrame)}"); }