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.rs47
1 files changed, 27 insertions, 20 deletions
diff --git a/crates/hir_def/src/nameres/tests/macros.rs b/crates/hir_def/src/nameres/tests/macros.rs
index 763dff5a21..fbb1320d6e 100644
--- a/crates/hir_def/src/nameres/tests/macros.rs
+++ b/crates/hir_def/src/nameres/tests/macros.rs
@@ -669,19 +669,20 @@ pub struct bar;
fn expand_derive() {
let map = compute_crate_def_map(
r#"
- //- /main.rs crate:main deps:core
- use core::Copy;
-
- #[derive(Copy, core::Clone)]
- struct Foo;
+//- /main.rs crate:main deps:core
+use core::Copy;
- //- /core.rs crate:core
- #[rustc_builtin_macro]
- pub macro Copy {}
+#[core::derive(Copy, core::Clone)]
+struct Foo;
- #[rustc_builtin_macro]
- pub macro Clone {}
- "#,
+//- /core.rs crate:core
+#[rustc_builtin_macro]
+pub macro derive($item:item) {}
+#[rustc_builtin_macro]
+pub macro Copy {}
+#[rustc_builtin_macro]
+pub macro Clone {}
+"#,
);
assert_eq!(map.modules[map.root].scope.impls().len(), 2);
}
@@ -712,17 +713,19 @@ fn builtin_derive_with_unresolved_attributes_fall_back() {
cov_mark::check!(unresolved_attribute_fallback);
let map = compute_crate_def_map(
r#"
- //- /main.rs crate:main deps:core
- use core::Clone;
+//- /main.rs crate:main deps:core
+use core::{Clone, derive};
- #[derive(Clone)]
- #[unresolved]
- struct Foo;
+#[derive(Clone)]
+#[unresolved]
+struct Foo;
- //- /core.rs crate:core
- #[rustc_builtin_macro]
- pub macro Clone {}
- "#,
+//- /core.rs crate:core
+#[rustc_builtin_macro]
+pub macro derive($item:item) {}
+#[rustc_builtin_macro]
+pub macro Clone {}
+"#,
);
assert_eq!(map.modules[map.root].scope.impls().len(), 1);
}
@@ -799,6 +802,9 @@ fn resolves_derive_helper() {
check(
r#"
//- /main.rs crate:main deps:proc
+#[rustc_builtin_macro]
+pub macro derive($item:item) {}
+
#[derive(proc::Derive)]
#[helper]
#[unresolved]
@@ -811,6 +817,7 @@ fn derive() {}
expect![[r#"
crate
S: t v
+ derive: m
"#]],
);
}