From 318f9c89e0eb9fbc2bfbcdb372e7853716783e83 Mon Sep 17 00:00:00 2001 From: topecongiro Date: Sun, 5 Nov 2017 14:44:52 +0900 Subject: [PATCH] Add StaticParts to reduce the number of args in rewrite_static() --- src/items.rs | 39 ++++++++++++++++++++++++++++++++++----- src/visitor.rs | 44 +++++++++++++++++++++++--------------------- 2 files changed, 57 insertions(+), 26 deletions(-) diff --git a/src/items.rs b/src/items.rs index 3314154e4a40..c9baa3a06168 100644 --- a/src/items.rs +++ b/src/items.rs @@ -1461,17 +1461,46 @@ pub fn rewrite_struct_field( ) } +pub struct StaticParts<'a> { + vis: &'a ast::Visibility, + ident: ast::Ident, + ty: &'a ast::Ty, + mutability: ast::Mutability, + expr_opt: Option<&'a ptr::P>, +} + +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>, + ) -> StaticParts<'a> { + StaticParts { + vis, + ident, + ty, + mutability, + expr_opt, + } + } +} + pub fn rewrite_static( prefix: &str, - vis: &ast::Visibility, - ident: ast::Ident, - ty: &ast::Ty, - mutability: ast::Mutability, - expr_opt: Option<&ptr::P>, + static_parts: &StaticParts, offset: Indent, span: Span, context: &RewriteContext, ) -> Option { + 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(), diff --git a/src/visitor.rs b/src/visitor.rs index fc66a99083ec..5b654b07336c 100644 --- a/src/visitor.rs +++ b/src/visitor.rs @@ -25,7 +25,7 @@ use comment::rewrite_comment; 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 @@ impl<'a> FmtVisitor<'a> { 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 @@ impl<'a> FmtVisitor<'a> { 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 @@ impl<'a> FmtVisitor<'a> { 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 @@ impl<'a> FmtVisitor<'a> { 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(),