Allow leading pipe in matches!()
patterns.
This is allowed in `match` statement, and stated in https://internals.rust-lang.org/t/leading-pipe-in-core-matches/14699/2 that it should be allowed in these macros too.
This commit is contained in:
parent
0a6c636c40
commit
f10da9f50a
2 changed files with 9 additions and 3 deletions
|
@ -141,7 +141,7 @@ macro_rules! assert_ne {
|
||||||
#[allow_internal_unstable(core_panic)]
|
#[allow_internal_unstable(core_panic)]
|
||||||
#[rustc_macro_transparency = "semitransparent"]
|
#[rustc_macro_transparency = "semitransparent"]
|
||||||
pub macro assert_matches {
|
pub macro assert_matches {
|
||||||
($left:expr, $( $pattern:pat_param )|+ $( if $guard: expr )? $(,)?) => ({
|
($left:expr, $(|)? $( $pattern:pat_param )|+ $( if $guard: expr )? $(,)?) => ({
|
||||||
match $left {
|
match $left {
|
||||||
$( $pattern )|+ $( if $guard )? => {}
|
$( $pattern )|+ $( if $guard )? => {}
|
||||||
ref left_val => {
|
ref left_val => {
|
||||||
|
@ -153,7 +153,7 @@ pub macro assert_matches {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
($left:expr, $( $pattern:pat_param )|+ $( if $guard: expr )?, $($arg:tt)+) => ({
|
($left:expr, $(|)? $( $pattern:pat_param )|+ $( if $guard: expr )?, $($arg:tt)+) => ({
|
||||||
match $left {
|
match $left {
|
||||||
$( $pattern )|+ $( if $guard )? => {}
|
$( $pattern )|+ $( if $guard )? => {}
|
||||||
ref left_val => {
|
ref left_val => {
|
||||||
|
@ -321,7 +321,7 @@ pub macro debug_assert_matches($($arg:tt)*) {
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
#[stable(feature = "matches_macro", since = "1.42.0")]
|
#[stable(feature = "matches_macro", since = "1.42.0")]
|
||||||
macro_rules! matches {
|
macro_rules! matches {
|
||||||
($expression:expr, $( $pattern:pat_param )|+ $( if $guard: expr )? $(,)?) => {
|
($expression:expr, $(|)? $( $pattern:pat_param )|+ $( if $guard: expr )? $(,)?) => {
|
||||||
match $expression {
|
match $expression {
|
||||||
$( $pattern )|+ $( if $guard )? => true,
|
$( $pattern )|+ $( if $guard )? => true,
|
||||||
_ => false
|
_ => false
|
||||||
|
|
|
@ -12,3 +12,9 @@ fn assert_escape() {
|
||||||
fn assert_ne_trailing_comma() {
|
fn assert_ne_trailing_comma() {
|
||||||
assert_ne!(1, 2,);
|
assert_ne!(1, 2,);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[rustfmt::skip]
|
||||||
|
#[test]
|
||||||
|
fn matches_leading_pipe() {
|
||||||
|
matches!(1, | 1 | 2 | 3);
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue