Please do not reply to this email- if you want to comment on the bug, go to the URL shown below and enter your comments there.
Changed by [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=82784 --- shadow/82784 2007-09-10 15:14:59.000000000 -0400 +++ shadow/82784.tmp.5238 2007-09-10 15:14:59.000000000 -0400 @@ -0,0 +1,85 @@ +Bug#: 82784 +Product: Mono: Compilers +Version: 1.2 +OS: +OS Details: +Status: NEW +Resolution: +Severity: +Priority: Wishlist +Component: C# +AssignedTo: [EMAIL PROTECTED] +ReportedBy: [EMAIL PROTECTED] +QAContact: [EMAIL PROTECTED] +TargetMilestone: --- +URL: +Cc: +Summary: compile error when creating a delegate inside another delegate + +Description of Problem: The problem seems to be one can't create a delegate +inside another delegate. Something along the following fails: + +b.ButtonPressEvent += delegate(object sender, Gtk.ButtonPressEventArgs args) { + MorePopup more_popup = new MorePopup(allocation.Width); + VoidFunction tmp = delegate() { + more_popup.show(percent, (int)(args.Event.XRoot - +args.Event.X), (int)(args.Event.YRoot - args.Event.Y - allocation.Height)); +}; + MorePopupTracker.Instance.set_popup_and_show(tmp); +}; + +Where VoidFunction is defined as: public delegate void VoidFunction(); + +Actual Results: + +Unhandled Exception: Mono.CSharp.InternalErrorException: Internal error + at Mono.CSharp.ScopeInfo.EmitScopeInstance (Mono.CSharp.EmitContext ec) +[0x00000] + at Mono.CSharp.ScopeInfo+CapturedVariable.EmitInstance +(Mono.CSharp.EmitContext ec) [0x00000] + at Mono.CSharp.VariableReference.EmitLoad (Mono.CSharp.EmitContext ec) +[0x00000] + at Mono.CSharp.VariableReference.Emit (Mono.CSharp.EmitContext ec, +Boolean leave_copy) [0x00000] + at Mono.CSharp.VariableReference.Emit (Mono.CSharp.EmitContext ec) [0x00000] + at Mono.CSharp.Invocation.EmitCall (Mono.CSharp.EmitContext ec, Boolean +is_base, Boolean is_static, Mono.CSharp.Expression instance_expr, +System.Reflection.MethodBase method, System.Collections.ArrayList +Arguments, Location loc, Boolean dup_args, Boolean omit_args) [0x00000] + at Mono.CSharp.Invocation.EmitCall (Mono.CSharp.EmitContext ec, Boolean +is_base, Boolean is_static, Mono.CSharp.Expression instance_expr, +System.Reflection.MethodBase method, System.Collections.ArrayList +Arguments, Location loc) [0x00000] + at Mono.CSharp.Invocation.Emit (Mono.CSharp.EmitContext ec) [0x00000] + at Mono.CSharp.Invocation.EmitStatement (Mono.CSharp.EmitContext ec) +[0x00000] + at Mono.CSharp.StatementExpression.DoEmit (Mono.CSharp.EmitContext ec) +[0x00000] + at Mono.CSharp.Statement.Emit (Mono.CSharp.EmitContext ec) [0x00000] + at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00000] + at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x00000] + at Mono.CSharp.EmitContext.EmitResolvedTopBlock +(Mono.CSharp.ToplevelBlock block, Boolean unreachable) [0x00000] + at Mono.CSharp.EmitContext.EmitTopBlock (IMethodData md, +Mono.CSharp.ToplevelBlock block) [0x00000] + at Mono.CSharp.MethodData.Emit (Mono.CSharp.DeclSpace parent) [0x00000] + at Mono.CSharp.Method.Emit () [0x00000] + at Mono.CSharp.TypeContainer.EmitType () [0x00000] + at Mono.CSharp.TypeContainer.EmitType () [0x00000] + at Mono.CSharp.TypeContainer.EmitType () [0x00000] + at Mono.CSharp.RootContext.EmitCode () [0x00000] + at Mono.CSharp.Driver.MainDriver (System.String[] args) [0x00000] + at Mono.CSharp.Driver.Main (System.String[] args) [0x00000] + + +Expected Results: + +Compiles fine. + +How often does this happen? + +Always + +Additional Information: + +mono version 1.2.3.1 _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
