about summary refs log tree commit diff
path: root/tests/source
diff options
context:
space:
mode:
authorMarcus Klaas de Vries <mail@marcusklaas.nl>2015-10-22 22:33:24 +0200
committerMarcus Klaas de Vries <mail@marcusklaas.nl>2015-10-22 22:33:24 +0200
commit7e76fad1f55945c196b32e6629ebaecc4ebfda74 (patch)
tree85efc67ea1bfa81ac8a64d461206843fc706ae43 /tests/source
parent032e6ae8332dd3a4bc10617e53ebd71835bb713d (diff)
parent2d267b16d1f28e7ab14cd1cc9953ae21fe1856c6 (diff)
Merge pull request #485 from marcusklaas/floaters2
Deal with floaters
Diffstat (limited to 'tests/source')
-rw-r--r--tests/source/chains-block-indented-base.rs30
-rw-r--r--tests/source/chains.rs46
2 files changed, 76 insertions, 0 deletions
diff --git a/tests/source/chains-block-indented-base.rs b/tests/source/chains-block-indented-base.rs
new file mode 100644
index 00000000000..05459dc6973
--- /dev/null
+++ b/tests/source/chains-block-indented-base.rs
@@ -0,0 +1,30 @@
+// rustfmt-chain_base_indent: Inherit
+// Test chain formatting with block indented base
+
+fn floaters() {
+    let x = Foo {
+                field1: val1,
+                field2: val2,
+            }
+            .method_call().method_call();
+
+    let y = if cond {
+                val1
+            } else {
+                val2
+            }
+                .method_call();
+
+    {
+        match x {
+            PushParam => {
+                // params are 1-indexed
+                stack.push(mparams[match cur.to_digit(10) {
+                                            Some(d) => d as usize - 1,
+                                            None => return Err("bad param number".to_owned()),
+                                        }]
+                               .clone());
+            }
+        }
+    }
+}
diff --git a/tests/source/chains.rs b/tests/source/chains.rs
index 2a400b306d2..a50a9c51253 100644
--- a/tests/source/chains.rs
+++ b/tests/source/chains.rs
@@ -55,3 +55,49 @@ fn main() {
                          x
                      }).filter(some_mod::some_filter)
 }
+
+fn floaters() {
+    let z = Foo {
+        field1: val1,
+        field2: val2,
+    };
+
+    let x = Foo {
+        field1: val1,
+        field2: val2,
+    }.method_call().method_call();
+
+    let y = if cond {
+                val1
+            } else {
+                val2
+            }
+                .method_call();
+
+    {
+        match x {
+            PushParam => {
+                // params are 1-indexed
+                stack.push(mparams[match cur.to_digit(10) {
+                    Some(d) => d as usize - 1,
+                    None => return Err("bad param number".to_owned()),
+                }]
+                               .clone());
+            }
+        }
+    }
+
+    if cond { some(); } else { none(); }
+        .bar()
+        .baz();
+
+    Foo { x: val } .baz(|| { /*force multiline    */    }) .quux(); 
+
+    Foo { y: i_am_multi_line, z: ok }
+        .baz(|| {
+            // force multiline
+        })
+        .quux(); 
+
+    a + match x { true => "yay!", false => "boo!" }.bar()
+}