[Mono-bugs] [Bug 664205] New: Delegates created from nested lambda expressions sometimes have no target
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Thu Jan 13 05:01:47 EST 2011
https://bugzilla.novell.com/show_bug.cgi?id=664205
https://bugzilla.novell.com/show_bug.cgi?id=664205#c0
Summary: Delegates created from nested lambda expressions
sometimes have no target
Classification: Mono
Product: Mono: Class Libraries
Version: 2.8.x
Platform: x86
OS/Version: openSUSE 11.1
Status: NEW
Severity: Normal
Priority: P5 - None
Component: Sys.Core
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: timeslip at users.sourceforge.net
QAContact: mono-bugs at lists.ximian.com
Found By: ---
Blocker: No
Created an attachment (id=408165)
--> (http://bugzilla.novell.com/attachment.cgi?id=408165)
test case
Description of Problem:
When using a nested LambdaExpression that doesn't use its implicit Closure
argument as an argument to a call that expects a Delegate type, the passed
delegate has no target but the generated method still has a first argument of
CompilerServices.Closure. This results in a mismatch in the expected and
supplied number of arguments when invoking the delegate. Either the delegate
should have its closure target, or the generated method shouldn't expect one.
Steps to reproduce the problem:
1. Compile and run the attached test case
Actual Results:
A TargetParameterCountException is thrown at the func.DynamicInvoke()
statement.
Expected Results:
Output '5'.
How often does this happen?
Always
Additional Information:
Running on .net outputs 5 as expected.
If the test case is modified such that the Closure is referenced in the nested
lambda. (e.g. defining a local variable in the outer lambda, and returning it
from the nested lambda,) then it will work correctly.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the mono-bugs
mailing list