public static int getNumberOfLines(FunctionTree declaration) {
    Tree body = declaration.body();
    if (!body.is(Kind.BLOCK)) {
      return 0;
    }

    BlockTree block = (BlockTree) body;
    int firstLine = block.openCurlyBraceToken().line();
    int lastLine = block.closeCurlyBraceToken().line();
    return lastLine - firstLine + 1;
  }
 private static boolean endsWithReturn(FunctionTree function) {
   Tree body = function.body();
   if (body.is(Kind.BLOCK)) {
     BlockTree block = (BlockTree) body;
     List<StatementTree> statements = block.statements();
     if (statements.isEmpty()) {
       return false;
     }
     return statements.get(statements.size() - 1).is(Kind.RETURN_STATEMENT);
   }
   return false;
 }
 @Override
 public void visitBlock(BlockTree tree) {
   super.visitBlock(tree);
   check(tree.statements(), tree.closeCurlyBraceToken(), tree);
 }