about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/chains.rs18
1 files changed, 16 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!(),
     }
 }