visitor: Only reorder imports if at least one of them is in file-lines.

This commit is contained in:
Emilio Cobos Álvarez 2017-07-29 17:07:17 +02:00
parent 6bf9124ace
commit 27a3bdb394
No known key found for this signature in database
GPG Key ID: 056B727BB9C1027C
3 changed files with 19 additions and 3 deletions

View File

@ -661,7 +661,19 @@ impl<'a> FmtVisitor<'a> {
})
.count();
let (use_items, rest) = items_left.split_at(use_item_length);
self.format_imports(use_items);
let at_least_one_in_file_lines = use_items
.iter()
.any(|item| !out_of_file_lines_range!(self, item.span));
if at_least_one_in_file_lines {
self.format_imports(use_items);
} else {
for item in use_items {
self.push_rewrite(item.span, None);
}
}
items_left = rest;
} else {
// `unwrap()` is safe here because we know `items_left`

View File

@ -1,6 +1,8 @@
// rustfmt-file_lines: [{"file":"tests/source/file-lines-item.rs","range":[5,7]}]
// rustfmt-file_lines: [{"file":"tests/source/file-lines-item.rs","range":[7,9]}]
// rustfmt-reorder_imports: true
use foo::{c, b, a};
use bar;
fn foo() {
bar ( ) ;

View File

@ -1,6 +1,8 @@
// rustfmt-file_lines: [{"file":"tests/source/file-lines-item.rs","range":[5,7]}]
// rustfmt-file_lines: [{"file":"tests/source/file-lines-item.rs","range":[7,9]}]
// rustfmt-reorder_imports: true
use foo::{c, b, a};
use bar;
fn foo() {
bar();