> But if it is cheap to detect a wide variety of name errors at compile time,
> is there any particular reason it is not done?
>From my perspective, it is done, but by tools that give better output
than Python's parser. :)
Linters (like pylint) are better than syntax errors here, because they
collect all of the undefined variables, not just the first one. Maybe
Python could/should be changed to give more detailed errors of this
kind as well. e.g. Clang parse errors for C and C++ are much more
thorough and will report all of your typos, not just the first one.
> P.S. Here are some uncommon language features that interfere with identifying
> all valid names. In their absence, one might expect an invalid name to be a
> syntax error:
Also, if statements, depending on what you mean by "invalid":
def foo(x):
if x:
y = 3
return y # will raise UnboundLocalError if not x
-- Devin
--
https://mail.python.org/mailman/listinfo/python-list