mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-27 04:19:18 +00:00
![]() ## Summary The isolation group for unused imports was relying on `checker.semantic().current_statement()`, which isn't valid for that rule, since it runs over the _scope_, not the statement. Instead, we need to lookup the isolation group based on the `NodeId` of the statement. Our tests didn't catch this, because we mostly have cases that look like this: ```python if TYPE_CHECKING: import shelve import importlib ``` In this case, the two fixes to remove the two unused imports are considered overlapping (since we delete the _full_ line, and the two _full_ lines touch, and we consider exactly-adjacent fixes to be overlapping), and so they don't run in a single pass due to the non-overlapping-fixes requirement. That is: the isolation groups aren't required for this case. They are, however, required for cases like: ```python if TYPE_CHECKING: import shelve import importlib ``` ...where the fixes don't overlap. Closes https://github.com/astral-sh/ruff/issues/6758. ## Test Plan `cargo test` |
||
---|---|---|
.. | ||
flake8_to_ruff | ||
ruff | ||
ruff_benchmark | ||
ruff_cache | ||
ruff_cli | ||
ruff_dev | ||
ruff_diagnostics | ||
ruff_formatter | ||
ruff_index | ||
ruff_macros | ||
ruff_python_ast | ||
ruff_python_codegen | ||
ruff_python_formatter | ||
ruff_python_index | ||
ruff_python_literal | ||
ruff_python_parser | ||
ruff_python_resolver | ||
ruff_python_semantic | ||
ruff_python_stdlib | ||
ruff_python_trivia | ||
ruff_shrinking | ||
ruff_source_file | ||
ruff_text_size | ||
ruff_wasm |