diff options
| author | Nick Cameron <nrc@ncameron.org> | 2018-02-06 21:23:14 +1300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-02-06 21:23:14 +1300 |
| commit | c9e250a1ab4983875cba2dcd5f083a6694d70e8f (patch) | |
| tree | 6d6341311788c22c7552961be9116195718883f9 | |
| parent | fe06b96f4854e4fd53ecbf0ff933bae32adfbc11 (diff) | |
| parent | 5e0c6f9716af84361a2f15f8b1f91e9407d722f3 (diff) | |
Merge pull request #2417 from topecongiro/issue-2415
Avoid orphan in chain with punctuation
| -rw-r--r-- | src/imports.rs | 5 | ||||
| -rw-r--r-- | src/lib.rs | 1 | ||||
| -rw-r--r-- | src/utils.rs | 2 | ||||
| -rw-r--r-- | tests/source/chains.rs | 15 | ||||
| -rw-r--r-- | tests/target/chains.rs | 13 |
5 files changed, 31 insertions, 5 deletions
diff --git a/src/imports.rs b/src/imports.rs index 3818fd21950..0b65cafe730 100644 --- a/src/imports.rs +++ b/src/imports.rs @@ -127,13 +127,12 @@ fn compare_use_items(a: &ast::Item, b: &ast::Item) -> Ordering { // `extern crate foo as bar;` // ^^^ Comparing this. - let result = match (a_name, b_name) { + match (a_name, b_name) { (Some(..), None) => Ordering::Greater, (None, Some(..)) => Ordering::Less, (None, None) => Ordering::Equal, (Some(..), Some(..)) => a.ident.name.as_str().cmp(&b.ident.name.as_str()), - }; - result + } } _ => unreachable!(), } diff --git a/src/lib.rs b/src/lib.rs index db05a24f979..6aca11ab3ee 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -10,7 +10,6 @@ #![feature(decl_macro)] #![feature(match_default_bindings)] -#![feature(rustc_private)] #![feature(type_ascription)] #[macro_use] diff --git a/src/utils.rs b/src/utils.rs index 443dc6c7a05..20f4fdfe6d0 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -178,7 +178,7 @@ pub fn last_line_extendable(s: &str) -> bool { } for c in s.chars().rev() { match c { - ')' | ']' | '}' | '?' | '>' => continue, + '(' | ')' | ']' | '}' | '?' | '>' => continue, '\n' => break, _ if c.is_whitespace() => continue, _ => return false, diff --git a/tests/source/chains.rs b/tests/source/chains.rs index 0977212ef21..0ed52ae61be 100644 --- a/tests/source/chains.rs +++ b/tests/source/chains.rs @@ -214,3 +214,18 @@ impl Foo { }).collect(); } } + +// #2415 +// Avoid orphan in chain +fn issue2415() { + let base_url = (|| { + // stuff + + Ok((|| { + // stuff + Some(value.to_string()) + })() + .ok_or("")?) + })() + .unwrap_or_else(|_: Box<::std::error::Error>| String::from("")); +} diff --git a/tests/target/chains.rs b/tests/target/chains.rs index 6e1fc809764..8a41eec2bde 100644 --- a/tests/target/chains.rs +++ b/tests/target/chains.rs @@ -246,3 +246,16 @@ impl Foo { .collect(); } } + +// #2415 +// Avoid orphan in chain +fn issue2415() { + let base_url = (|| { + // stuff + + Ok((|| { + // stuff + Some(value.to_string()) + })().ok_or("")?) + })().unwrap_or_else(|_: Box<::std::error::Error>| String::from("")); +} |
