Use pattern_single instead of pattern in mbe pat

This commit is contained in:
Edwin Cheng 2020-12-20 17:13:40 +08:00
parent f3125555a8
commit f942d10e80
3 changed files with 14 additions and 2 deletions

View File

@ -1003,6 +1003,18 @@ macro_rules! foo {
.assert_expand_items(r#"foo! { => }"#, r#"0"#); .assert_expand_items(r#"foo! { => }"#, r#"0"#);
} }
#[test]
fn test_vertical_bar_with_pat() {
parse_macro(
r#"
macro_rules! foo {
(| $pat:pat | ) => { 0 }
}
"#,
)
.assert_expand_items(r#"foo! { | x | }"#, r#"0"#);
}
#[test] #[test]
fn test_lifetime() { fn test_lifetime() {
parse_macro( parse_macro(

View File

@ -55,7 +55,7 @@ pub(crate) mod fragments {
use super::*; use super::*;
pub(crate) use super::{ pub(crate) use super::{
expressions::block_expr, paths::type_path as path, patterns::pattern, types::type_, expressions::block_expr, paths::type_path as path, patterns::pattern_single, types::type_,
}; };
pub(crate) fn expr(p: &mut Parser) { pub(crate) fn expr(p: &mut Parser) {

View File

@ -112,7 +112,7 @@ pub fn parse_fragment(
FragmentKind::Path => grammar::fragments::path, FragmentKind::Path => grammar::fragments::path,
FragmentKind::Expr => grammar::fragments::expr, FragmentKind::Expr => grammar::fragments::expr,
FragmentKind::Type => grammar::fragments::type_, FragmentKind::Type => grammar::fragments::type_,
FragmentKind::Pattern => grammar::fragments::pattern, FragmentKind::Pattern => grammar::fragments::pattern_single,
FragmentKind::Item => grammar::fragments::item, FragmentKind::Item => grammar::fragments::item,
FragmentKind::Block => grammar::fragments::block_expr, FragmentKind::Block => grammar::fragments::block_expr,
FragmentKind::Visibility => grammar::fragments::opt_visibility, FragmentKind::Visibility => grammar::fragments::opt_visibility,