diff options
| author | roife <roifewu@gmail.com> | 2024-05-21 20:35:55 +0800 |
|---|---|---|
| committer | roife <roifewu@gmail.com> | 2024-05-21 20:35:55 +0800 |
| commit | 719eee2d822e83dd74da46dfaa759acb9074d3aa (patch) | |
| tree | aee8c5bec8ad81d12bc16a0c6112c515793e9bf4 /src/tools | |
| parent | ea2a16cadb93d7ab8ee08dbe4d0527faaf94b329 (diff) | |
| download | rust-719eee2d822e83dd74da46dfaa759acb9074d3aa.tar.gz rust-719eee2d822e83dd74da46dfaa759acb9074d3aa.zip | |
test: add tests for extern preludes resolving in local mods
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/rust-analyzer/crates/hir-def/src/body/tests/block.rs | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/tools/rust-analyzer/crates/hir-def/src/body/tests/block.rs b/src/tools/rust-analyzer/crates/hir-def/src/body/tests/block.rs index 985c6387ba0..f483efa8517 100644 --- a/src/tools/rust-analyzer/crates/hir-def/src/body/tests/block.rs +++ b/src/tools/rust-analyzer/crates/hir-def/src/body/tests/block.rs @@ -528,3 +528,65 @@ fn f() {$0 "#]], ) } + +#[test] +fn resolve_extern_prelude_in_block() { + check_at( + r#" +//- /main.rs crate:main deps:core +fn main() { + mod f { + use core::S; + $0 + } +} + +//- /core.rs crate:core +pub struct S; + "#, + expect![[r#" + block scope + f: t + + block scope::f + S: ti vi + + crate + main: v + "#]], + ) +} + +#[test] +fn shadow_extern_prelude_in_block() { + check_at( + r#" +//- /main.rs crate:main deps:core +fn main() { + mod core { pub struct S; } + { + fn inner() {} // forces a block def map + use core::S; // should resolve to the local one + $0 + } +} + +//- /core.rs crate:core +pub const S; + "#, + expect![[r#" + block scope + S: ti vi + inner: v + + block scope + core: t + + block scope::core + S: t v + + crate + main: v + "#]], + ) +} |
