aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/tests/macros.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/hir_ty/src/tests/macros.rs')
-rw-r--r--crates/hir_ty/src/tests/macros.rs28
1 files changed, 27 insertions, 1 deletions
diff --git a/crates/hir_ty/src/tests/macros.rs b/crates/hir_ty/src/tests/macros.rs
index 3eb01dbd0..b8e373ed8 100644
--- a/crates/hir_ty/src/tests/macros.rs
+++ b/crates/hir_ty/src/tests/macros.rs
@@ -373,6 +373,32 @@ fn recursive_inner_item_macro_rules() {
373} 373}
374 374
375#[test] 375#[test]
376fn infer_macro_defining_block_with_items() {
377 check_infer(
378 r#"
379 macro_rules! foo {
380 () => {{
381 fn bar() -> usize { 0 }
382 bar()
383 }};
384 }
385 fn main() {
386 let _a = foo!();
387 }
388 "#,
389 expect![[r#"
390 !15..18 '{0}': usize
391 !16..17 '0': usize
392 !0..24 '{fnbar...bar()}': usize
393 !18..21 'bar': fn bar() -> usize
394 !18..23 'bar()': usize
395 98..122 '{ ...!(); }': ()
396 108..110 '_a': usize
397 "#]],
398 );
399}
400
401#[test]
376fn infer_type_value_macro_having_same_name() { 402fn infer_type_value_macro_having_same_name() {
377 check_infer( 403 check_infer(
378 r#" 404 r#"
@@ -1039,11 +1065,11 @@ fn macro_in_arm() {
1039 } 1065 }
1040 "#, 1066 "#,
1041 expect![[r#" 1067 expect![[r#"
1068 !0..2 '()': ()
1042 51..110 '{ ... }; }': () 1069 51..110 '{ ... }; }': ()
1043 61..62 'x': u32 1070 61..62 'x': u32
1044 65..107 'match ... }': u32 1071 65..107 'match ... }': u32
1045 71..73 '()': () 1072 71..73 '()': ()
1046 84..91 'unit!()': ()
1047 95..100 '92u32': u32 1073 95..100 '92u32': u32
1048 "#]], 1074 "#]],
1049 ); 1075 );