mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-28 21:04:51 +00:00
Avoid falsely marking non-submodules as submodule aliases (#6182)
## Summary We have some code to ensure that if an aliased import is used, any submodules should be marked as used too. This comment says it best: ```rust // If the name of a submodule import is the same as an alias of another import, and the // alias is used, then the submodule import should be marked as used too. // // For example, mark `pyarrow.csv` as used in: // // ```python // import pyarrow as pa // import pyarrow.csv // print(pa.csv.read_csv("test.csv")) // ``` ``` However, it looks like when we go to look up `pyarrow` (of `import pyarrow as pa`), we aren't checking to ensure the resolved binding is _actually_ an import. This was causing us to attribute `print(rm.ANY)` to `def requests_mock` here: ```python import requests_mock as rm def requests_mock(requests_mock: rm.Mocker): print(rm.ANY) ``` Closes https://github.com/astral-sh/ruff/issues/6180.
This commit is contained in:
parent
76741cac77
commit
de898c52eb
2 changed files with 13 additions and 1 deletions
|
@ -63,3 +63,10 @@ def main():
|
||||||
|
|
||||||
for sys in range(5):
|
for sys in range(5):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
import requests_mock as rm
|
||||||
|
|
||||||
|
|
||||||
|
def requests_mock(requests_mock: rm.Mocker):
|
||||||
|
print(rm.ANY)
|
||||||
|
|
|
@ -594,7 +594,12 @@ impl<'a> SemanticModel<'a> {
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
|
|
||||||
self.scopes[scope_id].get(qualified_name)
|
let binding_id = self.scopes[scope_id].get(qualified_name)?;
|
||||||
|
if !self.bindings[binding_id].kind.is_submodule_import() {
|
||||||
|
return None;
|
||||||
|
}
|
||||||
|
|
||||||
|
Some(binding_id)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Resolves the [`Expr`] to a fully-qualified symbol-name, if `value` resolves to an imported
|
/// Resolves the [`Expr`] to a fully-qualified symbol-name, if `value` resolves to an imported
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue