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.rs | 47 |
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 "#]], ); } |