On Mon, 2016-01-18 at 19:18 -0500, Terry Reedy wrote: > On 1/18/2016 6:20 PM, Brett Cannon wrote: > > > > > > On Sun, 17 Jan 2016 at 11:10 Brett Cannon <br...@python.org > > <mailto:br...@python.org>> wrote: > > > > While doing a review of http://bugs.python.org/review/26129/ I asked > > to have curly braces put around all `if` statement bodies. Serhiy > > pointed out that PEP 7 says curly braces are optional: > > https://www.python.org/dev/peps/pep-0007/#id5. I would like to > > change that. > > > > My argument is to require them to prevent bugs like the one Apple > > made with OpenSSL about two years ago: > > https://www.imperialviolet.org/2014/02/22/applebug.html. Skipping > > the curly braces is purely an aesthetic thing while leaving them out > > can lead to actual bugs. > > > > Anyone object if I update PEP 7 to remove the optionality of curly > > braces in PEP 7? > > > > > > Currently this thread stands at: > > > > +1 > > Brett > > Ethan > > Robert > > Georg > > Nick > > Maciej Szulik > > +0 > > Guido > > -0 > > Serhiy > > MAL > > -1 > > Victor (maybe; didn't specifically vote) > > Larry > > Stefan > > Though I don't write C anymore, I occasionally read our C sources. I > dislike mixed bracketing in a multiple clause if/else statement, and > would strongly recommend against that. On the other hand, to my > Python-trained eye, brackets for one line clauses are just noise. +-0. > > If coverity's scan does not flag the sort of misleading bug bait > formatting that at least partly prompted this thread > > if (a): > b; > c; > > then I think we should find or write something that does and run it over > existing code as well as patches.
FWIW, for the forthcoming gcc 6, I've implemented a new -Wmisleading-indentation warning that catches this. It's currently enabled by -Wall: sslKeyExchange.c: In function 'SSLVerifySignedServerKeyExchange': sslKeyExchange.c:631:8: warning: statement is indented as if it were guarded by... [-Wmisleading-indentation] goto fail; ^~~~ sslKeyExchange.c:629:4: note: ...this 'if' clause, but it is not if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0) ^~ (not that I've had time for core Python development lately, but FWIW in gcc-python-plugin I mandate braces for single-statement clauses). Dave _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com