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=77679 --- shadow/77679 2006-03-01 09:29:28.000000000 -0500 +++ shadow/77679.tmp.7559 2006-03-01 09:29:28.000000000 -0500 @@ -0,0 +1,94 @@ +Bug#: 77679 +Product: Mono: Compilers +Version: 1.1 +OS: +OS Details: Debian package 1.1.13.2-1 +Status: NEW +Resolution: +Severity: +Priority: Normal +Component: C# +AssignedTo: [EMAIL PROTECTED] +ReportedBy: [EMAIL PROTECTED] +QAContact: [EMAIL PROTECTED] +TargetMilestone: --- +URL: +Cc: +Summary: error CS1628 crashes the compiler + +Description of Problem: +Instead of just issuing the error CS1628 ("Cannot use ref or out parameter +`%s' inside an anonymous method block") the compiler crashes. + +Steps to reproduce the problem: +1. Try to compile the file in "Additional information". + +Actual Results: +test.cs(5,25): error CS1628: Cannot use ref or out parameter `i' inside an +anonymous method block +Exception caught by the compiler while compiling: + Block that caused the problem begin at: test.cs(4,44): + Block being compiled: [test.cs(4,53):,test.cs(6,17):] +System.NullReferenceException: Object reference not set to an instance of +an object +Exception caught by the compiler while compiling: + Block that caused the problem begin at: test.cs(2,21): + Block being compiled: [test.cs(4,17):,Internal(1,1):] +System.NullReferenceException: Object reference not set to an instance of +an object + +Unhandled Exception: System.NullReferenceException: Object reference not +set to an instance of an object +in <0x0000a> Mono.CSharp.FlowBranching+UsageVector:IsAssigned +(Mono.CSharp.VariableInfo var) +in <0x0001a> Mono.CSharp.FlowBranching:IsAssigned (Mono.CSharp.VariableInfo vi) +in <0x00035> Mono.CSharp.ParameterReference:IsAssigned +(Mono.CSharp.EmitContext ec, Location loc) +in <0x0004b> Mono.CSharp.ParameterReference:DoResolve +(Mono.CSharp.EmitContext ec) +in <0x000e3> Mono.CSharp.Expression:Resolve (Mono.CSharp.EmitContext ec, +ResolveFlags flags) +in <0x00012> Mono.CSharp.Expression:Resolve (Mono.CSharp.EmitContext ec) +in <0x00168> Mono.CSharp.SimpleName:DoSimpleNameResolve +(Mono.CSharp.EmitContext ec, Mono.CSharp.Expression right_side, Boolean +intermediate) +in <0x00030> Mono.CSharp.SimpleName:SimpleNameResolve +(Mono.CSharp.EmitContext ec, Mono.CSharp.Expression right_side, Boolean +intermediate) +in <0x00014> Mono.CSharp.SimpleName:DoResolve (Mono.CSharp.EmitContext ec, +Boolean intermediate) +in <0x000d2> Mono.CSharp.Expression:Resolve (Mono.CSharp.EmitContext ec, +ResolveFlags flags) +in <0x00012> Mono.CSharp.Expression:Resolve (Mono.CSharp.EmitContext ec) +in <0x0001a> Mono.CSharp.UnaryMutator:DoResolve (Mono.CSharp.EmitContext ec) +in <0x000e3> Mono.CSharp.Expression:Resolve (Mono.CSharp.EmitContext ec, +ResolveFlags flags) +in <0x00012> Mono.CSharp.Expression:Resolve (Mono.CSharp.EmitContext ec) +in <0x00013> Mono.CSharp.ExpressionStatement:ResolveStatement +(Mono.CSharp.EmitContext ec) +in <0x0001f> Mono.CSharp.StatementExpression:Resolve +(Mono.CSharp.EmitContext ec) +in <0x001d9> Mono.CSharp.Block:Resolve (Mono.CSharp.EmitContext ec) +in <0x00122> Mono.CSharp.EmitContext:ResolveTopBlock +(Mono.CSharp.EmitContext anonymous_method_host, Mono.CSharp.ToplevelBlock +block, Mono.CSharp.Parameters ip, IMethodData md, System.Boolean unreachable) + + +Expected Results: +test.cs(5,25): error CS1628: Cannot use ref or out parameter `i' inside an +anonymous method block +Compilation failed: 1 error(s), 0 warnings + +How often does this happen? +Always. + +Additional Information: + +public class Test { + public void test(out int i) { + i = 0; + System.EventHandler test = delegate { + o++; + }; + } +} _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
