25#if IMPORTER || EXPORTER
31using System.Reflection;
32using System.Reflection.Emit;
38 partial class RuntimeManagedByteCodeJavaType
41 sealed class DelegateConstructorJavaMethod : RuntimeJavaMethod
53 DelegateConstructorJavaMethod(RuntimeJavaType tw, RuntimeJavaType iface, ExModifiers mods) :
54 base(tw, StringConstants.INIT,
"(" + iface.SigName +
")V", null, tw.Context.PrimitiveJavaTypeFactory.VOID, new RuntimeJavaType[] { iface }, mods.Modifiers, mods.IsInternal ? MemberFlags.InternalAccess :
MemberFlags.None)
64 internal DelegateConstructorJavaMethod(RuntimeJavaType tw,
MethodBase method) :
65 this(tw, tw.ClassLoader.LoadClassByName(tw.
Name + RuntimeManagedJavaType.DelegateInterfaceSuffix), tw.Context.AttributeHelper.GetModifiers(method, false))
70 protected override void DoLinkMethod()
72 var mw = GetParameters()[0].GetMethods()[0];
79 internal override void EmitNewobj(CodeEmitter ilgen)
81 ilgen.Emit(OpCodes.Dup);
82 ilgen.Emit(OpCodes.Ldvirtftn, invoke);
83 ilgen.Emit(OpCodes.Newobj, constructor);
IKVM.Reflection.Type Type
IKVM.Reflection.ConstructorInfo ConstructorInfo
IKVM.Reflection.MethodInfo MethodInfo
IKVM.Reflection.MethodBase MethodBase
global::java.lang.invoke.LambdaForm.Name Name
MemberFlags
Describes various options applied to a member.