diff options
| author | Nick Cameron <nrc@ncameron.org> | 2016-05-27 20:33:19 +1200 |
|---|---|---|
| committer | Marcus Klaas de Vries <mail@marcusklaas.nl> | 2016-05-27 10:33:19 +0200 |
| commit | d6bcfceb7e122ab86009ea36ff01388e613ca353 (patch) | |
| tree | d07a24b1dc2d449351e5ab8a6e17c156e9623a49 | |
| parent | 775de8a62b3c19521543cb6b9130979eb6747c75 (diff) | |
Don't put a newline before `?` when it is the second sub-expression in a chain (#1012)
Fixes #1003
| -rw-r--r-- | src/chains.rs | 4 | ||||
| -rw-r--r-- | tests/source/chains.rs | 8 | ||||
| -rw-r--r-- | tests/target/chains.rs | 10 |
3 files changed, 21 insertions, 1 deletions
diff --git a/src/chains.rs b/src/chains.rs index 3f306abfdca..faf368d41c1 100644 --- a/src/chains.rs +++ b/src/chains.rs @@ -179,7 +179,9 @@ pub fn rewrite_chain(expr: &ast::Expr, format!("\n{}", indent.to_string(context.config)) }; - let first_connector = if extend { + let first_connector = if extend || subexpr_list.len() == 0 { + "" + } else if let ast::ExprKind::Try(_) = subexpr_list[0].node { "" } else { &*connector diff --git a/tests/source/chains.rs b/tests/source/chains.rs index 48de948865b..66c982082e7 100644 --- a/tests/source/chains.rs +++ b/tests/source/chains.rs @@ -124,4 +124,12 @@ fn try_shorthand() { let y = a.very .loooooooooooooooooooooooooooooooooooooong() .chain() .inside() .weeeeeeeeeeeeeee()? .test() .0 .x; + + parameterized(f, + substs, + def_id, + Ns::Value, + &[], + |tcx| tcx.lookup_item_type(def_id).generics)?; + fooooooooooooooooooooooooooo()?.bar()?.baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz()?; } diff --git a/tests/target/chains.rs b/tests/target/chains.rs index 7d25046279f..3004946fb56 100644 --- a/tests/target/chains.rs +++ b/tests/target/chains.rs @@ -151,4 +151,14 @@ fn try_shorthand() { .test() .0 .x; + + parameterized(f, + substs, + def_id, + Ns::Value, + &[], + |tcx| tcx.lookup_item_type(def_id).generics)?; + fooooooooooooooooooooooooooo()? + .bar()? + .baaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaz()?; } |
