mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-12 20:16:49 +00:00
Merge pull request #1054 from sanxiyn/loop-width
Fix width computation in Loop::rewrite
This commit is contained in:
commit
664bf3eae7
11
src/expr.rs
11
src/expr.rs
@ -504,6 +504,9 @@ fn nop_block_collapse(block_str: Option<String>, budget: usize) -> Option<String
|
||||
|
||||
impl Rewrite for ast::Block {
|
||||
fn rewrite(&self, context: &RewriteContext, width: usize, offset: Indent) -> Option<String> {
|
||||
// width is used only for the single line case: either the empty block `{}`,
|
||||
// or an unsafe expression `unsafe { e }`.
|
||||
|
||||
let user_str = context.snippet(self.span);
|
||||
if user_str == "{}" && width >= 2 {
|
||||
return Some(user_str);
|
||||
@ -674,9 +677,15 @@ impl<'a> Rewrite for Loop<'a> {
|
||||
ControlBraceStyle::AlwaysNextLine => alt_block_sep.as_str(),
|
||||
ControlBraceStyle::AlwaysSameLine => " ",
|
||||
};
|
||||
|
||||
// This is used only for the empty block case: `{}`
|
||||
let block_width = try_opt!(width.checked_sub(label_string.len() + self.keyword.len() +
|
||||
extra_offset(&pat_expr_string, inner_offset) +
|
||||
1));
|
||||
|
||||
// FIXME: this drops any comment between "loop" and the block.
|
||||
self.block
|
||||
.rewrite(context, width, offset)
|
||||
.rewrite(context, block_width, offset)
|
||||
.map(|result| {
|
||||
format!("{}{}{}{}{}",
|
||||
label_string,
|
||||
|
@ -14,6 +14,8 @@ let x = loop { do_forever(); };
|
||||
while aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa > bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb {
|
||||
}
|
||||
|
||||
while aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa {}
|
||||
|
||||
'b: for xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx in some_iter(arg1, arg2) {
|
||||
// do smth
|
||||
}
|
||||
|
@ -18,6 +18,9 @@ fn main() {
|
||||
while aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa > bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb {
|
||||
}
|
||||
|
||||
while aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa {
|
||||
}
|
||||
|
||||
'b: for xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx in some_iter(arg1,
|
||||
arg2) {
|
||||
// do smth
|
||||
|
Loading…
Reference in New Issue
Block a user