]> git.lizzy.rs Git - rust.git/commitdiff
Add StaticParts to reduce the number of args in rewrite_static()
authortopecongiro <seuchida@gmail.com>
Sun, 5 Nov 2017 05:44:52 +0000 (14:44 +0900)
committertopecongiro <seuchida@gmail.com>
Mon, 6 Nov 2017 04:52:25 +0000 (13:52 +0900)
src/items.rs
src/visitor.rs

index 3314154e4a40a94e17e9eb25c5e74e2c6b563d6d..c9baa3a06168def6fdbf99bd2bc2971cefc98768 100644 (file)
@@ -1461,17 +1461,46 @@ pub fn rewrite_struct_field(
     )
 }
 
-pub fn rewrite_static(
-    prefix: &str,
-    vis: &ast::Visibility,
+pub struct StaticParts<'a> {
+    vis: &'a ast::Visibility,
     ident: ast::Ident,
-    ty: &ast::Ty,
+    ty: &'a ast::Ty,
     mutability: ast::Mutability,
-    expr_opt: Option<&ptr::P<ast::Expr>>,
+    expr_opt: Option<&'a ptr::P<ast::Expr>>,
+}
+
+impl<'a> StaticParts<'a> {
+    pub fn new(
+        vis: &'a ast::Visibility,
+        ident: ast::Ident,
+        ty: &'a ast::Ty,
+        mutability: ast::Mutability,
+        expr_opt: Option<&'a ptr::P<ast::Expr>>,
+    ) -> StaticParts<'a> {
+        StaticParts {
+            vis,
+            ident,
+            ty,
+            mutability,
+            expr_opt,
+        }
+    }
+}
+
+pub fn rewrite_static(
+    prefix: &str,
+    static_parts: &StaticParts,
     offset: Indent,
     span: Span,
     context: &RewriteContext,
 ) -> Option<String> {
+    let StaticParts {
+        vis,
+        ident,
+        ty,
+        mutability,
+        expr_opt,
+    } = *static_parts;
     let colon = colon_spaces(
         context.config.space_before_type_annotation(),
         context.config.space_after_type_annotation_colon(),
index fc66a99083ec34237ad27e1e0e22ff1858c909a5..5b654b07336c9edd28348b35d2f51c6fe7541b0f 100644 (file)
@@ -25,7 +25,7 @@
 use config::{BraceStyle, Config};
 use items::{format_impl, format_struct, format_struct_struct, format_trait,
             rewrite_associated_impl_type, rewrite_associated_type, rewrite_static,
-            rewrite_type_alias, FnSig};
+            rewrite_type_alias, FnSig, StaticParts};
 use lists::{itemize_list, write_list, DefinitiveListTactic, ListFormatting, SeparatorPlace,
             SeparatorTactic};
 use macros::{rewrite_macro, MacroPosition};
@@ -381,11 +381,7 @@ pub fn visit_item(&mut self, item: &ast::Item) {
             ast::ItemKind::Static(ref ty, mutability, ref expr) => {
                 let rewrite = rewrite_static(
                     "static",
-                    &item.vis,
-                    item.ident,
-                    ty,
-                    mutability,
-                    Some(expr),
+                    &StaticParts::new(&item.vis, item.ident, ty, mutability, Some(expr)),
                     self.block_indent,
                     item.span,
                     &self.get_context(),
@@ -395,11 +391,13 @@ pub fn visit_item(&mut self, item: &ast::Item) {
             ast::ItemKind::Const(ref ty, ref expr) => {
                 let rewrite = rewrite_static(
                     "const",
-                    &item.vis,
-                    item.ident,
-                    ty,
-                    ast::Mutability::Immutable,
-                    Some(expr),
+                    &StaticParts::new(
+                        &item.vis,
+                        item.ident,
+                        ty,
+                        ast::Mutability::Immutable,
+                        Some(expr),
+                    ),
                     self.block_indent,
                     item.span,
                     &self.get_context(),
@@ -469,11 +467,13 @@ pub fn visit_trait_item(&mut self, ti: &ast::TraitItem) {
             ast::TraitItemKind::Const(ref ty, ref expr_opt) => {
                 let rewrite = rewrite_static(
                     "const",
-                    &ast::Visibility::Inherited,
-                    ti.ident,
-                    ty,
-                    ast::Mutability::Immutable,
-                    expr_opt.as_ref(),
+                    &StaticParts::new(
+                        &ast::Visibility::Inherited,
+                        ti.ident,
+                        ty,
+                        ast::Mutability::Immutable,
+                        expr_opt.as_ref(),
+                    ),
                     self.block_indent,
                     ti.span,
                     &self.get_context(),
@@ -534,11 +534,13 @@ pub fn visit_impl_item(&mut self, ii: &ast::ImplItem) {
             ast::ImplItemKind::Const(ref ty, ref expr) => {
                 let rewrite = rewrite_static(
                     "const",
-                    &ii.vis,
-                    ii.ident,
-                    ty,
-                    ast::Mutability::Immutable,
-                    Some(expr),
+                    &StaticParts::new(
+                        &ii.vis,
+                        ii.ident,
+                        ty,
+                        ast::Mutability::Immutable,
+                        Some(expr),
+                    ),
                     self.block_indent,
                     ii.span,
                     &self.get_context(),