mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-29 05:14:52 +00:00
[ty] Fix a bug with "all_submodule_names_for_package" API
The names of the submodules returned should be *complete*. This is the contract of `Module::name`. However, we were previously only returning the basename of the submodule.
This commit is contained in:
parent
cf16fc4aa4
commit
6ec52991cb
3 changed files with 21 additions and 14 deletions
|
@ -1912,7 +1912,7 @@ fn submodule_cache_invalidation_created() -> anyhow::Result<()> {
|
|||
|
||||
insta::assert_snapshot!(
|
||||
case.sorted_submodule_names("bar").join("\n"),
|
||||
@"foo",
|
||||
@"bar.foo",
|
||||
);
|
||||
|
||||
std::fs::write(case.project_path("bar/wazoo.py").as_std_path(), "")?;
|
||||
|
@ -1922,8 +1922,8 @@ fn submodule_cache_invalidation_created() -> anyhow::Result<()> {
|
|||
insta::assert_snapshot!(
|
||||
case.sorted_submodule_names("bar").join("\n"),
|
||||
@r"
|
||||
foo
|
||||
wazoo
|
||||
bar.foo
|
||||
bar.wazoo
|
||||
",
|
||||
);
|
||||
|
||||
|
@ -1944,8 +1944,8 @@ fn submodule_cache_invalidation_deleted() -> anyhow::Result<()> {
|
|||
insta::assert_snapshot!(
|
||||
case.sorted_submodule_names("bar").join("\n"),
|
||||
@r"
|
||||
foo
|
||||
wazoo
|
||||
bar.foo
|
||||
bar.wazoo
|
||||
",
|
||||
);
|
||||
|
||||
|
@ -1955,7 +1955,7 @@ fn submodule_cache_invalidation_deleted() -> anyhow::Result<()> {
|
|||
|
||||
insta::assert_snapshot!(
|
||||
case.sorted_submodule_names("bar").join("\n"),
|
||||
@"foo",
|
||||
@"bar.foo",
|
||||
);
|
||||
|
||||
Ok(())
|
||||
|
@ -1969,7 +1969,7 @@ fn submodule_cache_invalidation_created_then_deleted() -> anyhow::Result<()> {
|
|||
|
||||
insta::assert_snapshot!(
|
||||
case.sorted_submodule_names("bar").join("\n"),
|
||||
@"foo",
|
||||
@"bar.foo",
|
||||
);
|
||||
|
||||
std::fs::write(case.project_path("bar/wazoo.py").as_std_path(), "")?;
|
||||
|
@ -1982,7 +1982,7 @@ fn submodule_cache_invalidation_created_then_deleted() -> anyhow::Result<()> {
|
|||
|
||||
insta::assert_snapshot!(
|
||||
case.sorted_submodule_names("bar").join("\n"),
|
||||
@"foo",
|
||||
@"bar.foo",
|
||||
);
|
||||
|
||||
Ok(())
|
||||
|
@ -1997,7 +1997,7 @@ fn submodule_cache_invalidation_after_pyproject_created() -> anyhow::Result<()>
|
|||
|
||||
insta::assert_snapshot!(
|
||||
case.sorted_submodule_names("bar").join("\n"),
|
||||
@"foo",
|
||||
@"bar.foo",
|
||||
);
|
||||
|
||||
case.update_options(Options::default())?;
|
||||
|
@ -2009,8 +2009,8 @@ fn submodule_cache_invalidation_after_pyproject_created() -> anyhow::Result<()>
|
|||
insta::assert_snapshot!(
|
||||
case.sorted_submodule_names("bar").join("\n"),
|
||||
@r"
|
||||
foo
|
||||
wazoo
|
||||
bar.foo
|
||||
bar.wazoo
|
||||
",
|
||||
);
|
||||
|
||||
|
|
|
@ -203,7 +203,9 @@ fn all_submodule_names_for_package<'db>(
|
|||
})
|
||||
.filter_map(|entry| {
|
||||
let stem = entry.path().file_stem()?;
|
||||
let name = ModuleName::new(stem)?;
|
||||
let mut name = module.name(db).clone();
|
||||
name.extend(&ModuleName::new(stem)?);
|
||||
|
||||
let (kind, file) = if entry.file_type().is_directory() {
|
||||
(
|
||||
ModuleKind::Package,
|
||||
|
@ -239,7 +241,9 @@ fn all_submodule_names_for_package<'db>(
|
|||
})
|
||||
.filter_map(|entry| {
|
||||
let stem = entry.path().file_stem()?;
|
||||
let name = ModuleName::new(stem)?;
|
||||
let mut name = module.name(db).clone();
|
||||
name.extend(&ModuleName::new(stem)?);
|
||||
|
||||
let (kind, file) = if entry.file_type().is_directory() {
|
||||
(
|
||||
ModuleKind::Package,
|
||||
|
|
|
@ -181,8 +181,11 @@ impl<'db> SemanticModel<'db> {
|
|||
let mut completions = vec![];
|
||||
for submodule in module.all_submodules(self.db) {
|
||||
let ty = Type::module_literal(self.db, self.file, *submodule);
|
||||
let Some(base) = submodule.name(self.db).components().next_back() else {
|
||||
continue;
|
||||
};
|
||||
completions.push(Completion {
|
||||
name: Name::new(submodule.name(self.db).as_str()),
|
||||
name: Name::new(base),
|
||||
ty: Some(ty),
|
||||
kind: None,
|
||||
builtin,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue