Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/nameres/tests/macros.rs')
-rw-r--r--crates/hir-def/src/nameres/tests/macros.rs48
1 files changed, 48 insertions, 0 deletions
diff --git a/crates/hir-def/src/nameres/tests/macros.rs b/crates/hir-def/src/nameres/tests/macros.rs
index 48fe43450a..0f6e64016f 100644
--- a/crates/hir-def/src/nameres/tests/macros.rs
+++ b/crates/hir-def/src/nameres/tests/macros.rs
@@ -1265,6 +1265,54 @@ struct A;
}
#[test]
+fn nested_include() {
+ check(
+ r#"
+//- minicore: include
+//- /lib.rs
+include!("out_dir/includes.rs");
+
+//- /out_dir/includes.rs
+pub mod company_name {
+ pub mod network {
+ pub mod v1 {
+ include!("company_name.network.v1.rs");
+ }
+ }
+}
+//- /out_dir/company_name.network.v1.rs
+pub struct IpAddress {
+ pub ip_type: &'static str,
+}
+/// Nested message and enum types in `IpAddress`.
+pub mod ip_address {
+ pub enum IpType {
+ IpV4(u32),
+ }
+}
+
+"#,
+ expect![[r#"
+ crate
+ company_name: t
+
+ crate::company_name
+ network: t
+
+ crate::company_name::network
+ v1: t
+
+ crate::company_name::network::v1
+ IpAddress: t
+ ip_address: t
+
+ crate::company_name::network::v1::ip_address
+ IpType: t
+ "#]],
+ );
+}
+
+#[test]
fn macro_use_imports_all_macro_types() {
let db = TestDB::with_files(
r#"