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=79025 --- shadow/79025 2006-08-07 11:27:25.000000000 -0400 +++ shadow/79025.tmp.10746 2006-08-07 11:27:25.000000000 -0400 @@ -0,0 +1,59 @@ +Bug#: 79025 +Product: Mono: Compilers +Version: 1.1 +OS: +OS Details: +Status: NEW +Resolution: +Severity: +Priority: Normal +Component: C# +AssignedTo: [EMAIL PROTECTED] +ReportedBy: [EMAIL PROTECTED] +QAContact: [EMAIL PROTECTED] +TargetMilestone: --- +URL: +Cc: +Summary: CS0136 not reported when re-declaring local variable as anonymous method parameter + +mcs and gmcs do not report CS0136 when a local variable is re-declared as +a anonymous method parameter, and use the local variable in the anonymous +method instead of the parameter. + +To reproduce, compile the following code snippet: + +using System; +using System.Xml; + +public delegate void XmlWriterClosedEventHandler (XmlWriter writer); + +public class Test { + public XmlWriterClosedEventHandler Closed; + + public void Whatever () + { + Console.WriteLine ("This should not execute!"); + } + + static void Main () { + Test t = new Test (); + t.Closed += delegate (XmlWriter t) { + t.Whatever (); + }; + t.Closed(null); + } +} + +Expected result: + +test.cs(16,25): error CS0136: A local variable named 't' cannot be +declared in this scope because it would give a different meaning to 't', +which is already used in a 'parent or current' scope to denote something +else + +Actual result: + +Successful compilation, and when the resulting assembly is run the +text "This should not execute!" is output, proving that mcs uses the +outer variable t which is of type Test in the anonymous method instead of +the parameter (XmlWriter) t. _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
