fix: handle aliased pattern and simplify testcase

This commit is contained in:
Khanh Duong Quoc 2024-10-24 20:17:24 +09:00
parent 75a659e4d2
commit 1b699b5d6c
No known key found for this signature in database
GPG Key ID: 68399C39885161F3
2 changed files with 32 additions and 23 deletions

View File

@ -294,7 +294,7 @@ pub(crate) fn render_resolution_with_import_pat(
import_edit: LocatedImport, import_edit: LocatedImport,
) -> Option<Builder> { ) -> Option<Builder> {
let resolution = ScopeDef::from(import_edit.original_item); let resolution = ScopeDef::from(import_edit.original_item);
let local_name = scope_def_to_name(resolution, &ctx, &import_edit)?; let local_name = get_import_name(resolution, &ctx, &import_edit)?;
Some(render_resolution_pat(ctx, pattern_ctx, local_name, Some(import_edit), resolution)) Some(render_resolution_pat(ctx, pattern_ctx, local_name, Some(import_edit), resolution))
} }

View File

@ -1671,43 +1671,52 @@ mod module {
} }
#[test] #[test]
fn re_export_aliased_function() { fn re_export_aliased() {
check( check(
r#" r#"
//- /lib.rs crate:bar mod outer {
pub fn func(_: i32) -> i32 {} mod inner {
pub struct BarStruct;
//- /lib.rs crate:foo deps:bar pub fn bar_fun() {}
pub use bar::func as my_func; pub mod bar {}
}
//- /main.rs crate:main deps:foo pub use inner::bar as foo;
fn main() { pub use inner::bar_fun as foo_fun;
m$0 pub use inner::BarStruct as FooStruct;
}
fn function() {
foo$0
} }
"#, "#,
expect![[r#" expect![[r#"
fn my_func() (use foo::my_func) fn(i32) -> i32 st FooStruct (use outer::FooStruct) BarStruct
md foo (use outer::foo)
fn foo_fun() (use outer::foo_fun) fn()
"#]], "#]],
); );
} }
#[test] #[test]
fn re_export_aliased_module() { fn re_export_aliased_pattern() {
check( check(
r#" r#"
//- /lib.rs crate:bar mod outer {
pub mod baz {} mod inner {
pub struct BarStruct;
//- /lib.rs crate:foo deps:bar pub fn bar_fun() {}
pub use bar::baz as my_baz; pub mod bar {}
}
//- /main.rs crate:main deps:foo pub use inner::bar as foo;
fn main() { pub use inner::bar_fun as foo_fun;
m$0 pub use inner::BarStruct as FooStruct;
}
fn function() {
let foo$0
} }
"#, "#,
expect![[r#" expect![[r#"
md my_baz (use foo::my_baz) st FooStruct (use outer::FooStruct)
md foo (use outer::foo)
"#]], "#]],
); );
} }