mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-27 04:19:18 +00:00
![]() Summary -- While going through the syntax errors in [this comment], I was surprised to see the error `name 'x' is assigned to before global declaration`, which corresponds to [load-before-global-declaration (PLE0118)] and has also been reimplemented as a syntax error (#17135). However, it looks like neither of the implementations consider `global` declarations in the top-level module scope, which is a syntax error in CPython: ```python # try.py x = None global x ``` ```shell > python -m compileall -f try.py Compiling 'try.py'... *** File "try.py", line 2 global x ^^^^^^^^ SyntaxError: name 'x' is assigned to before global declaration ``` I'm not sure this is the best or most elegant solution, but it was a quick fix that passed all of our tests. Test Plan -- New PLE0118 test case. [this comment]: https://github.com/astral-sh/ruff/issues/7633#issuecomment-1740424031 [load-before-global-declaration (PLE0118)]: https://docs.astral.sh/ruff/rules/load-before-global-declaration/#load-before-global-declaration-ple0118 |
||
---|---|---|
.. | ||
analyze | ||
cfg | ||
model | ||
binding.rs | ||
branches.rs | ||
context.rs | ||
definition.rs | ||
globals.rs | ||
imports.rs | ||
lib.rs | ||
model.rs | ||
nodes.rs | ||
reference.rs | ||
scope.rs | ||
star_import.rs |