diff --git a/src/expr.rs b/src/expr.rs index c4b01e38b42..7616ef0c328 100644 --- a/src/expr.rs +++ b/src/expr.rs @@ -688,6 +688,27 @@ fn is_simple_block(block: &ast::Block, codemap: &CodeMap) -> bool { !contains_comment(&snippet) } +/// Checks whether a block contains at most one statement or expression, and no comments. +pub fn is_simple_block_stmt(block: &ast::Block, codemap: &CodeMap) -> bool { + if (!block.stmts.is_empty() && block.expr.is_some()) || + (block.stmts.len() != 1 && block.expr.is_none()) { + return false; + } + + let snippet = codemap.span_to_snippet(block.span).unwrap(); + !contains_comment(&snippet) +} + +/// Checks whether a block contains no statements, expressions, or comments. +pub fn is_empty_block(block: &ast::Block, codemap: &CodeMap) -> bool { + if !block.stmts.is_empty() || block.expr.is_some() { + return false; + } + + let snippet = codemap.span_to_snippet(block.span).unwrap(); + !contains_comment(&snippet) +} + // inter-match-arm-comment-rules: // - all comments following a match arm before the start of the next arm // are about the second arm diff --git a/src/items.rs b/src/items.rs index 58ddea0c483..f16f5b50e6d 100644 --- a/src/items.rs +++ b/src/items.rs @@ -15,14 +15,14 @@ use utils::{format_mutability, format_visibility, contains_skip, span_after, end wrap_str, last_line_width, semicolon_for_expr, semicolon_for_stmt}; use lists::{write_list, itemize_list, ListItem, ListFormatting, SeparatorTactic, DefinitiveListTactic, definitive_tactic, format_item_list}; -use expr::rewrite_assign_rhs; -use comment::{FindUncommented, contains_comment}; +use expr::{is_empty_block, is_simple_block_stmt, rewrite_assign_rhs}; +use comment::FindUncommented; use visitor::FmtVisitor; use rewrite::{Rewrite, RewriteContext}; use config::{Config, BlockIndentStyle, Density, ReturnIndent, BraceStyle, StructLitStyle}; use syntax::{ast, abi}; -use syntax::codemap::{Span, BytePos, CodeMap, mk_sp}; +use syntax::codemap::{Span, BytePos, mk_sp}; use syntax::print::pprust; use syntax::parse::token; @@ -1392,23 +1392,3 @@ fn span_for_where_pred(pred: &ast::WherePredicate) -> Span { ast::WherePredicate::EqPredicate(ref p) => p.span, } } - -// Checks whether a block contains at most one statement or expression, and no comments. -fn is_simple_block_stmt(block: &ast::Block, codemap: &CodeMap) -> bool { - if (!block.stmts.is_empty() && block.expr.is_some()) || - (block.stmts.len() != 1 && block.expr.is_none()) { - return false; - } - - let snippet = codemap.span_to_snippet(block.span).unwrap(); - !contains_comment(&snippet) -} - -fn is_empty_block(block: &ast::Block, codemap: &CodeMap) -> bool { - if !block.stmts.is_empty() || block.expr.is_some() { - return false; - } - - let snippet = codemap.span_to_snippet(block.span).unwrap(); - !contains_comment(&snippet) -}