You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
macro_rules! foo { ($x:pat2015 | $y:pat) => {} } //~ ERROR the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro
8
+
macro_rules! bar { ($($x:pat2015)+ | $($y:pat)+) => {} } //~ ERROR the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro
9
+
macro_rules! baz { ($x:pat2015 | $y:pat2015) => {} } // should be ok
10
+
macro_rules! qux { ($x:pat2015 | $y:pat) => {} } // should be ok
11
+
macro_rules! ogg { ($x:pat2015 | $y:pat2015) => {} } //~ ERROR the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro
12
+
macro_rules! match_any {
13
+
( $expr:expr , $( $( $pat:pat2015 )|+ => $expr_arm:expr ),+ ) => { //~ ERROR the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro
14
+
match $expr {
15
+
$(
16
+
$( $pat => $expr_arm, )+
17
+
)+
18
+
}
19
+
};
20
+
}
21
+
22
+
fn main() {
23
+
let result: Result<i64, i32> = Err(42);
24
+
let int: i64 = match_any!(result, Ok(i) | Err(i) => i.into());
macro_rules! foo {($x:pat | $y:pat) => {}}//~ ERROR the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro
8
+
macro_rules! bar {($($x:pat)+ | $($y:pat)+) => {}}//~ ERROR the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro
9
+
macro_rules! baz {($x:pat2015 | $y:pat2015) => {}}// should be ok
10
+
macro_rules! qux {($x:pat2015 | $y:pat) => {}}// should be ok
11
+
macro_rules! ogg {($x:pat | $y:pat2015) => {}}//~ ERROR the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro
12
+
macro_rules! match_any {
13
+
( $expr:expr , $( $( $pat:pat )|+ => $expr_arm:expr ),+ ) => {//~ ERROR the meaning of the `pat` fragment specifier is changing in Rust 2021, which may affect this macro
14
+
match $expr {
15
+
$(
16
+
$( $pat => $expr_arm,)+
17
+
)+
18
+
}
19
+
};
20
+
}
21
+
22
+
fnmain(){
23
+
let result:Result<i64,i32> = Err(42);
24
+
let int:i64 = match_any!(result,Ok(i) | Err(i) => i.into());
0 commit comments