about summary refs log tree commit diff
path: root/src/librustsyntax/parse
diff options
context:
space:
mode:
Diffstat (limited to 'src/librustsyntax/parse')
-rw-r--r--src/librustsyntax/parse/lexer.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/librustsyntax/parse/lexer.rs b/src/librustsyntax/parse/lexer.rs
index e486355501f..91013ca9a76 100644
--- a/src/librustsyntax/parse/lexer.rs
+++ b/src/librustsyntax/parse/lexer.rs
@@ -119,6 +119,17 @@ fn consume_any_line_comment(rdr: reader) {
           '*' { rdr.bump(); rdr.bump(); ret consume_block_comment(rdr); }
           _ { ret; }
         }
+    } else if rdr.curr == '#' {
+        if rdr.next() == '!' {
+            let cmap = codemap::new_codemap();
+            (*cmap).files.push(rdr.filemap);
+            let mut loc = codemap::lookup_char_pos_adj(cmap, rdr.chpos);
+            if loc.line == 1u && loc.col == 0u {
+                while rdr.curr != '\n' && !rdr.is_eof() { rdr.bump(); }
+                loc = codemap::lookup_char_pos_adj(cmap, rdr.chpos);
+                ret consume_whitespace_and_comments(rdr);
+            }
+        }
     }
 }