From: Ian Jackson Date: Fri, 2 Apr 2021 19:14:56 +0000 (+0100) Subject: want: Let variants be paths X-Git-Tag: otter-0.5.0~311 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=a870eb3f8f3887b726843cecfd64b16e21cee39b;p=otter.git want: Let variants be paths Signed-off-by: Ian Jackson --- diff --git a/src/utils.rs b/src/utils.rs index 51989a14..5aeb296a 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -474,20 +474,20 @@ macro_rules! wants { #[macro_export] macro_rules! want_let { - { $variant:ident($binding:pat) = $input:expr; + { $($variant:ident)::+($binding:pat) = $input:expr; else ? $($d:expr),*; $($otherwise:tt)* } => { let $binding = match $input { - $variant(y) => y, + $($variant(y))::+ => y, x => { want_failed_internal!{ $variant($binding)=$input, x, $($d:expr),* } $($otherwise)* }, }; }; - { $variant:ident($binding:pat) = $input:expr; + { $($variant:ident)::+($binding:pat) = $input:expr; else $($otherwise:tt)* } => { - want_let!{ $variant($binding) = $input; ?; $($otherwise)* } + want_let!{ $($variant(y))::+ = $input; ?; $($otherwise)* } }; }