[Python-Dev] Issue #26204: compiler now emits a SyntaxWarning on constant statement (original) (raw)

Ethan Furman ethan at stoneleaf.us
Mon Feb 8 13:12:57 EST 2016


On 02/08/2016 10:00 AM, francismb wrote:

On 02/08/2016 06:44 PM, Victor Stinner wrote:

I changed the Python compiler to ignore any kind "constant expressions", whereas it only ignored strings and integers before: http://bugs.python.org/issue26204

The compiler now also emits a SyntaxWarning on such case. IMHO the warning can help to detect bugs for developers who just learnt Python.

[...]

New behaviour:

haypo at smithers$ ./python Python 3.6.0a0 (default:759a975e1230, Feb 8 2016, 18:21:23) --> def f(): ... False ... :2: SyntaxWarning: ignore constant statement

Just for my understanding:

What would happen if someone has functions where some return constant expressions and others not and then that functions are used depending on some other context. E.g:

def behaviour2(ctx): return 1

def behaviour1(ctx): return some_calculation_with(ctx)

[...]

if ... : return behaviour1(ctx) else : return behaviour2()

Is that going to raise a warning?

No, because those constants are being used (returned). Only constants that aren't used at all get omitted.

-- Ethan



More information about the Python-Dev mailing list