playing around with D

Don Clugston dac at nospam.com.au
Wed Mar 7 11:06:03 PST 2007


Bill Baxter wrote:
> Don Clugston wrote:
>> Frits van Bommel wrote:
>>> Don Clugston wrote:
>>>>
>>>> Given how common static assert(0) is, I wonder if something could be 
>>>> done to improve the error message quality in the
>>>> "static assert(0, "xxx")" case?
>>>>
>>>> file.d(58): static assert  (0) is false, "xxx"
>>>>
>>>> Maybe drop out the "(0) is false" bit, since it doesn't seem to add 
>>>> much value, changing it to something like:
>>>>
>>>> file.d(58): static assert, "xxx"
>>>>
>>>> Or even drop the 'static assert' bit entirely, and just display "xxx".
>>>
>>> I don't think dropping the 'static assert' bit is a good idea (at 
>>> least, without replacing it with something of similar meaning). I 
>>> think it's a good thing that static asserts are clearly distinct from 
>>> compiler-generated errors. The exact wording could be different but 
>>> it should be clear that this is an error because the author of the 
>>> code explicitly _made_ it one, not because of any inherent language 
>>> rule (other than the one on static assert, obviously).
>>
>> Why is it important to distinguish between an error that's detected in 
>> a library, compared to one that is detected by the compiler? I would 
>> think that a library writer would have the decency to explain in the 
>> text of the error, that the error occurred in the library.
>>
>> somefile.d(25): "SnazzySQL: Syntax error in SQL statement 'SELET * 
>> FROM CUSTOMERS'"
>>
>> (You could be correct, it's just not obvious to me).
> 
> There may be other reasons, but often IDEs will take you to lines where 
> errors were generated, sorting those that are errors ahead of lines that 
> were warnings or informational or what have you.
> 
> For that to work though, prefixes need to be consistent.  An IDE won't 
> know if "SnazzySQL" is an error a warning or what.  So from my POV at 
> least static asserts should be prefixed with *something* fixed, but I 
> don't care so much if it's just "somefile.d(25): Error" or 
> "somefile.d(25): static assert.
> 
> If the latter then an IDE could have a rule that prioritizes static 
> asserts over other errors.  Don't know how useful that would be though. 
>  Seems common to only distinguish 3 categories -- Error (this won't 
> compile),  Warning (this might cause trouble at runtime), Information 
> ("hey I'm going to link with phobos.lib, ok?")

Fair enough, but existing DMD error messages don't do that.

file.d(729): found 'auto' when expecting ';' following 'statement'

so it's a general issue. But since Walter doesn't like warnings, they're 
all errors anyway.



More information about the Digitalmars-d mailing list