about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorNick Cameron <nrc@ncameron.org>2018-04-23 16:32:36 +1200
committerGitHub <noreply@github.com>2018-04-23 16:32:36 +1200
commitfbdd0e815c80d0c7dde62cc541e866440039bafc (patch)
tree3d6828fc021e730634581b8aadbf63e884dd8072 /src
parent866900449aee9281c88076076b8bc558a8aa5140 (diff)
parent92b14f0778cd6debd176a4d54b286f7f8092970a (diff)
Merge pull request #2640 from rizakrko/master
keep auto trait
Diffstat (limited to 'src')
-rw-r--r--src/items.rs19
-rw-r--r--src/utils.rs8
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 rewrite::{Rewrite, RewriteContext};
 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<String> {
-    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
@@ -82,6 +82,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 {
         ast::Mutability::Mutable => "mut ",