www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 10839] New: Lambda function formatting in error messages

http://d.puremagic.com/issues/show_bug.cgi?id=10839

           Summary: Lambda function formatting in error messages
           Product: D
           Version: D2
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: bearophile_hugs eml.cc


--- Comment #0 from bearophile_hugs eml.cc 2013-08-17 14:16:42 PDT ---
In the following code if I define const foo, the code compiles:


import std.algorithm: map;
void main() {
    //const foo = (int x) => x; // OK
    enum foo = (int x) => x; // error
    [1].map!foo;
}


If I use enum foo I receive the error messages, dmd 2.064alpha:


...\dmd2\src\phobos\std\algorithm.d(410): Error: function
std.algorithm.MapResult!(int(int x)

{

return x;

}

, int[]).MapResult.back cannot access frame of function D main
...\dmd2\src\phobos\std\algorithm.d(444): Error: function
std.algorithm.MapResult!(int(int x)

{

return x;

}

, int[]).MapResult.front cannot access frame of function D main
...\dmd2\src\phobos\std\algorithm.d(456): Error: function
std.algorithm.MapResult!(int(int x)

{

return x;

}

, int[]).MapResult.opIndex cannot access frame of function D main
...\dmd2\src\phobos\std\algorithm.d(396): Error: template instance
std.algorithm.MapResult!(int(int x)

{

return x;

}

, int[]) error instantiating
bug.d(5):        instantiated from here: map!(int[])
bug.d(5): Error: template instance std.algorithm.map!(int(int x)

{

return x;

}

).map!(int[]) error instantiating



I think a better formatting for those error messages could be:

...\dmd2\src\phobos\std\algorithm.d(410): Error: function
std.algorithm.MapResult!(int(int x) { return x; }, int[]).MapResult.back cannot
access frame of function D main
...\dmd2\src\phobos\std\algorithm.d(444): Error: function
std.algorithm.MapResult!(int(int x) { return x; }, int[]).MapResult.front
cannot access frame of function D main
...\dmd2\src\phobos\std\algorithm.d(456): Error: function
std.algorithm.MapResult!(int(int x) { return x; }, int[]).MapResult.opIndex
cannot access frame of function D main
...\dmd2\src\phobos\std\algorithm.d(396): Error: template instance
std.algorithm.MapResult!(int(int x) { return x; }, int[]) error instantiating
bug.d(5):        instantiated from here: map!(int[])
bug.d(5): Error: template instance std.algorithm.map!(int(int x) { return x;
}).map!(int[]) error instantiating

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Aug 17 2013