[New-bugs-announce] [issue16429] Emit SyntaxWarning for code that risks UnboundLocalError
report at bugs.python.org
Wed Nov 7 15:59:26 CET 2012
New submission from Nick Coghlan:
The compiler is actually in a fairly good position to tell when code is at risk of triggering UnboundLocalError at runtime: specifically, in the section of the code that checks for duplicated parameter names 
Now, we can't emit SyntaxError here for backwards compatibility reasons (if you have an early reference that is never executed, your code is dodgy but will still run OK).
However, we should be able to emit a Syntax *Warning* when we detect an existing symbol at function scope having DEF_LOCAL applied for the first time *after* it has already been referenced in a way which doesn't create a local variable.
SyntaxWarning: Local variable NAME bound after earlier reference (risks UnboundLocalError when function is called)
title: Emit SyntaxWarning for code that risks UnboundLocalError
versions: Python 3.4
Python tracker <report at bugs.python.org>
More information about the New-bugs-announce