@@ -34,10 +34,7 @@ use crate::rewrite::{Rewrite, RewriteContext};
3434use crate :: shape:: { Indent , Shape } ;
3535use crate :: source_map:: SpanUtils ;
3636use crate :: spanned:: Spanned ;
37- use crate :: utils:: {
38- format_visibility, indent_next_line, is_empty_line, mk_sp, remove_trailing_white_spaces,
39- rewrite_ident, trim_left_preserve_layout, wrap_str, NodeIdExt ,
40- } ;
37+ use crate :: utils:: { format_visibility, indent_next_line, is_empty_line, mk_sp, remove_trailing_white_spaces, rewrite_ident, trim_left_preserve_layout, wrap_str, NodeIdExt , count_newlines} ;
4138use crate :: visitor:: FmtVisitor ;
4239
4340const FORCED_BRACKET_MACROS : & [ & str ] = & [ "vec!" ] ;
@@ -1473,7 +1470,7 @@ fn format_lazy_static(
14731470 parser. eat ( & TokenKind :: Colon ) ;
14741471 let ty = parse_or ! ( parse_ty) ;
14751472 parser. eat ( & TokenKind :: Eq ) ;
1476- let expr = parse_or ! ( parse_expr ) ;
1473+ let expr = parse_or ! ( parse_stmt ) ? ;
14771474 parser. eat ( & TokenKind :: Semi ) ;
14781475
14791476 // Rewrite as a static item.
@@ -1487,11 +1484,15 @@ fn format_lazy_static(
14871484 result. push_str ( & crate :: expr:: rewrite_assign_rhs (
14881485 context,
14891486 stmt,
1490- & * expr,
1487+ & expr,
14911488 nested_shape. sub_width ( 1 ) ?,
14921489 ) ?) ;
14931490 result. push ( ';' ) ;
14941491 if parser. token . kind != TokenKind :: Eof {
1492+ let snippet = context. snippet ( mk_sp ( parser. prev_span . hi ( ) , parser. token . span . lo ( ) ) ) ;
1493+ if count_newlines ( snippet) >= 2 {
1494+ result. push ( '\n' ) ;
1495+ }
14951496 result. push_str ( & nested_shape. indent . to_string_with_newline ( context. config ) ) ;
14961497 }
14971498 }
0 commit comments