]> git.lizzy.rs Git - rust.git/commitdiff
Fix excessive indentation in trait where clause when using Rfc style
authortopecongiro <seuchida@gmail.com>
Tue, 13 Jun 2017 01:18:55 +0000 (10:18 +0900)
committertopecongiro <seuchida@gmail.com>
Tue, 13 Jun 2017 01:18:55 +0000 (10:18 +0900)
src/items.rs
src/types.rs
tests/source/where-clause-rfc.rs
tests/target/where-clause-rfc.rs

index 18b58e57fe14b5911d8d87211f2494d4be6f91cb..085b9eed812e48df273311ec18d56cc426ac0f62 100644 (file)
@@ -2306,7 +2306,7 @@ fn rewrite_where_clause_rfc_style(context: &RewriteContext,
                              terminator,
                              |pred| span_for_where_pred(pred).lo,
                              |pred| span_for_where_pred(pred).hi,
-                             |pred| pred.rewrite(context, clause_shape),
+                             |pred| pred.rewrite(context, shape),
                              span_start,
                              span_end);
     let comma_tactic = if suppress_comma {
index d2405f390f1d2e0d93a9fc07793c9d1b030c49e3..7e5daa12f812fcabff7fb3e9121bb3451c0d83a5 100644 (file)
@@ -24,7 +24,7 @@
 use rewrite::{Rewrite, RewriteContext};
 use utils::{extra_offset, format_mutability, colon_spaces, wrap_str, mk_sp, last_line_width};
 use expr::{rewrite_unary_prefix, rewrite_pair, rewrite_tuple_type};
-use config::TypeDensity;
+use config::{Style, TypeDensity};
 
 #[derive(Copy, Clone, Debug, Eq, PartialEq)]
 pub enum PathContext {
@@ -383,7 +383,10 @@ fn rewrite(&self, context: &RewriteContext, shape: Shape) -> Option<String> {
                     }
                 } else {
                     let used_width = type_str.len() + colon.len();
-                    let ty_shape = try_opt!(shape.block_left(used_width));
+                    let ty_shape = match context.config.where_style() {
+                        Style::Legacy => try_opt!(shape.block_left(used_width)),
+                        Style::Rfc => shape.block_indent(context.config.tab_spaces()),
+                    };
                     let bounds: Vec<_> =
                         try_opt!(bounds
                                      .iter()
index d8a014c4a910ddde809923c68e84defe0353ad7d..ef822f6bea2f2c6cea83b3d89667b601ef48903d 100644 (file)
@@ -42,3 +42,9 @@ struct Exactly100CharsToSemicolon<A, B, C, D, E>
 struct AlwaysOnNextLine<LongLongTypename, LongTypename, A, B, C, D, E, F> where A: LongTrait {
     x: i32
 }
+
+pub trait SomeTrait<T>
+    where
+    T: Something + Sync + Send + Display     + Debug     + Copy + Hash + Debug + Display + Write + Read + FromStr
+{
+}
index 6859690fa158412134014fe6e9000b581b1c598c..bdf1f9d257429cdca20577dfebfdc7f539bde798 100644 (file)
@@ -96,3 +96,20 @@ struct AlwaysOnNextLine<LongLongTypename, LongTypename, A, B, C, D, E, F>
 {
     x: i32,
 }
+
+pub trait SomeTrait<T>
+where
+    T: Something
+        + Sync
+        + Send
+        + Display
+        + Debug
+        + Copy
+        + Hash
+        + Debug
+        + Display
+        + Write
+        + Read
+        + FromStr
+{
+}