Skip to content

Commit 86f1d9e

Browse files
committed
test
1 parent c7ad1dc commit 86f1d9e

2 files changed

Lines changed: 33 additions & 4 deletions

File tree

c2rust-refactor/src/macros.rs

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,14 @@ macro_rules! match_or_else {
1313
([$e:expr] $($arm_pat:pat => $arm_body:expr),*; $or_else:expr) => {
1414
match $e {
1515
$( $arm_pat => $arm_body, )*
16-
ref x @ _ => $or_else(x),
16+
_ => $or_else,
17+
}
18+
};
19+
20+
([$e:expr] $($arm_pat:pat => $arm_body:expr),*; $or_else_var:ident => $or_else:expr) => {
21+
match $e {
22+
$( $arm_pat => $arm_body, )*
23+
ref $or_else_var @ _ => $or_else,
1724
}
1825
};
1926
}
@@ -22,11 +29,11 @@ macro_rules! match_or_else {
2229
macro_rules! expect {
2330
([$e:expr] $arm_pat:pat => $arm_body:expr) => {
2431
$crate::match_or_else!([$e] $arm_pat => $arm_body;
25-
|x| panic!("expected {}, got {:?}", stringify!($arm_pat), x))
32+
x => panic!("expected {}, got {:?}", stringify!($arm_pat), x))
2633
};
2734
([$e:expr] $($arm_pat:pat => $arm_body:expr),*) => {
2835
$crate::match_or_else!([$e] $($arm_pat => $arm_body),*;
29-
|x| panic!("expected one of: {}, got {:?}", stringify!($($arm_pat),*), x))
36+
x => panic!("expected one of: {}, got {:?}", stringify!($($arm_pat),*), x))
3037
};
3138
}
3239

@@ -35,6 +42,28 @@ macro_rules! unpack {
3542
([$e:expr] $enum_:ident :: $variant:ident ( $($arg:ident),* )) => {
3643
let ($($arg,)*) = $crate::expect!([$e] $enum_::$variant($($arg),*) => ($($arg,)*));
3744
};
45+
46+
(
47+
[$e:expr]
48+
$enum_:ident :: $variant:ident ( $($arg:ident),* );
49+
$or_else:expr
50+
) => {
51+
let ($($arg,)*) = $crate::match_or_else!(
52+
[$e] $enum_::$variant($($arg),*) => ($($arg,)*);
53+
$or_else
54+
);
55+
};
56+
57+
(
58+
[$e:expr]
59+
$enum_:ident :: $variant:ident ( $($arg:ident),* );
60+
$or_else_var:ident => $or_else:expr
61+
) => {
62+
let ($($arg,)*) = $crate::match_or_else!(
63+
[$e] $enum_::$variant($($arg),*) => ($($arg,)*);
64+
$or_else_var => $or_else
65+
);
66+
};
3867
}
3968

4069
#[macro_export]

c2rust-refactor/src/path_edit.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ where
124124
_ => {}
125125
}
126126

127-
unpack!([&mut t.kind] TyKind::Path(qself, path));
127+
unpack!([&mut t.kind] TyKind::Path(qself, path); return);
128128
let (new_qself, new_path) =
129129
self.handle_qpath(id, qself.clone(), path.clone(), qpath);
130130
*qself = new_qself;

0 commit comments

Comments
 (0)