about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarcus Klaas de Vries <mail@marcusklaas.nl>2015-11-21 21:04:34 +0100
committerMarcus Klaas de Vries <mail@marcusklaas.nl>2015-11-21 21:04:34 +0100
commit2a159e05ac4e0a42ab1e154b96bce01073d8bb1e (patch)
tree9f4c5d032934e5e507eb745a33e61a9237ac2257
parent7809e3bb18b5a1ce6548a34c2559a9f08d3ac74a (diff)
parent465662a69187f89a48700c746ec63200bbb21942 (diff)
Merge pull request #635 from Marwes/long_field_access
Fix long field accesses not being broken onto separate lines
-rw-r--r--src/chains.rs18
-rw-r--r--tests/source/long_field_access.rs3
-rw-r--r--tests/target/long_field_access.rs4
3 files changed, 23 insertions, 2 deletions
diff --git a/src/chains.rs b/src/chains.rs
index 665fb5ac073..9e85b22da02 100644
--- a/src/chains.rs
+++ b/src/chains.rs
@@ -194,8 +194,22 @@ fn rewrite_chain_expr(expr: &ast::Expr,
                                 width,
                                 offset)
         }
-        ast::Expr_::ExprField(_, ref field) => Some(format!(".{}", field.node)),
-        ast::Expr_::ExprTupField(_, ref field) => Some(format!(".{}", field.node)),
+        ast::Expr_::ExprField(_, ref field) => {
+            let s = format!(".{}", field.node);
+            if s.len() <= width {
+                Some(s)
+            } else {
+                None
+            }
+        }
+        ast::Expr_::ExprTupField(_, ref field) => {
+            let s = format!(".{}", field.node);
+            if s.len() <= width {
+                Some(s)
+            } else {
+                None
+            }
+        }
         _ => unreachable!(),
     }
 }
diff --git a/tests/source/long_field_access.rs b/tests/source/long_field_access.rs
new file mode 100644
index 00000000000..7aa626221ae
--- /dev/null
+++ b/tests/source/long_field_access.rs
@@ -0,0 +1,3 @@
+fn f() {
+    block_flow.base.stacking_relative_position_of_display_port = self.base.stacking_relative_position_of_display_port;
+}
diff --git a/tests/target/long_field_access.rs b/tests/target/long_field_access.rs
new file mode 100644
index 00000000000..349d2c2f639
--- /dev/null
+++ b/tests/target/long_field_access.rs
@@ -0,0 +1,4 @@
+fn f() {
+    block_flow.base.stacking_relative_position_of_display_port =
+        self.base.stacking_relative_position_of_display_port;
+}