summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorBarosl Lee <vcs@barosl.com>2015-07-02 03:55:18 +0900
committerBarosl Lee <vcs@barosl.com>2015-07-10 01:30:52 +0900
commit5c60d1d902da615a770ef211217a46d92b3aaae7 (patch)
tree76dc3b63f7892c17d5a28159eabf5edec77a9a82 /src/libsyntax
parent92a95fe5507a41bdfb055913bec1be24509a5146 (diff)
downloadrust-5c60d1d902da615a770ef211217a46d92b3aaae7.tar.gz
rust-5c60d1d902da615a770ef211217a46d92b3aaae7.zip
Preserve escape sequences in documentation comments on macro expansion
Escape sequences in documentation comments must not be parsed as a
normal string when expanding a macro, otherwise some innocent but
invalid-escape-sequence-looking comments will trigger an ICE.

Although this commit replaces normal string literals with raw string
literals in macro expansion, this shouldn't be much a problem
considering documentation comments are converted into attributes before
being passed to a macro anyways.

Fixes #25929.
Fixes #25943.
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/ast.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs
index e844b206cc0..a944acad84d 100644
--- a/src/libsyntax/ast.rs
+++ b/src/libsyntax/ast.rs
@@ -1104,7 +1104,7 @@ impl TokenTree {
                     tts: vec![TtToken(sp, token::Ident(token::str_to_ident("doc"),
                                                        token::Plain)),
                               TtToken(sp, token::Eq),
-                              TtToken(sp, token::Literal(token::Str_(name), None))],
+                              TtToken(sp, token::Literal(token::StrRaw(name, 0), None))],
                     close_span: sp,
                 }))
             }