From 5b5a72c840aebd8dfdfbd2a125bc910d8094736a Mon Sep 17 00:00:00 2001 From: Roman Stoliar Date: Fri, 20 Apr 2018 17:31:31 +0300 Subject: [PATCH] keep auto trait --- src/items.rs | 19 ++++++++++++------- src/utils.rs | 8 ++++++++ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/items.rs b/src/items.rs index 6d474a3ccd6..91db82cd9ed 100644 --- a/src/items.rs +++ b/src/items.rs @@ -32,9 +32,9 @@ use shape::{Indent, Shape}; use spanned::Spanned; use types::TraitTyParamBounds; -use utils::{colon_spaces, contains_skip, first_line_width, format_abi, format_constness, - format_defaultness, format_mutability, format_unsafety, format_visibility, - is_attributes_extendable, last_line_contains_single_line_comment, +use utils::{colon_spaces, contains_skip, first_line_width, format_abi, format_auto, + format_constness, format_defaultness, format_mutability, format_unsafety, + format_visibility, is_attributes_extendable, last_line_contains_single_line_comment, last_line_used_width, last_line_width, mk_sp, semicolon_for_expr, starts_with_newline, stmt_expr, trimmed_last_line_width}; use vertical::rewrite_with_alignment; @@ -936,16 +936,21 @@ fn format_struct( } pub fn format_trait(context: &RewriteContext, item: &ast::Item, offset: Indent) -> Option { - if let ast::ItemKind::Trait(_, unsafety, ref generics, ref type_param_bounds, ref trait_items) = - item.node + if let ast::ItemKind::Trait( + is_auto, + unsafety, + ref generics, + ref type_param_bounds, + ref trait_items, + ) = item.node { let mut result = String::with_capacity(128); let header = format!( - "{}{}trait ", + "{}{}{}trait ", + format_auto(is_auto), format_visibility(&item.vis), format_unsafety(unsafety), ); - result.push_str(&header); let body_lo = context.snippet_provider.span_after(item.span, "{"); diff --git a/src/utils.rs b/src/utils.rs index 2ede562e79d..2493c9a5c74 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -81,6 +81,14 @@ pub fn format_unsafety(unsafety: ast::Unsafety) -> &'static str { } } +#[inline] +pub fn format_auto(is_auto: ast::IsAuto) -> &'static str { + match is_auto { + ast::IsAuto::Yes => "auto ", + ast::IsAuto::No => "", + } +} + #[inline] pub fn format_mutability(mutability: ast::Mutability) -> &'static str { match mutability { -- 2.44.0