public static Func <TFrom, TTo> GetConverter_CompiledFast_LightExpression <TFrom, TTo>() { var fromParam = L.Parameter(typeof(TFrom)); var expr = L.Lambda <Func <TFrom, TTo> >(L.Convert(fromParam, typeof(TTo)), fromParam); return(LightExpression.ExpressionCompiler.CompileFast(expr, true)); }
private LightExpression.Expression <Func <A> > CreateLightExpression() { var test = L.Constant(new NestedLambdasVsVars()); var getOrAddMethod = test.Type.GetMethod(nameof(GetOrAdd)); var d = L.Convert( L.Call(test, getOrAddMethod, L.Constant(2), L.Lambda <Func <object> >(L.New(_dCtor), typeof(object))), typeof(D)); var c = L.Convert( L.Call(test, getOrAddMethod, L.Constant(1), L.Lambda <Func <object> >(L.New(_cCtor, d), typeof(object))), typeof(C)); var b = L.Convert( L.Call(test, getOrAddMethod, L.Constant(0), L.Lambda <Func <object> >(L.New(_bCtor, c, d), typeof(object))), typeof(B)); return(L.Lambda <Func <A> >(L.New(_aCtor, b, c), typeof(A))); }