mirror of
https://github.com/libvirt/libvirt.git
synced 2026-09-03 20:53:04 -05:00
maint: document dislike of mismatched if/else bracing
* docs/hacking.html.in (Curly braces): Tighten recommendations to
disallow if (cond) one-line; else { block; }.
* HACKING: Regenerate.
Suggested by Daniel P. Berrange.
This commit is contained in:
@@ -161,33 +161,42 @@ Do this, instead:
|
||||
|
||||
However, there is one exception in the other direction, when even a one-line
|
||||
block should have braces. That occurs when that one-line, brace-less block is
|
||||
an "else" block, and the corresponding "then" block *does* use braces. In that
|
||||
case, either put braces around the "else" block, or negate the "if"-condition
|
||||
and swap the bodies, putting the one-line block first and making the longer,
|
||||
multi-line block be the "else" block.
|
||||
an "if" or "else" block, and the counterpart block *does* use braces. In that
|
||||
case, put braces around both blocks. Also, if the "else" block is much shorter
|
||||
than the "if" block, consider negating the "if"-condition and swapping the
|
||||
bodies, putting the short block first and making the longer, multi-line block
|
||||
be the "else" block.
|
||||
|
||||
if (expr) {
|
||||
...
|
||||
...
|
||||
}
|
||||
else
|
||||
x = y; // BAD: braceless "else" with braced "then"
|
||||
x = y; // BAD: braceless "else" with braced "then",
|
||||
// and short block last
|
||||
|
||||
This is preferred, especially when the multi-line body is more than a few
|
||||
lines long, because it is easier to read and grasp the semantics of an
|
||||
if-then-else block when the simpler block occurs first, rather than after the
|
||||
more involved block:
|
||||
|
||||
if (!expr)
|
||||
x = y; // putting the smaller block first is more readable
|
||||
if (expr)
|
||||
x = y; // BAD: braceless "if" with braced "else"
|
||||
else {
|
||||
...
|
||||
...
|
||||
}
|
||||
|
||||
If you'd rather not negate the condition, then at least add braces:
|
||||
Keeping braces consistent and putting the short block first is preferred,
|
||||
especially when the multi-line body is more than a few lines long, because it
|
||||
is easier to read and grasp the semantics of an if-then-else block when the
|
||||
simpler block occurs first, rather than after the more involved block:
|
||||
|
||||
if (expr) {
|
||||
if (!expr) {
|
||||
x = y; // putting the smaller block first is more readable
|
||||
} else {
|
||||
...
|
||||
...
|
||||
}
|
||||
|
||||
But if negating a complex condition is too ugly, then at least add braces:
|
||||
|
||||
if (complex expr not worth negating) {
|
||||
...
|
||||
...
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user