From 3eef9993af9dc04f5e9d489e3234e5b4060ff893 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Tue, 2 Aug 2011 15:25:06 -0700 Subject: Don't pp extra lines after block open when preserving whitespace. Closes #759 --- src/comp/syntax/print/pprust.rs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/comp/syntax') diff --git a/src/comp/syntax/print/pprust.rs b/src/comp/syntax/print/pprust.rs index 7533eced7cf..11e13d6ebe0 100644 --- a/src/comp/syntax/print/pprust.rs +++ b/src/comp/syntax/print/pprust.rs @@ -172,6 +172,20 @@ fn bclose_(s: &ps, span: codemap::span, indented: uint) { } fn bclose(s: &ps, span: codemap::span) { bclose_(s, span, indent_unit); } +fn is_begin(s: &ps) -> bool { + alt s.s.last_token() { + pp::BEGIN(_) { true } + _ { false } + } +} + +fn is_end(s: &ps) -> bool { + alt s.s.last_token() { + pp::END. { true } + _ { false } + } +} + fn is_bol(s: &ps) -> bool { ret s.s.last_token() == pp::EOF || s.s.last_token() == pp::hardbreak_tok(); @@ -1403,7 +1417,7 @@ fn print_comment(s: &ps, cmnt: lexer::cmnt) { } lexer::blank_line. { // We need to do at least one, possibly two hardbreaks. - pprust::hardbreak_if_not_bol(s); + if is_begin(s) || is_end(s) { hardbreak(s.s) } hardbreak(s.s); } } -- cgit 1.4.1-3-g733a5