use codemap::SpanUtils;
use config::IndentStyle;
use lists::{definitive_tactic, itemize_list, write_list, ListFormatting, ListItem, Separator};
-use reorder::rewrite_reorderable_items;
use rewrite::{Rewrite, RewriteContext};
use shape::Shape;
-use spanned::Spanned;
use types::{rewrite_path, PathContext};
use utils::{format_visibility, mk_sp};
use visitor::FmtVisitor;
}
impl<'a> FmtVisitor<'a> {
- pub fn format_imports(&mut self, use_items: &[&ast::Item]) {
- if use_items.is_empty() {
- return;
- }
-
- let lo = use_items.first().unwrap().span().lo();
- let hi = use_items.last().unwrap().span().hi();
- let span = mk_sp(lo, hi);
- let rw = rewrite_reorderable_items(&self.get_context(), use_items, self.shape(), span);
- self.push_rewrite(span, rw);
- }
-
pub fn format_import(&mut self, item: &ast::Item, tree: &ast::UseTree) {
let span = item.span;
let shape = self.shape();
/// the same `ast::ItemKind`.
// TODO (some day) remove unused imports, expand globs, compress many single
// imports into a list import.
-pub fn rewrite_reorderable_items(
+fn rewrite_reorderable_items(
context: &RewriteContext,
reorderable_items: &[&ast::Item],
shape: Shape,
.iter()
.any(|item| !out_of_file_lines_range!(self, item.span));
- if at_least_one_in_file_lines {
- self.format_imports(items);
+ if at_least_one_in_file_lines && !items.is_empty() {
+ let lo = items.first().unwrap().span().lo();
+ let hi = items.last().unwrap().span().hi();
+ let span = mk_sp(lo, hi);
+ let rw = rewrite_reorderable_items(&self.get_context(), items, self.shape(), span);
+ self.push_rewrite(span, rw);
} else {
for item in items {
self.push_rewrite(item.span, None);
while !items_left.is_empty() {
// If the next item is a `use`, `extern crate` or `mod`, then extract it and any
// subsequent items that have the same item kind to be reordered within
- // `format_imports`. Otherwise, just format the next item for output.
+ // `reorder_items`. Otherwise, just format the next item for output.
{
try_reorder_items_with!(
reorder_imports,