[Mono-bugs] [Bug 582369] New: Passing Action<T> delegate parameter causes compile error

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Feb 23 14:43:59 EST 2010


http://bugzilla.novell.com/show_bug.cgi?id=582369

http://bugzilla.novell.com/show_bug.cgi?id=582369#c0


           Summary: Passing Action<T> delegate parameter causes compile
                    error
    Classification: Mono
           Product: Mono: Compilers
           Version: 2.6.x
          Platform: x86-64
        OS/Version: Linux
            Status: NEW
          Severity: Major
          Priority: P5 - None
         Component: C#
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: rfleming at acqusys.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2)
Gecko/20100207 Namoroka/3.6

when trying to compile the open source project MassTransit
(http://github.com/phatboyg/MassTransit), in particular the MassTransit project
itself, the following error occurs:

{project directory}/src/MassTransit/Grid/Sagas/ServiceMessage.cs(37,37): Error
CS1501: No overload for method `Publish' takes `3' arguments (CS1501)
(MassTransit)

The line which causes the error is:

Bus.Publish(CreateMessage<ServiceMessageAgreed>(), c =>
c.SetSourceAddress(Bus.Endpoint.Uri));

Which is passing two arguments, the result from
CreateMessage<ServiceMessageAgreed>(), and the lambda expression
(Action<IOutboundMessage> compatible) c =>
c.SetSourceAddress(Bus.Endpoint.Uri));

Thinking possibly an issue with the compiler parsing of the lambda expression,
I altered the line to be as such:

Action<IOutboundMessage> action = (IOutboundMessage c) =>
c.SetSourceAddress(Bus.Endpoint.Uri);

ServiceMessageAgreed msgAgreed = CreateMessage<ServiceMessageAgreed>();

                Bus.Publish(msgAgreed, action);

However, I get the same exact error.

According to the build server for MassTransit
(http://teamcity.codebetter.com/overview.html), the build is successful,
leading to believe the syntax is correct.

Reproducible: Always

Steps to Reproduce:
1. Download the source for Masstransit from github.
2. Open the MassTransit solution file
3. Attempt to build the Masstransit project
Actual Results:  
compilation error:

{project directory}/src/MassTransit/Grid/Sagas/ServiceMessage.cs(37,37): Error
CS1501: No overload for method `Publish' takes `3' arguments (CS1501)
(MassTransit)

Expected Results:  
Not errored on the syntax and proceeded to compile the project.

-- 
Configure bugmail: http://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