From af404b998c87bb28ffb0a36a2f779a7d8371a0d1 Mon Sep 17 00:00:00 2001 From: topecongiro Date: Wed, 6 Sep 2017 18:44:33 +0900 Subject: [PATCH] Factor out rewrite_extern_crate() --- src/visitor.rs | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/visitor.rs b/src/visitor.rs index 1fe8655309f3..2de2f6865df1 100644 --- a/src/visitor.rs +++ b/src/visitor.rs @@ -367,17 +367,8 @@ impl<'a> FmtVisitor<'a> { } } ast::ItemKind::ExternCrate(_) => { - self.format_missing_with_indent(source!(self, item.span).lo()); - let new_str = self.snippet(item.span); - if contains_comment(&new_str) { - self.buffer.push_str(&new_str) - } else { - let no_whitespace = - &new_str.split_whitespace().collect::>().join(" "); - self.buffer - .push_str(&Regex::new(r"\s;").unwrap().replace(no_whitespace, ";")); - } - self.last_pos = source!(self, item.span).hi(); + let rw = rewrite_extern_crate(&self.get_context(), item); + self.push_rewrite(item.span, rw); } ast::ItemKind::Struct(ref def, ref generics) => { let rewrite = { @@ -1046,3 +1037,15 @@ fn get_derive_args(context: &RewriteContext, attr: &ast::Attribute) -> Option None, }) } + +// Rewrite `extern crate foo;` WITHOUT attributes. +pub fn rewrite_extern_crate(context: &RewriteContext, item: &ast::Item) -> Option { + assert!(is_extern_crate(item)); + let new_str = context.snippet(item.span); + Some(if contains_comment(&new_str) { + new_str + } else { + let no_whitespace = &new_str.split_whitespace().collect::>().join(" "); + String::from(&*Regex::new(r"\s;").unwrap().replace(no_whitespace, ";")) + }) +}