<meta charset="utf-8"><div>This is a followup to my thread yesterday regarding consistent enforcement of the style guide.  Like Yong Li, I find the current rule about braces on conditional arms to be suboptimal.  The current rule is that one-line arms must not have braces.  This leads to strange constructions like:</div>
<div><br></div><div>if (foo) {</div><div>  a;</div><div>  b;</div><div>  c;</div><div>  // etc., very long body</div><div>} else</div><div>  x;</div><div><br></div><div>...or perhaps:</div><div><br></div><div>if (foo)</div>
<div>  a;</div><div>else if (bar) {</div><div>  b;</div><div>  c;</div><div>} else if (baz)</div><div>  d;</div><div>else if (qux) {</div><div>  e;</div><div>  f;</div><div>}</div><div><br></div><div>I find this tricky to read and error-prone.  I propose that the rule be modified to be:</div>
<div><br></div><div>* When all arms of a conditional or loop are one physical line, do not use braces.  If any arms are more than one physical line (even if they are one logical line), use braces on all arms.</div><div><br>
</div><div>In most places this will not differ from the existing code, so it will not &quot;cause the whole codebase to become invalid&quot;; but it prevents cases where the inconsistency leads (IMO) to lower readability/safety.  (As a bonus for Chromium developers, it&#39;s compatible with the Google style guide too, although it goes further than that guide in order to make the correct style explicit in all cases.)</div>
<div><br></div><div>PK</div>