-
-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
References to names before they're bound should generate an error (UnboundLocalError) #686
Comments
I'm working on a solution for this issue in my 'scope' branch. |
Yup, mypy is currently too lenient, and catching these errors would be useful. This should still be fine and we shouldn't complain about this: def f(x: 'A'):
y = A()
class A: pass |
In Python 3.7, with Given that |
This is confusing for new users and they might not know about |
another example that foo() # runtime NameError: name 'foo' is not defined
def foo():
... |
Should we expect try:
raise ValueError
bar = 3
except Exception:
print(bar) Obviously this code actually produces |
@ilinum I think the original example in this issue should result in |
#14203 should fix this for classes and functions. |
Previously, we would ignore any class definitions and would fail to detect undefined classes and functions. This updates the logic to handle them. Closes #686
Connecting the dots: looks like #4019 tracks the local variable case. |
This code raises an error when executed but passes type checking:
The text was updated successfully, but these errors were encountered: