chiark / gitweb /
want: Let variants be paths
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 2 Apr 2021 19:14:56 +0000 (20:14 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 2 Apr 2021 19:15:32 +0000 (20:15 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
src/utils.rs

index 51989a1423faa020f12f6b03b6c17f55e0714fce..5aeb296a4c40d4fd8b17c2ab5a5fb7f7958fac38 100644 (file)
@@ -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)* }
   };
 }