diff --git a/crates/hir_def/src/macro_expansion_tests/mbe.rs b/crates/hir_def/src/macro_expansion_tests/mbe.rs index 1e3d554b83a..09688e16b63 100644 --- a/crates/hir_def/src/macro_expansion_tests/mbe.rs +++ b/crates/hir_def/src/macro_expansion_tests/mbe.rs @@ -48,7 +48,7 @@ macro_rules! m { } #[test] -fn tries_all_branches_matching_token_literally() { +fn tries_all_branches_matching_first_token_literally() { check( r#" macro_rules! m { @@ -70,5 +70,31 @@ mod foo {} fn bar() {} struct Baz; "#]], - ) + ); +} + +#[test] +fn tries_all_branches_matching_last_token_literally() { + check( + r#" +macro_rules! m { + ($ i:ident) => ( mod $ i {} ); + ($ i:ident =) => ( fn $ i() {} ); + ($ i:ident +) => ( struct $ i; ) +} +m! { foo } +m! { bar = } +m! { Baz + } +"#, + expect![[r#" +macro_rules! m { + ($ i:ident) => ( mod $ i {} ); + ($ i:ident =) => ( fn $ i() {} ); + ($ i:ident +) => ( struct $ i; ) +} +mod foo {} +fn bar() {} +struct Baz; +"#]], + ); } diff --git a/crates/mbe/src/tests/expand.rs b/crates/mbe/src/tests/expand.rs index 48143f0a60b..f746eb5a1a6 100644 --- a/crates/mbe/src/tests/expand.rs +++ b/crates/mbe/src/tests/expand.rs @@ -209,28 +209,6 @@ macro_rules! foo { ); } -#[test] -fn test_fail_match_pattern_by_last_token() { - parse_macro( - r#" - macro_rules! foo { - ($ i:ident) => ( - mod $ i {} - ); - ($ i:ident =) => ( - fn $ i() {} - ); - ($ i:ident +) => ( - struct $ i; - ) - } -"#, - ) - .assert_expand_items("foo! { foo }", "mod foo {}") - .assert_expand_items("foo! { bar = }", "fn bar () {}") - .assert_expand_items("foo! { Baz + }", "struct Baz ;"); -} - #[test] fn test_fail_match_pattern_by_word_token() { parse_macro(