[Issue 7644] New: [tdpl] receive( (OwnerTerminated) {} );	fails to compile
    d-bugmail at puremagic.com 
    d-bugmail at puremagic.com
       
    Sun Mar  4 04:51:51 PST 2012
    
    
  
http://d.puremagic.com/issues/show_bug.cgi?id=7644
           Summary: [tdpl] receive( (OwnerTerminated) {} ); fails to
                    compile
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody at puremagic.com
        ReportedBy: peter.alexander.au at gmail.com
--- Comment #0 from Peter Alexander <peter.alexander.au at gmail.com> 2012-03-04 04:51:48 PST ---
The code snippet on this page no longer compiles in 2.059
http://www.informit.com/articles/article.aspx?p=1609144&seqNum=8
Minimal example:
--------------------------------
void foo() {
    import std.concurrency;
    receive( (OwnerTerminated) { } );
}
--------------------------------
std/concurrency.d(529): Error: cannot have parameter of type void
std/concurrency.d(529): Error: variable
std.concurrency.receive!(void).receive._param_0 voids have no value
The problem appears to be with lambdas with unnamed user-defined parameters:
--------------------------------
class Foo {}
auto a = (Foo) {}; // error
auto b = (Foo f) {}; // ok
--------------------------------
If this is intentional, it wasn't mentioned as a breaking change in the 2.059
changelog.
-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
    
    
More information about the Digitalmars-d-bugs
mailing list