public void LoadCompiledLambda(CompiledLambda compiledLambda)
        {
            if (ParsedLambda.ConstantsParameter == null)
            {
                throw new InvalidOperationException("There is no constants parameter. Cannot load sublambda");
            }
            Type temp;
            var  delegatesAccessor = ParsedLambda.ConstantsBuilder.MakeAccess(ParsedLambda.ConstantsParameter, ParsedLambda.DelegatesFieldId);

            ExpressionEmittersCollection.Emit(delegatesAccessor, this, out temp);
            Il.Ldc_I4(compiledLambda.Index);
            Il.Ldelem(typeof(Delegate));
        }
 public void LoadCompiledLambdaPointer(CompiledLambda compiledLambda)
 {
     if (TypeBuilder != null)
     {
         Il.Ldftn(compiledLambda.Method);
     }
     else
     {
         var stopwatch = Stopwatch.StartNew();
         var pointer   = DynamicMethodInvokerBuilder.DynamicMethodPointerExtractor((DynamicMethod)compiledLambda.Method);
         LambdaCompiler.TotalJITCompilationTime += stopwatch.Elapsed.TotalSeconds;
         Il.Ldc_IntPtr(pointer);
     }
 }