]> git.lizzy.rs Git - rust.git/commitdiff
Format macro in pattern position
authorSeiichi Uchida <seuchida@gmail.com>
Sat, 9 Dec 2017 15:22:00 +0000 (00:22 +0900)
committerSeiichi Uchida <seuchida@gmail.com>
Sat, 9 Dec 2017 15:22:00 +0000 (00:22 +0900)
src/macros.rs
src/patterns.rs

index 3c5db3c977abf1ccfb25b30faa5f259824578dce..71be3b65224c53015e14cf87a70ae80fb6ba15e0 100644 (file)
@@ -50,6 +50,7 @@ pub enum MacroPosition {
     Item,
     Statement,
     Expression,
+    Pat,
 }
 
 impl MacroStyle {
index 74ae537e53421da1e3979fbdbf0a53be4b71e28e..700fbd0da218c82dbe5e0496dea25719fdcf5abb 100644 (file)
@@ -19,6 +19,7 @@
            wrap_struct_field, PairParts};
 use lists::{itemize_list, shape_for_tactic, struct_lit_formatting, struct_lit_shape,
             struct_lit_tactic, write_list, DefinitiveListTactic, SeparatorPlace, SeparatorTactic};
+use macros::{rewrite_macro, MacroPosition};
 use rewrite::{Rewrite, RewriteContext};
 use shape::Shape;
 use types::{rewrite_path, PathContext};
@@ -121,8 +122,7 @@ fn rewrite(&self, context: &RewriteContext, shape: Shape) -> Option<String> {
             PatKind::Struct(ref path, ref fields, ellipsis) => {
                 rewrite_struct_pat(path, fields, ellipsis, self.span, context, shape)
             }
-            // FIXME(#819) format pattern macros.
-            PatKind::Mac(..) => Some(context.snippet(self.span).to_owned()),
+            PatKind::Mac(ref mac) => rewrite_macro(mac, None, context, shape, MacroPosition::Pat),
         }
     }
 }