From fe5340d970b764175ebf8b8c32c971fa04c49efb Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Sat, 2 Jan 2021 20:25:05 +0800 Subject: Introduce HygieneFrames for proper token hyginee --- crates/hir_ty/src/tests/macros.rs | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'crates/hir_ty/src') diff --git a/crates/hir_ty/src/tests/macros.rs b/crates/hir_ty/src/tests/macros.rs index a7656b864..23b79abc4 100644 --- a/crates/hir_ty/src/tests/macros.rs +++ b/crates/hir_ty/src/tests/macros.rs @@ -370,6 +370,37 @@ expand!(); ); } +#[test] +fn infer_macro_with_dollar_crate_in_def_site() { + check_types( + r#" +//- /main.rs crate:main deps:foo +use foo::expand; + +macro_rules! list { + ($($tt:tt)*) => { $($tt)* } +} + +fn test() { + let r = expand!(); + r; + //^ u128 +} + +//- /lib.rs crate:foo +#[macro_export] +macro_rules! expand { + () => { list!($crate::m!()) }; +} + +#[macro_export] +macro_rules! m { + () => { 0u128 }; +} +"#, + ); +} + #[test] fn infer_type_value_non_legacy_macro_use_as() { check_infer( -- cgit v1.2.3