about summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorChris Morgan <me@chrismorgan.info>2014-02-27 12:16:18 +1100
committerChris Morgan <me@chrismorgan.info>2014-02-27 12:16:18 +1100
commite6b032a9efa4df2932bd6999c4c9dc7a74a12e24 (patch)
tree1c6233cfca75c3d2866a549862b12601785aa0b6 /src/libsyntax/parse
parentb4d923852e959e1bb79ebfa12e5951caee1a95b2 (diff)
downloadrust-e6b032a9efa4df2932bd6999c4c9dc7a74a12e24.tar.gz
rust-e6b032a9efa4df2932bd6999c4c9dc7a74a12e24.zip
Fix a pretty printer crash on `/***`.
The pretty printer was treating block comments with more than two
asterisks after the first slash (e.g. `/***`) as doc comments (which are
attributes), whereas in actual fact they are just regular comments.
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/comments.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libsyntax/parse/comments.rs b/src/libsyntax/parse/comments.rs
index e0ae9ce2812..bd1c4f9babb 100644
--- a/src/libsyntax/parse/comments.rs
+++ b/src/libsyntax/parse/comments.rs
@@ -260,7 +260,7 @@ fn read_block_comment(rdr: &StringReader,
     let mut curr_line = ~"/*";
 
     // doc-comments are not really comments, they are attributes
-    if rdr.curr_is('*') || rdr.curr_is('!') {
+    if (rdr.curr_is('*') && !nextch_is(rdr, '*')) || rdr.curr_is('!') {
         while !(rdr.curr_is('*') && nextch_is(rdr, '/')) && !is_eof(rdr) {
             curr_line.push_char(rdr.curr.get().unwrap());
             bump(rdr);