about summary refs log tree commit diff
path: root/src/expr.rs
diff options
context:
space:
mode:
authorKevin Yeh <kevinyeah@utexas.edu>2015-11-19 20:11:32 -0600
committerKevin Yeh <kevinyeah@utexas.edu>2015-11-19 20:45:02 -0600
commit15ec5b291292f87697b32f30cc31f863538959a2 (patch)
treee9f3f1e15d06591c0b33b4d72e92a3547eb5a3d9 /src/expr.rs
parentfbd1398c925fb51d72c3764133e1d35679cb53c2 (diff)
Fix empty body format, add fn_empty_single_line option, refactor block tests
Diffstat (limited to 'src/expr.rs')
-rw-r--r--src/expr.rs29
1 files changed, 9 insertions, 20 deletions
diff --git a/src/expr.rs b/src/expr.rs
index 5ec12876c4b..b494cb08fcc 100644
--- a/src/expr.rs
+++ b/src/expr.rs
@@ -705,36 +705,25 @@ fn single_line_if_else(context: &RewriteContext,
     None
 }
 
-// Checks that a block contains no statements, an expression and no comments.
-fn is_simple_block(block: &ast::Block, codemap: &CodeMap) -> bool {
-    if !block.stmts.is_empty() || block.expr.is_none() {
-        return false;
-    }
-
+fn block_contains_comment(block: &ast::Block, codemap: &CodeMap) -> bool {
     let snippet = codemap.span_to_snippet(block.span).unwrap();
+    contains_comment(&snippet)
+}
 
-    !contains_comment(&snippet)
+// Checks that a block contains no statements, an expression and no comments.
+pub fn is_simple_block(block: &ast::Block, codemap: &CodeMap) -> bool {
+    block.stmts.is_empty() && block.expr.is_some() && !block_contains_comment(block, codemap)
 }
 
 /// 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)
+    (block.stmts.is_empty() || (block.stmts.len() == 1 && block.expr.is_none())) &&
+    !block_contains_comment(block, codemap)
 }
 
 /// 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)
+    block.stmts.is_empty() && block.expr.is_none() && !block_contains_comment(block, codemap)
 }
 
 // inter-match-arm-comment-rules: