http://d.puremagic.com/issues/show_bug.cgi?id=3306
Summary: bad function/delegate literal generated into header files Product: D Version: 2.032 Platform: Other OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: r.sagita...@gmx.de --- Comment #0 from Rainer Schuetze <r.sagita...@gmx.de> 2009-09-07 23:42:31 PDT --- While trying to compile tango with dmd 1.046, I ran into the a problem with the di-header generated for atomic.d. A reduced version that reproduces the bug in dmd 2.032 aswell is test.d: int foo(int function() fn) { return fn(); } int bar(T)() { return foo(function int (){ return 0; }); } >dmd -c -H test.d >dmd -c test.di test.di(10): found 'function' when expecting '.' following 'int' test.di(10): found '(' when expecting identifier following 'int.' test.di(11): found '{' when expecting ';' following 'return statement' test.di(14): Declaration expected, not ')' test.di(16): unrecognized declaration This is caused by a wrong function literal being generated into the di-file: // D import file generated from 'test.d' int foo(int function() fn) { return fn(); } template bar(T) { int bar() { return foo(int function() { return 0; } ); } } Note the difference "foo(int function()..." and "foo(function int ()...". -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------