diff options
Diffstat (limited to 'crates/hir_ty/src/tests/macros.rs')
-rw-r--r-- | crates/hir_ty/src/tests/macros.rs | 28 |
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] |
376 | fn 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] | ||
376 | fn infer_type_value_macro_having_same_name() { | 402 | fn 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 | ); |