On 08.10.2011 00:41, d-bugm...@puremagic.com wrote:
http://d.puremagic.com/issues/show_bug.cgi?id=6785

            Summary: Wrong error message from pragma(msg) of failed
                     instantiation
            Product: D
            Version: D2
           Platform: x86
         OS/Version: Windows
             Status: NEW
           Keywords: diagnostic
           Severity: minor
           Priority: P2
          Component: DMD
         AssignedTo: nob...@puremagic.com
         ReportedBy: bearophile_h...@eml.cc


--- Comment #0 from bearophile_h...@eml.cc 2011-10-07 15:41:00 PDT ---
This is wrong D2 code (there is no foo):


void main() {
     enum int x = 1;
     pragma(msg, foo!x);
}


DMD 2.056head gives a partially wrong error message, that contains a "__error":

test.d(3): Error: template instance foo!(x) template 'foo' is not defined
__error


[Replying in the ng, because bugzilla is down]
The "__error" isn't part of the error message. It's coming from the pragma(msg): it's printing foo!x, and that's an error, so it prints "__error". The real bug is that the pragma msg is still displayed, even when an error occurs while evaluating it. Maybe it should give an error

test.d(3): Error: template instance foo!(x) template 'foo' is not defined
test.d(3): Error: parameter for pragma(msg) must be a string

Reply via email to