[PATCH] D80947: Add to the Coding Standard our that single-line bodies omit braces

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Jun 1 13:33:14 PDT 2020


erichkeane marked 4 inline comments as done.
erichkeane added inline comments.


================
Comment at: llvm/docs/CodingStandards.rst:1573
 
+Don't Use Braces on Simple Single-Statement Bodies of if/else/loop Statements
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
----------------
lebedev.ri wrote:
> `case` too
Case statements are troublesome, right?  First, i don't really see that ever being an issue (do we have people unnecessarily doing braces around case statements?), and I consider the conditions on when to use braces in case statements to be different.



================
Comment at: llvm/docs/CodingStandards.rst:1580
+statement is accompanied by a comment that loses its meaning if hoisted above the if
+or loop statement, or where the single statement is complex enough that it stops being
+clear that it is a single line. Note that comments should only be hoisted for loops and
----------------
jdoerfert wrote:
> hubert.reinterpretcast wrote:
> > I'm happy with the implications of how this is phrased, but I am not sure it was intended. A statement that is not going to be a single line (a loop inside an else) qualifies for braces.
> > A statement that is not going to be a single line (a loop inside an else) qualifies for braces.
> 
> I would agree to that. 
Well, I said 'statement', not 'line' to attempt to avoid this :)  I'll try a re-word, but I'd love additional suggestions.


================
Comment at: llvm/docs/CodingStandards.rst:1592
+    handleVarDecl(D);
+  else {
+    // In this else case, it is necessary that we explain the situation with this
----------------
jdoerfert wrote:
> hubert.reinterpretcast wrote:
> > I believe this is an example of bad style. Applying the prose text to the example:
> > Adding braces in this example to the above bodies do not introduce "meaningless lines of code" as the lines already occur regardless. Adding braces may arguably improve readability.
> > 
> > Say, for the following, the lack of uniformity in the use of braces is a distraction:
> > ```
> > if (A)
> >   zip();
> > else if (B) {
> >   foo();
> >   bar();
> > } else
> >   hello;
> > ```
> I also think a "compound statement" that has braces at some point can/should have them everywhere.
I've removed the 'lines of code' from meaningless, but I'd love to hear your suggestion on how to word this rule.  I couldn't come up with a set of rules that would be consistent with our current enforcement, and be reasonable.

I considered some rule where 'once an if/else tree gets braces, everything below that point' would have braces, but I didn't have a good wording for it (and I intended to not be novel here compared to enforcement).  In your case, the 'else' would have it, and I'd like the 'if' to be optional.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D80947/new/

https://reviews.llvm.org/D80947





More information about the cfe-commits mailing list