using System.Collections.ObjectModel;
using System.Collections.Generic;
using System.Reflection;
+#if !FULL_AOT_RUNTIME
using System.Reflection.Emit;
+#endif
+
namespace System.Linq.Expressions {
this.parameters = parameters;
}
+#if !FULL_AOT_RUNTIME
void EmitPopIfNeeded (EmitContext ec)
{
if (GetReturnType () == typeof (void) && body.Type != typeof (void))
EmitPopIfNeeded (ec);
ec.ig.Emit (OpCodes.Ret);
}
+#endif
internal Type GetReturnType ()
{
public Delegate Compile ()
{
-#if TARGET_JVM
- System.Linq.jvm.Interpreter inter =
- new System.Linq.jvm.Interpreter (this);
- inter.Validate ();
- return inter.CreateDelegate ();
+#if FULL_AOT_RUNTIME
+ return new System.Linq.jvm.Runner (this).CreateDelegate ();
#else
var context = new CompilationContext ();
context.AddCompilationUnit (this);
return context.CreateDelegate ();
#endif
}
+
+#if FULL_AOT_RUNTIME
+ internal Delegate Compile (System.Linq.jvm.ExpressionInterpreter interpreter)
+ {
+ return new System.Linq.jvm.Runner (this, interpreter).CreateDelegate ();
+ }
+#endif
}
}