@@ -31,8 +31,8 @@ use crate::shape::{Indent, Shape};
3131use crate :: source_map:: SpanUtils ;
3232use crate :: spanned:: Spanned ;
3333use crate :: utils:: {
34- format_visibility, indent_next_line, is_empty_line, mk_sp, remove_trailing_white_spaces ,
35- rewrite_ident, trim_left_preserve_layout, wrap_str, NodeIdExt ,
34+ count_newlines , format_visibility, indent_next_line, is_empty_line, mk_sp,
35+ remove_trailing_white_spaces , rewrite_ident, trim_left_preserve_layout, wrap_str, NodeIdExt ,
3636} ;
3737use crate :: visitor:: FmtVisitor ;
3838
@@ -1473,7 +1473,7 @@ fn format_lazy_static(
14731473 parser. eat ( & TokenKind :: Colon ) ;
14741474 let ty = parse_or ! ( parse_ty) ;
14751475 parser. eat ( & TokenKind :: Eq ) ;
1476- let expr = parse_or ! ( parse_expr ) ;
1476+ let expr = parse_or ! ( parse_stmt ) ? ;
14771477 parser. eat ( & TokenKind :: Semi ) ;
14781478
14791479 // Rewrite as a static item.
@@ -1487,11 +1487,15 @@ fn format_lazy_static(
14871487 result. push_str ( & crate :: expr:: rewrite_assign_rhs (
14881488 context,
14891489 stmt,
1490- & * expr,
1490+ & expr,
14911491 nested_shape. sub_width ( 1 ) ?,
14921492 ) ?) ;
14931493 result. push ( ';' ) ;
14941494 if parser. token . kind != TokenKind :: Eof {
1495+ let snippet = context. snippet ( mk_sp ( parser. prev_span . hi ( ) , parser. token . span . lo ( ) ) ) ;
1496+ if count_newlines ( snippet) >= 2 {
1497+ result. push ( '\n' ) ;
1498+ }
14951499 result. push_str ( & nested_shape. indent . to_string_with_newline ( context. config ) ) ;
14961500 }
14971501 }
0 commit comments