about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNick Cameron <nrc@ncameron.org>2017-07-11 16:16:35 +1200
committerGitHub <noreply@github.com>2017-07-11 16:16:35 +1200
commit3552595a3b40abd1aa5a24074f4ab2caa2fa034f (patch)
treecc283baa14380e988a07b9a859997e834c9a93d6 /src
parent4cfc2bfbd465b6d9510d82c35198ccb6a6a2d6d7 (diff)
parentbc90a12b8deaa14b996174881790a2fb5bc2a7e9 (diff)
Merge pull request #1780 from topecongiro/rfc/union
Format union
Diffstat (limited to 'src')
-rw-r--r--src/items.rs2
-rw-r--r--src/visitor.rs15
2 files changed, 14 insertions, 3 deletions
diff --git a/src/items.rs b/src/items.rs
index 96ffffa7b60..a5e35e144fb 100644
--- a/src/items.rs
+++ b/src/items.rs
@@ -1053,7 +1053,7 @@ fn format_unit_struct(item_name: &str, ident: ast::Ident, vis: &ast::Visibility)
     format!("{};", format_header(item_name, ident, vis))
 }
 
-fn format_struct_struct(
+pub fn format_struct_struct(
     context: &RewriteContext,
     item_name: &str,
     ident: ast::Ident,
diff --git a/src/visitor.rs b/src/visitor.rs
index 178f7c7691f..800f46374ec 100644
--- a/src/visitor.rs
+++ b/src/visitor.rs
@@ -426,8 +426,19 @@ impl<'a> FmtVisitor<'a> {
                 );
                 self.push_rewrite(item.span, rewrite);
             }
-            ast::ItemKind::Union(..) => {
-                // FIXME(#1157): format union definitions.
+            ast::ItemKind::Union(ref def, ref generics) => {
+                let rewrite = ::items::format_struct_struct(
+                    &self.get_context(),
+                    "union ",
+                    item.ident,
+                    &item.vis,
+                    def.fields(),
+                    Some(generics),
+                    item.span,
+                    self.block_indent,
+                    None,
+                );
+                self.push_rewrite(item.span, rewrite);
             }
             ast::ItemKind::GlobalAsm(..) => {
                 let snippet = Some(self.snippet(item.span));