diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-12-28 12:34:19 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2020-12-28 12:34:19 +0000 |
commit | 77ad203a719be074e81485af7a4fb02fac6cbf61 (patch) | |
tree | 69f29dec5bfb8f9d3b86e0e05ccb9d88193fb02d | |
parent | 99ec2f623d4446bcc0befe17a98db9c7062b8009 (diff) | |
parent | 877c251bef9bd4ac8ccab971786847bd4f28cc34 (diff) |
Merge #7060
7060: Fix mbe fail to pass expr with attr r=edwin0cheng a=edwin0cheng
bors r+
Fixes #5896
Co-authored-by: Edwin Cheng <[email protected]>
-rw-r--r-- | crates/hir_def/src/nameres/tests/macros.rs | 4 | ||||
-rw-r--r-- | crates/mbe/src/tests.rs | 12 | ||||
-rw-r--r-- | crates/parser/src/grammar.rs | 2 |
3 files changed, 15 insertions, 3 deletions
diff --git a/crates/hir_def/src/nameres/tests/macros.rs b/crates/hir_def/src/nameres/tests/macros.rs index f9bf5bc72..e5e9e8ca1 100644 --- a/crates/hir_def/src/nameres/tests/macros.rs +++ b/crates/hir_def/src/nameres/tests/macros.rs | |||
@@ -677,7 +677,7 @@ fn macro_expansion_overflow() { | |||
677 | r#" | 677 | r#" |
678 | macro_rules! a { | 678 | macro_rules! a { |
679 | ($e:expr; $($t:tt)*) => { | 679 | ($e:expr; $($t:tt)*) => { |
680 | b!($($t)*); | 680 | b!(static = (); $($t)*); |
681 | }; | 681 | }; |
682 | () => {}; | 682 | () => {}; |
683 | } | 683 | } |
@@ -689,7 +689,7 @@ macro_rules! b { | |||
689 | () => {}; | 689 | () => {}; |
690 | } | 690 | } |
691 | 691 | ||
692 | b! { static = #[] (); } | 692 | b! { static = #[] ();} |
693 | "#, | 693 | "#, |
694 | expect![[r#" | 694 | expect![[r#" |
695 | crate | 695 | crate |
diff --git a/crates/mbe/src/tests.rs b/crates/mbe/src/tests.rs index 9958a33a0..1d9afb4fb 100644 --- a/crates/mbe/src/tests.rs +++ b/crates/mbe/src/tests.rs | |||
@@ -761,6 +761,18 @@ fn test_last_expr() { | |||
761 | } | 761 | } |
762 | 762 | ||
763 | #[test] | 763 | #[test] |
764 | fn test_expr_with_attr() { | ||
765 | parse_macro( | ||
766 | r#" | ||
767 | macro_rules! m { | ||
768 | ($a:expr) => {0} | ||
769 | } | ||
770 | "#, | ||
771 | ) | ||
772 | .assert_expand_items("m!(#[allow(a)]())", "0"); | ||
773 | } | ||
774 | |||
775 | #[test] | ||
764 | fn test_ty() { | 776 | fn test_ty() { |
765 | parse_macro( | 777 | parse_macro( |
766 | r#" | 778 | r#" |
diff --git a/crates/parser/src/grammar.rs b/crates/parser/src/grammar.rs index f08c8bab7..63cc90027 100644 --- a/crates/parser/src/grammar.rs +++ b/crates/parser/src/grammar.rs | |||
@@ -59,7 +59,7 @@ pub(crate) mod fragments { | |||
59 | }; | 59 | }; |
60 | 60 | ||
61 | pub(crate) fn expr(p: &mut Parser) { | 61 | pub(crate) fn expr(p: &mut Parser) { |
62 | let _ = expressions::expr(p); | 62 | let _ = expressions::expr_with_attrs(p); |
63 | } | 63 | } |
64 | 64 | ||
65 | pub(crate) fn stmt(p: &mut Parser) { | 65 | pub(crate) fn stmt(p: &mut Parser) { |