Unused variables, better as error or warning?

Jonathan M Davis jmdavisprog at gmail.com
Fri Aug 20 11:53:04 PDT 2010


On Friday, August 20, 2010 11:35:48 Nick Sabalausky wrote:
> "bearophile" <bearophileHUGS at lycos.com> wrote in message
> news:i4luk9$2rdg$1 at digitalmars.com...
> 
> >A small Reddit thread regarding if unused variables and imports are better
> >
> >as errors or warnings:
> > http://www.reddit.com/r/programming/comments/d3emo
> > 
> > In my opinion in this case errors are too much, warning are enough.
> > 
> > Few situations for those warnings:
> > - warning for unused variables (as GC, C# and other compilers do);
> > - warning when a variable get used in some ways, and then its last
> > assignment gets unused (done by a kind of C compiler);
> > - unused imports (useful to keep code clean and remove unnecessary module
> > dependences);
> > - unused functions (but this is harder to do in a clean way in a language
> > that has templates, so this may be omitted).
> > 
> > Among those four warnings the most useful are the first two ones. In C
> > once the unused variable warning of GCC has found at compile time a bug
> > in my code (I did forget to increment that variable in the loop). So I
> > have loved this warning ever since.
> 
> An error would be an enormous pain in the ass. A warning might be helpful
> in some cases.

Except that thanks to how warnings are deal with in dmd, there's not much 
difference between an error and a warning; it's just a question of how picky you 
want to be about errors. As it is, I'd argue that there is no such thing as a 
real warning in D. You never see warnings unless you use -w, at which point 
they're treated as errors. And if you're being at all careful, you're going to 
be compiling with -w, so it doesn't make much difference. You can choose to 
compile without -w until you think what you have works and then use -w to find 
stuff you missed, but then you could easily be being shot in the foot by 
something that's considered a warning. If you had seen it, you could have dealt 
with it. What dmd needs is for warnings to be visible in normal compilation, 
making -w only make warnings errors as opposed to being the way to make them 
appear as well. As it is, warnings pretty much might as well be errors.

- Jonathan M Davis


More information about the Digitalmars-d mailing list