Handle inner recursive macro rules cases

This commit is contained in:
Edwin Cheng 2021-03-18 19:39:40 +08:00
parent f7fbea509f
commit 13f30e9ef5
3 changed files with 34 additions and 0 deletions

View file

@ -231,6 +231,28 @@ fn expr_macro_expanded_in_stmts() {
);
}
#[test]
fn recursive_inner_item_macro_rules() {
check_infer(
r#"
macro_rules! mac {
() => { mac!($)};
($x:tt) => { macro_rules! blub { () => { 1 }; } };
}
fn foo() {
mac!();
let a = blub!();
}
"#,
expect![[r#"
!0..1 '1': i32
!0..7 'mac!($)': {unknown}
107..143 '{ ...!(); }': ()
129..130 'a': i32
"#]],
);
}
#[test]
fn infer_type_value_macro_having_same_name() {
check_infer(