[Python-ideas] SyntaxWarning for for/while/else without break or return?

Jacob Holm jh at improva.dk
Fri Oct 9 08:24:47 CEST 2009

Steven D'Aprano wrote:
> On Thu, 8 Oct 2009 07:57:38 pm Stefan Rank wrote:
>> This would both help prevent wrong usage because of a false intuition
>> and, if adequately and prominently documented, would help those
>> interested in learning about for/else while/else.
>> Easily doable? Maybe even make it a SyntaxError?
> -1000 on making it a SyntaxError. SyntaxErrors are for things which are 
> WRONG, not for things which are unnecessary or redundant or pointless.
> Should this be prohibited too?
> for x in seq:
>     if 0: break
> else:
>     print "whatever"

No, see below.

> What happens when the break is under a __debug__ test? The same source 
> compiles to two different byte-codes, one of which has break, the other 
> doesn't. 

If I understand Nick correctly, this is irrelevant.  The warning/error 
generation would be handled by an earlier stage than the optimization 
that removes the break.

  - Jacob

More information about the Python-ideas mailing list