Merge pull request #2509 from topecongiro/issue-2493

Overflow the last rhs of a binary expression
This commit is contained in:
Nick Cameron 2018-03-16 07:30:30 +13:00 committed by GitHub
commit c416246494
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 39 additions and 7 deletions

View file

@ -369,13 +369,15 @@ where
.and_then(|s| s.sub_width(pp.suffix.len()))
.and_then(|rhs_shape| rhs.rewrite(context, rhs_shape));
if let Some(ref rhs_result) = rhs_orig_result {
// If the rhs looks like block expression, we allow it to stay on the same line
// with the lhs even if it is multi-lined.
let allow_same_line = rhs_result
.lines()
.next()
.map(|first_line| first_line.ends_with('{'))
.unwrap_or(false);
// If the length of the lhs is equal to or shorter than the tab width or
// the rhs looks like block expression, we put the rhs on the same
// line with the lhs even if the rhs is multi-lined.
let allow_same_line = lhs_result.len() <= context.config.tab_spaces()
|| rhs_result
.lines()
.next()
.map(|first_line| first_line.ends_with('{'))
.unwrap_or(false);
if !rhs_result.contains('\n') || allow_same_line {
let one_line_width = last_line_width(&lhs_result) + pp.infix.len()
+ first_line_width(rhs_result) + pp.suffix.len();

View file

@ -370,3 +370,17 @@ fn newlines_between_list_like_expr() {
fn issue2178() {
Ok(result.iter().map(|item| ls_util::rls_to_location(item)).collect())
}
// #2493
impl Foo {
fn bar(&self) {
{
let x = match () {
() => {
let i;
i == self.install_config.storage.experimental_compressed_block_size as usize
}
};
}
}
}

View file

@ -393,3 +393,19 @@ fn issue2178() {
.map(|item| ls_util::rls_to_location(item))
.collect())
}
// #2493
impl Foo {
fn bar(&self) {
{
let x = match () {
() => {
let i;
i == self.install_config
.storage
.experimental_compressed_block_size as usize
}
};
}
}
}