protected internal virtual void VisitCreateDelegate(CreateDelegate node, object data) { throw new NodeNotSupportedException(node); }
protected internal override void VisitCreateDelegate(CreateDelegate node, object data) { StackTypes stack = data as StackTypes; Verifier.ProcessDelegateConstruction(stack,node.Method,node.DelegateCtor); AddTask(node.Next,stack); }
protected internal override void VisitCreateDelegate(CreateDelegate node, object data) { if(node.IsVirtual) { generator.Emit(OpCodes.Dup); generator.Emit(OpCodes.Ldvirtftn, node.Method); generator.Emit(OpCodes.Newobj, node.DelegateCtor); } else { generator.Emit(OpCodes.Ldftn, node.Method); generator.Emit(OpCodes.Newobj, node.DelegateCtor); } AddTask(node.Next,null); }