
Roberto Bagnara bagnara@cs.unipr.it writes:
Matthew Mundell wrote:
Log message: Take out two redundant `else' and a redundant `if'.
What do you mean by redundant else?
The `else' repeats the information implied by the final return or goto.
Notice that source code is more than its semantics: the fact that with and without the else the behavior is the same is not a good reason to prefer the version without (or the version with the `else').
Adding the else makes it less clear that the body of the "then" branch of the `if' always ends in a return or goto.
If, in addition, you have something of the form
if (a) ... else // comment return ...
Did you mean this?
if (a) return ... else // comment ...
then taking out the else without revising the comment can do more harm than good.
The comment still applies to the code that was in the else branch.
More generally, the rationale for such changes is as follows:
- either things are left as they are on the grounds that who wrote the code knew better if the `else' there was making things more readable or not;
- or the issue is raised globally, discussed at length, documented in the STANDARDS file and then systematically applied to whatever code.
OK, I will resist from changing such code.