summary refs log tree commit diff
path: root/src/comp/syntax
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-08-02 15:25:06 -0700
committerBrian Anderson <banderson@mozilla.com>2011-08-02 17:49:11 -0700
commit3eef9993af9dc04f5e9d489e3234e5b4060ff893 (patch)
tree8864c0e25fc541d9a8ba6217d67d18f5a669d156 /src/comp/syntax
parent731797d075e8bd9d0e3d21c917c3c7028278a7d4 (diff)
downloadrust-3eef9993af9dc04f5e9d489e3234e5b4060ff893.tar.gz
rust-3eef9993af9dc04f5e9d489e3234e5b4060ff893.zip
Don't pp extra lines after block open when preserving whitespace. Closes #759
Diffstat (limited to 'src/comp/syntax')
-rw-r--r--src/comp/syntax/print/pprust.rs16
1 files changed, 15 insertions, 1 deletions
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);
       }
     }