On Monday, 21 October 2013 at 09:36:48 UTC, Jonathan M Davis wrote:
On Monday, October 21, 2013 11:24:06 Chris wrote:
But there you have this. But a function (in the same class) like

void processInput() {
   auto input = // ...
   // 20 lines later
   input = std.string.format("Hello %s!", someString);
}

Why would one want to write code like this? Why should a
short-lived local variable assume the name of a class variable?
This is a source of confusion and I don't consider this good
practice. Maybe it's just personal taste.

That may very well be bad practice (I certainly wouldn't advise writing code like that), but it's also not definitively wrong. Unless it's definitely a bug, I think that the compiler should keep quiet about it, because anything that it yells about has to be treated as a bug, and we shouldn't be forcing people to
change their code just because there _might_ be a bug in it.

- Jonathan M Davis

So the solution would be an additional layer that can be turned on / off. Warnings like "unused variable" or "shadowing class declaration" are quite useful. I don't see any other cases where a warning would be nice (at the moment).

Reply via email to