Detector for unused variables

Regan Heath regan at netmail.co.nz
Wed Aug 1 08:42:15 PDT 2012


On Wed, 01 Aug 2012 15:52:22 +0100, bearophile <bearophileHUGS at lycos.com>  
wrote:
> Regan Heath:
>
>> If you make detecting un-used variables a /requirement/ for  
>> implementing a D compiler, you make it that much less likely someone  
>> will write one,
>
> Detecting unused variables can be written as a part of the front-end.

Or it can be written using the front-end.

> It's meant to be shared by LDC and GDC that use the same front-end.

Why?

>> We may have gotten used to it being there, but it's not part of the  
>> "compilation" phase but rather part of the "development" phase and/or  
>> the "quality control" phase which are arguably the realm of the IDE or  
>> a "lint" checker.<
>
> In theory you are right, in practice I don't know how much this idea is  
> applicable to D/DMD and how much good it does.
> In Clang they have added a switch to perform extra static tests on the  
> code. It's a feature built in the compiler. I think this is an  
> acceptable place to put an unused variable warning in DMD.

You're missing my main point which is that you can get the appearance of a  
compiler feature with a 3rd party tool bundled with the compiler, the  
difference/benefits of a 3rd party tool are:

1. The "feature" it implements is not a requirement for all D compilers.
2. Walter doesn't have to implement it.

And more minor points include:

3. We can have competition between 3rd party vendors.
4. People can select/run their favorite tool.
5. A crashing tool/feature will no stop compilation.

Basically, having a 3rd party tool will look exactly like a feature of the  
compiler, but it will be better for the reasons above.

R





More information about the Digitalmars-d-learn mailing list